【发布时间】:2014-12-10 17:43:41
【问题描述】:
我试图从平均值为 10.016 且标准差为 0.8862719 (n=20) 的正态分布中抽取一千次样本。我想创建一个循环来做到这一点。我尝试创建一个函数(stamendist)来从具有上述均值和标准差的正态分布中提取随机变量,但是当我运行循环时,我收到一条错误消息: 错误:找不到函数“stamendist”(即使我在运行循环之前运行了该函数)。
我尝试通过仅输入 rnorm(n=20,mean=10.016,sd=0.8862719) 来运行没有对象“stamendist”的循环,但同样的错误消息仍然存在。
这是我的代码:
stamendist <- rnorm(n=20,mean=10.016,sd=0.8862719)
sampled.means <- NA
for(i in 1:1000){
y=stamendist(100)
sampled.means[i] <- mean(y)
}
我是否误解了函数的工作原理?我对 R 很陌生,所以任何帮助或建议将不胜感激。
【问题讨论】:
-
stamendist是一个向量,而不是一个函数。所以stamendist(100)没有意义 -
用
NA初始化很老套,尝试用sampled.means <- vector("numeric", 1e3L)初始化。这会分配向量所需的确切内存量,而NA只是一个接一个地构建一个向量。如果您知道向量将有多大,最好分配它的确切长度。 -
感谢您的建议!
标签: r