首页 > 解决方案 > 从引导程序中获取样本的平均值

问题描述

我想获得 20 个采样数据的平均值和 sds,但不知道该怎么做。我当前的代码可以为我提供每个样本中的方法,而不是跨样本。

## create data
data <- round(rnorm(100, 5, 3))
data[1:10]
## obtain 20 boostrap samples
## display the first of the boostrap samples

resamples <- lapply(1:20, function(i) sample(data, replace = T))

resamples[1]


## calculate the means for each bootstrap sample
r.mean <- sapply(resamples, mean)
r.median
## calculate the sd of the distribution of medians 
sqrt(var(r.median))

从上面的代码中,我从每个采样数据中得到了 20 个均值,以及均值分布的 sd。如何从 20 个样本的分布中获得 100 个均值?和标准差一样吗?

非常感谢!!

标签: rsamplestatistics-bootstrap

解决方案


用您的样品制作矩阵

mat <- do.call(rbind, resamples)

然后

rowMeans(mat)

会给你“样本内”的意思和

colMeans(mat) 

“跨样本”的意思。对于其他数量,例如标准偏差,您可以使用apply,例如apply(mat, 1, sd)matrixStats包中的函数,例如matrixStats::rowSds(mat)


推荐阅读