第一个问题。例如,如果我的数据有x,y,z列,我想采样200的样本。我应该怎么做?我尝试的是sample(data,200)
这似乎是一个错误,我只能做sample(data$x,200)
。有没有办法让我可以同时拥有所有x,y,z的200个样本,而不是使用$ x,$ y,$ z进行三次?
我的另一个问题是我有一个大型数据集,需要100个200大小的样本。我所做的是replicate(100, sample(data$x, 200))
。如何找到每个单独样品的平均值?
谢谢大家,我真的很感激帮助!
答案 0 :(得分:3)
这是一种方法:
#Fake data
x <- data.frame(x = rnorm(1000), y = runif(1000), z = sample(1000))
#Create an index
idx <- sample(nrow(x), 200, replace = FALSE)
#calculate the column means
colMeans(x[idx, ])
#create a list of indices and make a list
idx2 <- replicate(100, sample(nrow(x), 200, replace = FALSE), simplify = FALSE)
#Iterate over the list, taking the column means...only show the top six rows
t(sapply(idx2, function(zz) colMeans(x[zz, ])))
答案 1 :(得分:0)
怎么样
sample(unlist(data), 200)