自动循环以增加选择的样本

Automate for loop to increase samples selected

我正在寻找 运行 从数据框中选择 2 行 1000 次的循环 > 将其存储到对象中 > 然后 运行 选择 3 行 1000 次的相同循环 > 存储to object > 然后是 4,依此类推。最终目标是在循环中随机选择不同数量的行时比较列的means/variances。

代码

iris<- iris

results2<- list()


counter<- 0
for (i in 1:1000) {
  # sample 2 randomly selected rows 1000 times
  tempsample2<- iris[sample(1:nrow(iris), 2, replace=F), ]
  
  # store results of sampling into the created list
  results2[[i]]= tempsample2

  
  counter<- counter+1
  print(counter)
}

我可以手动将所有这些循环存储到单独的对象中,然后进行比较,但我猜想有一种更简单的方法可以做到这一点。谁能帮我这个?谢谢你的时间。

您可以使用 lapply 并将输出保存为嵌套列表。

select_rows <- 2:4
n_times <- 5
inds <- nrow(iris)

result <- lapply(select_rows, function(x) 
                replicate(n_times, iris[sample(inds, x), ], simplify = FALSE))

根据您的选择更改 select_rowsn_times