我有这样的人口:
MyPopulation <- c(1:100)
我想创建一个40列5行的数据框。每一列都必须是MyPopulation
的随机样本,所以我尝试这样做:
MySample <- data.frame(NoSample = c(1:5))
for (i in 1:40) {
MySample$i <- sample(MyPopulation,5)
}
结果是一个只有1列(名为i
)的数据框,并以随机样本作为值。
我做错了什么?
发布于 2020-10-19 10:33:07
最简单的解决方案可能是
MyPopulation <- c(1:100)
MySample <- data.frame(NoSample = c(1:5))
for (i in 1:40) {
MySample[,i+1] <- sample(MyPopulation,5)
}
发布于 2020-10-19 10:20:06
您不能以这种方式分配新列,请尝试使用MySample[paste(i)] = ...
也就是说,您不能将数值赋值给列,因此不能赋值给字符串。
发布于 2020-10-19 10:59:12
也许你可以试试replicate
+ as.data.frame
MySample <- as.data.frame(replicate(40,sample(MyPopulation,5)))
https://stackoverflow.com/questions/64425337
复制