【发布时间】:2021-12-14 20:41:30
【问题描述】:
我有一个非常简单的 for 循环(或者我是这么认为的)。它的目的是在 20 种不同的条件下执行 1000 次动作。这应该提供 20,000 的结果。相反,我得到 1000。我的想法是我可能遗漏了一些非常微不足道的东西。
nSims <- 1000
Prop1 <- numeric(nSims * 20)
Prop2 <- numeric(nSims * 20)
Prop3 <- numeric(nSims * 20)
Score <- NA
for(i in 1:nSims){
for (j in 1:20){
G1 <- rnorm (10000, 100, 10)
G2 <- rnorm (10000, 100 - i/50, 10)
G3 <- rnorm (10000, 100 + i/50, 10)
Prop1 [i] = length (which (G1 > (100+j))) /length (G1)
Prop2 [i] = length (which (G2 > (100+j))) /length (G2)
Prop3 [i] = length (which (G3 > (100+j))) /length (G3)
Score [j] = 100 + j
}
}
sim <- data.frame (cbind (Prop1, Prop2, Prop3, Score))
对于 j 的每次迭代,输出应该是一个包含三个 1000 变量的数据帧。相反,我得到了 50 次 J 迭代,然后是很多 0。
【问题讨论】:
-
您正在为每个
j迭代重新分配和替换 Prop1 [i]、Prop2[i]..., -
@GuedesBF 你是对的。我应该怎么做才能不重新分配?只需在外面添加道具并有sim [j]?
标签: r for-loop simulation