【发布时间】:2020-07-13 16:34:05
【问题描述】:
我想执行蒙特卡罗模拟,平均值 (i) 从 5 到 60 变化,间隔为 5,j 从 0 到 1 变化 0.125。作为以下代码的输出,我希望为每个 j 获得的数据帧沿行绑定。例如,如果我想对给定的 j 执行 10,000 次模拟,则生成的数据帧(即 DF1)将有 12 列和 10000 行,其中 12 表示 i 的长度(即 60/50。随后,每个 j 的 DF1应该逐行绑定。因此,对于最终数据帧的 j 的 8 个值,DF2 将有 80000 行和 12 列。但是,在运行此代码时,我收到此错误消息:“数据列表中的错误 [[j]]
代码是:
datalist = list()
for (j in seq(0, 1, 0.125)){
DF1 <- do.call(cbind, lapply(seq(5,60,5), function(i) setNames(data.frame(rlnorm(n=10000, log(i^2 / sqrt((i*j)^2 + i^2)), sqrt(log(1 + ((i*j)^2 / i^2))))), i)))
datalist[[j]] <- DF1
}
DF2 = do.call(rbind, datalist)
【问题讨论】:
-
所以在循环的第一次迭代中,
j是0。您正在尝试将循环基于序列seq(0, 1, 0.125)而不是整数序列,因此您不能在j上设置子集。