如何从大型数据集中获取100个样本中的每个样本的平均值

时间:2014-09-22 23:47:56

标签: r

第一个问题。例如,如果我的数据有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))。如何找到每个单独样品的平均值?

谢谢大家,我真的很感激帮助!

2 个答案:

答案 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)