r - 从引导程序中获取样本的平均值
问题描述
我想获得 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 个均值?和标准差一样吗?
非常感谢!!
解决方案
用您的样品制作矩阵
mat <- do.call(rbind, resamples)
然后
rowMeans(mat)
会给你“样本内”的意思和
colMeans(mat)
“跨样本”的意思。对于其他数量,例如标准偏差,您可以使用apply
,例如apply(mat, 1, sd)
或matrixStats
包中的函数,例如matrixStats::rowSds(mat)
。
推荐阅读
- c++ - 为什么组合的上限和下限比较总是评估为真?
- c++ - 完美的转发和构造函数
- laravel - 在 Laravel 5.1 环境中创建缓存文件夹以供第三方库编写的最佳位置
- android - 无法检测小于 21 的 API 的 http 错误
- neo4j - 无法使用 neo4j-admin 导入 csv 文件
- python - python argparse CIDR 或带有子网掩码的网络
- security - TLS 证书是否需要通用 SAN
- cs50 - 卡在 cs50 pset3 频率
- unity3d - Blender 与 Unity3D 中的海洋模拟
- python - 如何打印以使用 python 开头的最新文件?