2017-01-25 77 views
4

我想要做一個for循環,循環遍歷數字1-length(Matrix$Index)以隨機順序。請注意,每個號碼只能訪問一次。R中的隨機迭代循環

我該如何做到這一點?

+4

查找'sample' – Sotos

+1

'樣品(1:?(1-長度(矩陣$指數)),大小= 1,更換= FALSE)' –

回答

3

for (i in sample(c(1:length(Matrix$Index))))將實現此目的。

您可以通過set.seed()更改種子來實現不同的樣本。爲每個樣品設置特定的種子將允許再現性。

+1

當我嘗試它時,它會產生重複。 –

+1

工程!謝謝你,朋友。 –

+0

很高興幫助。如果你滿意,你可能想檢查「接受答案」按鈕:) – LAP

0

我不明白你的問題很好,但我想嘗試,無需更換你的向量執行I類重採樣,如果你想使用[R內置函數sample(),則:

n<-10 
x<-rnorm(n) 
resampled<-sample(x,length(x),replace=F) 

請注意,我使用N(0,1)分佈的模擬數據(x)。如果您由於任何原因想申請一個循環,只是嘗試這樣的:

resampled<-numeric(n) 

for(i in 1:n){ 
       a<-sample(1:n,1) 
       resampled[i]<-x[a] 
       x<-x[-a] 
       n<-n-1 
       }