【问题标题】:Is it possible to generate a sample of 10 from a population and repeat that sampling 1000 times?是否可以从总体中生成 10 个样本并重复该抽样 1000 次?
【发布时间】:2020-04-21 19:58:35
【问题描述】:
我正在尝试从人群中随机抽取 10 个人并重复 1000 次。这可能吗?到目前为止,这是我的代码,我不太确定我是否走在正确的轨道上。我一直收到错误消息“要替换的项目数不是替换长度的倍数”。
这是我的代码:
B<-1000
for (i in 1:B){
FR3_Acropora_Sample[i]<-(sample(FR3_Acropora$Ratio,size=10,replace=TRUE))
}
【问题讨论】:
标签:
r
loops
for-loop
sampling
statistics-bootstrap
【解决方案1】:
考虑replicate(包装到sapply):
# MATRIX
sample_matrix <- replicate(B, sample(FR3_Acropora$Ratio, size=10, replace=TRUE))
# LIST
sample_list <- replicate(B, sample(FR3_Acropora$Ratio, size=10, replace=TRUE),
simplify = FALSE)
【解决方案2】:
我相信您可以通过以下方式完成此操作。我创建了一个数字 1 到 50 的样本数据集——当然你会跳过这一步。我初始化了一个长度为 100 的列表向量。我从 1 循环到 100,并选择一个随机样本分配给向量中的每个空白空间。然后我可以使用sampleList[[x]] 访问任何样本,其中 x 是 1 到 100 之间的任意数字。
x <- c(1:50)
sampleList <- vector(mode="list", length=100)
for (i in 1:100) {
sampleList[[i]] = sample(x, size = 10, replace = TRUE)
}
使用您的变量名,如下所示:
B<-1000
FR3_Acropora_Sample <- vector(mode="list", length=1000)
for (i in 1:B){
FR3_Acropora_Sample[[i]]=sample(FR3_Acropora$Ratio,size=10,replace=TRUE)
}