You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中如何多次模拟不同样本量抽样并计算每个样本量的对应总和

R语言实现方案

实现逻辑

  • 提前初始化1000行×10列的结果矩阵,行对应1000次重复模拟,列对应p=1到10的求和结果,避免循环动态扩容降低效率
  • 外层循环控制1000次模拟重复
  • 内层遍历1到10的p值,生成对应伽马样本后求和存入结果矩阵对应位置

基础循环实现(易理解)

# 初始化结果矩阵,设置列名对应不同p值
result <- matrix(NA, nrow = 1000, ncol = 10, dimnames = list(NULL, paste0("p_", 1:10)))

# 重复1000次模拟
for (sim_id in 1:1000) {
  for (p in 1:10) {
    # 生成p个形状参数为p、率参数为1的伽马样本,求和后存储
    result[sim_id, p] <- sum(rgamma(n = p, shape = p, rate = 1))
  }
}

向量化简洁实现(运行效率更高)

# replicate负责重复1000次计算,sapply批量遍历p值求和,最后转置得到和上述一致的结果结构
result <- t(replicate(1000, sapply(1:10, function(p) sum(rgamma(p, p, 1)))))
colnames(result) <- paste0("p_", 1:10)

结果使用说明

  • 取result[, k]即可得到p=k对应的全部1000个求和结果
  • 取result[k, ]即可得到第k次模拟的所有p值对应的求和结果

内容的提问来源于stack exchange,提问作者johnylulu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:06:01