我创建了这个函数来从R生成的一组随机数字中获取样本,然后计算这些数字的平均值、标准差和置信区间。我的目标是尝试并复制它,以便模拟置信区间的重复采样。然而,每当我使用replicate函数运行我的代码时,它都会返回一个从1到10000的值矩阵,而不是返回我想要的重复的置信度区间采样。这是我现在拥有的代码:
SampleCI <- function(n, mu, sigma){
SRS <- rnorm(n = n, mean = mu, sd = sigma)
SampleTest <- sample(SRS, size = 15)
samplestatistics <- c(sum(!is.na(SampleTest)), mean(SampleTest), sd(SampleTest))
names(samplestatistics) <- c("n", "sample mean", "StdDev")
# 95% CI for mu
L <- samplestatistics[2] - qt(.975, samplestatistics[1] - 1) * samplestatistics[3] / sqrt(samplestatistics[1])
U <- samplestatistics[2] + qt(.975, samplestatistics[1] - 1) * samplestatistics[3] / sqrt(samplestatistics[1])
CI <- c(L,U)
list(samplestatistics = samplestatistics,
CI = CI
)
}
PossibleDataset <- SampleCI(100, 25, 3)
NSim = 10^4
testing <- replicate(NSim, PossibleDataset)
testing发布于 2020-11-22 05:59:50
应在应用函数时应用replicate,而不是在输出上应用
outlst <- replicate(NSim, SampleCI(100, 25, 3), simplify = FALSE)在OP的代码中,SampleCI只应用一次,然后复制输出n次
https://stackoverflow.com/questions/64948515
复制相似问题