【发布时间】:2017-06-10 09:49:02
【问题描述】:
我想创建一个 for 循环,以随机顺序遍历数字 1-length(Matrix$Index)。请注意,每个号码只能访问一次。
我怎样才能做到这一点?
【问题讨论】:
-
寻找
?sample -
sample(1:(1-length(Matrix$index)), size=1, replace=FALSE)
我想创建一个 for 循环,以随机顺序遍历数字 1-length(Matrix$Index)。请注意,每个号码只能访问一次。
我怎样才能做到这一点?
【问题讨论】:
?sample
sample(1:(1-length(Matrix$index)), size=1, replace=FALSE)
for (i in sample(c(1:length(Matrix$Index)))) 将实现这一目标。
您可以通过使用set.seed() 更改种子来获得不同的样本。为每个样本设置一个特定的种子将允许重现性。
【讨论】:
我不完全理解您的问题,但我猜您尝试执行 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
}
【讨论】: