创建手段循环

问题描述 投票:0回答:1

我使用 rnorm 作为数据集,并尝试创建一个循环,使用 n=25、mean=10 和 SD=10 获取 100 个随机样本。然后我想获取每个样本的平均值并将其转换为样本平均值的直方图。

使用各种网站我整理了这个:

normloop25 <- data.frame(ID = 1:100, Value = rnorm(100, 10, 10))
sample_size <- 25
random_sample <-
  normloop25[sample(nrow(normloop25), sample_size), ]
n_repeats <- 100
samples_list_25 <- vector("list", n_repeats)

for (i in 1:100) {
  samples_list_25[[i]] <-
    normloop25[sample(nrow(normloop25), sample_size), ]
}
means <- sapply(samples_list_25, function(sample)
  mean(sample$Value))
combined_samplesA <- do.call(rbind, lapply(1:n_repeats, function(i) {
  data.frame(Sample = i, Value = samples_list_25[[i]]$Value)
}))
hist(combined_samplesA, las = 1, col = 'blue')

它一直有效直到我得到 hist.default(combined_samplesA, las = 1, col = "blue") 中的错误: “x”必须是数字

r loops histogram
1个回答
0
投票

如果您只想分析样本均值,则无需保存每个整个样本:

sample_means = sapply(1:100, \(x) mean(rnorm(250, mean = 10, sd = 10)))
hist(sample_means)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.