【问题标题】:Random Iteration Loop in RR中的随机迭代循环
【发布时间】:2017-06-10 09:49:02
【问题描述】:

我想创建一个 for 循环,以随机顺序遍历数字 1-length(Matrix$Index)。请注意,每个号码只能访问一次。

我怎样才能做到这一点?

【问题讨论】:

  • 寻找?sample
  • sample(1:(1-length(Matrix$index)), size=1, replace=FALSE)

标签: r loops random


【解决方案1】:

for (i in sample(c(1:length(Matrix$Index)))) 将实现这一目标。

您可以通过使用set.seed() 更改种子来获得不同的样本。为每个样本设置一个特定的种子将允许重现性。

【讨论】:

  • 当我尝试它时,它会产生重复。
  • 有效!谢谢,朋友。
【解决方案2】:

我不完全理解您的问题,但我猜您尝试执行 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
              }

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 2012-11-07
    • 2020-08-05
    • 2012-03-04
    • 1970-01-01
    • 2021-12-20
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多