【问题标题】:row random sampling in rr中的行随机抽样
【发布时间】:2018-09-18 16:50:37
【问题描述】:

我想用replace=TRUE 对 60 个随机行进行 1000 次抽样,并计算每个样本中第一列和第二列之间的相关系数。

我不知道如何随机采样行,所以我尝试在 1:60 中采样 60 个数字,并匹配行号。 行数据是 60x2 矩阵,称为data1。

我的代码是

k <- list()
data.sam <- list()

set.seed(1)

for (j in 1:60){
  for (i in 1:1000){
  k[[i]] <- sample(1:60, 60, replace = TRUE)
  }
  data.sam[[i]][j,] <- data1[k[[i]][j],]

  corr <- vector()
  corr[i] <- cor(data.sam[[i]][,1],data.sam[[i]][,2])
}

并显示语句:

Error in `*tmp*`[[i]] : subscript out of bounds

【问题讨论】:

    标签: r random


    【解决方案1】:

    看起来j 变量的作用不大。您的索引已经由 k[[i] 向量化,因此您不需要明确地两个循环。也不要重置循环内的corr 变量。

    相反,我可能会写:

    data1 <- matrix(rnorm(120), 60,2)
    
    for (i in 1:1000){
      k[[i]] <- sample(1:60, 60, replace = TRUE)
      data.sam[[i]] <- data1[k[[i]],]
    
      corr[i] <- cor(data.sam[[i]][,1],data.sam[[i]][,2])
    }
    

    这给了这个:

    hist(corr)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多