0

対数正規分布から 10 個の観測値をシミュレートし、これを 100 回繰り返したいとします。R コードを書いたのですが、何らかの理由で機能しません。コードは次のとおりです。

for(i in 1:100) 
 {

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

 }

何かご意見は?

4

1 に答える 1

3

これはうまくいく可能性があります:

lapply(1:100, function(i) rlnorm(10, meanlog = 0, sdlog = 1))

編集
平均とsdの使用を計算するには:

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)
}
于 2012-12-27T01:55:23.950 に答える