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

如何循环调用函数计算样本均值差并将结果存入空向量?

解决方法

首先需要修正你提供的test_sample代码——rnorm()的n参数要求是单个整数,原代码里的n=1:1000会生成1000个长度从1到1000的向量,这不符合测试样本的需求,正确写法如下:

test_sample <- rnorm(n=1000, mean=3, sd=2)
empty_vector <- rep(NA, 10000)

你的mean_diff_sampler函数逻辑没问题,保留即可:

mean_diff_sampler <- function(pop_v, n){
  sample1 <- sample(pop_v, size=n, replace = TRUE)
  sample2 <- sample(pop_v, size=n, replace = TRUE)
  mean1 <- mean(sample1)
  mean2 <- mean(sample2)
  diffmean <- mean1 - mean2
  return(diffmean)
} 

下面提供两种实现10000次循环并存储结果的方式:

方法一:显式for循环

这是最直观的实现方式,直接遍历预定义的空向量,逐个赋值:

# 指定每次抽样的样本量,根据你的需求替换数值,比如n=50
sample_size <- 50

for(i in 1:length(empty_vector)){
  empty_vector[i] <- mean_diff_sampler(pop_v = test_sample, n = sample_size)
}

方法二:使用replicate()函数(更高效简洁)

R中推荐用这类向量化函数替代显式循环,代码更简洁且执行效率更高:

sample_size <- 50
# 直接生成10000次结果的向量
result_vector <- replicate(10000, mean_diff_sampler(pop_v = test_sample, n = sample_size))

# 如果一定要用你预先创建的empty_vector,直接赋值即可
empty_vector <- result_vector

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:57:11