2017-01-25 140 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 
       }