自动循环以增加选择的样本
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_rows
和 n_times
。
我正在寻找 运行 从数据框中选择 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_rows
和 n_times
。