我有一個非常簡單的 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 的資料幀。相反,我得到了 J 的 50 次迭代,然后是很多 0。
uj5u.com熱心網友回復:
您可以使用不同的索引 ( k) 來保存計算。
nSims <- 1000
Prop1 <- numeric(nSims * 20)
Prop2 <- numeric(nSims * 20)
Prop3 <- numeric(nSims * 20)
Score <- NA
k <- 0
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)
k <- k 1
Prop1 [k] = length (which (G1 > (100 j))) /length (G1)
Prop2 [k] = length (which (G2 > (100 j))) /length (G2)
Prop3 [k] = length (which (G3 > (100 j))) /length (G3)
Score [k] = 100 j
}
}
sim <- data.frame (Prop1, Prop2, Prop3, Score)
nrow(sim)
#[1] 20000
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/348126.html
上一篇:如何呼叫嵌套回圈中的值?
