2014-02-28 53 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

相關問題