2014-02-28 31 views
0

这与上一个问题:[R从向量保留顺序,将其应用到另一个向量

Basic R, how to populate a vector with results from a function

但我想我会发布一个新的,因为我有一个额外的要求。拿这个R代码。

X <- matrix(stats::rnorm(100), ncol = 2) 
hpts <- chull(X) 
Y <- ifelse(X[,1] %in% X[hpts], 1, 0) 
c(X,Y) 
Z <- matrix(0,ncol = 1,nrow =50) 

我想添加一个额外的向量Z保留hpts的顺序。所以,如果T(T(HPTS))看起来是这样的:

[1,] 48 
[2,] 27 
[3,] 15 
[4,] 13 
[5,] 39 
[6,] 2 
[7,] 5 
[8,] 50 

那么我想第48列Z到有1,第27行有2个,第15行,从而具有3 etc.etc。我试图用for循环:: for(我在Y){...}做到这一点,但我没有成功。任何指针将不胜感激。

回答

2

这应做到:

Z[c(hpts),1] <- seq_along(hpts) 
+0

真棒,它的工作!我不知道那是存在的。 – KrisErickson

+0

请在您的回答中添加更多信息 –

+0

@KrisErickson,它被称为替代品。有关更多详细信息,请参阅'[''的文档。基本上,您可以索引要替换的矢量/矩阵的部分,然后将其放入(通常)相同大小的矢量中。 – BrodieG

相关问题