假设我想从对数正态分布中模拟 10 个观察值并重复 100 次。我写了一些 R 代码,但由于某种原因它不起作用。这是代码:
for(i in 1:100)
{
x = rlnorm(10, meanlog = 0, sdlog = 1)
}
有什么想法吗?
假设我想从对数正态分布中模拟 10 个观察值并重复 100 次。我写了一些 R 代码,但由于某种原因它不起作用。这是代码:
for(i in 1:100)
{
x = rlnorm(10, meanlog = 0, sdlog = 1)
}
有什么想法吗?
这可以工作:
lapply(1:100, function(i) rlnorm(10, meanlog = 0, sdlog = 1))
编辑
要计算平均值和标准差,请使用:
lapply(1:100, function(i) {
x <- rlnorm(10, meanlog = 0, sdlog = 1)
c(mean=mean(x), sd=sd(x))
})
或者以矩阵格式返回它(使用do.call
):
do.call(rbind, lapply(1:100, function(i) {
x <- rlnorm(10, meanlog = 0, sdlog = 1)
c(mean=mean(x), sd=sd(x))
}))
并且还要使您的原始代码正常工作(请参阅 DWin 的注释),请使用:
x <- list()
for(i in 1:100) {
x[[i]] <- rlnorm(10, meanlog = 0, sdlog = 1)
}