模拟R中对数正态的数据

时间:2012-12-27 01:37:32

标签: r simulation

假设我想从对数正态分布模拟10个观测值并重复100次。我写了一些R代码,但由于某种原因它没有用。这是代码:

for(i in 1:100) 
 {

x = rlnorm(10, meanlog = 0, sdlog = 1)

 }

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这可行:

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)
}