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

R语言如何实现不同样本量抽样下的0.6分位数计算

原代码报错原因
  • 你生成的dat是一维数值向量,不存在dat列,调用dat$dat会返回NULL,无法完成抽样
  • 自定义函数和sapply调用缺少闭合的右括号,语法不完整
  • 没有对输出结果做结构化整理,无法直接得到SS、QU两列的目标格式
可直接运行的正确代码
# 生成测试总体数据
dat <- rnorm(5000, mean = 100, sd = 10)
# 预设样本量序列
ss_list <- c(5, 10, 15, 25, 50, 75, 100, 250, 500, 750, 1000, 1250, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000)

# 批量计算分位数
result <- as.data.frame(
  t(sapply(ss_list, function(current_ss){
    # 按当前样本量抽样
    sub_sample <- sample(dat, size = current_ss, replace = TRUE)
    # 计算0.6分位数,去除默认的分位标签
    qu_res <- unname(quantile(sub_sample, probs = 0.6))
    # 返回对应键值对
    c(SS = current_ss, QU = qu_res)
  }))
)
使用说明
  • 运行代码后,result对象就是要求的两列结构化结果:SS列对应预设的样本量取值,QU列对应该样本量下抽样计算得到的0.6分位数值
  • 随机抽样结果默认每次运行都会变化,如果需要固定结果复现,可以在最开头加一行set.seed(任意整数),比如set.seed(123)
  • 如果要改成无放回抽样,把sample()参数里的replace = TRUE改成replace = FALSE即可,你预设的最大样本量和总体容量一致,无放回抽样也不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:00:53