在R中模拟来自对数正态分布的数据

在R中模拟来自对数正态分布的数据,r,simulation,R,Simulation,假设我想模拟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

假设我想模拟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))
})
为了使您的原始代码正常工作(参见DWin的注释),请使用:

x这可能有效:

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))
})
为了使您的原始代码正常工作(参见DWin的注释),请使用:


x在循环的每次迭代中覆盖
x
。您可能希望查看
replicate(100,rlnorm(10,meanlog=0,sdlog=1))
或者更简单地说,您在循环的每次迭代中覆盖
x
。您可能想查看
复制(100,rlnorm(10,meanlog=0,sdlog=1))
或者更简单地说,
x如何计算每10次观察的平均值和标准差?谢谢请参阅我的编辑。注:您也可以在第一次创建时使用
lappy
,并在创建100个模拟后向其提供
函数(x)(平均值=平均值(x),sd=sd(x))
。如何计算每10个观察值的平均值和sd?谢谢请参阅我的编辑。注:您也可以在第一次创建时使用
lappy
,并在创建100个模拟后向其提供
函数(x)c(平均值=平均值(x),sd=sd(x))