У меня есть набор данных gl, и я хочу создать второй набор данных, gl2, с уравнением, основанным на gl.Тем не менее, он сохраняет только последнее значение из моего цикла.
gl:
CaseID Trait RMF RMFE ZM ZME ZF ZFE avG errG
171 Lrs -0.85 0.6 0.92 0.022 0.77 0.018 0.043 0.051
172 Hll 0.4 0.14 171.8 0.680 172.5 0.5333 22.8 3.6
173 W 0.42 0.09 19.7 0.382 18.7 0.2125 0.79 0.4
174 Fec 0.27 0.13 1.63 0.036 0.92 0.034 0.039 0.009
201 ConPG -0.95 0.42 0.00018 8.65E-5 0.0008 6.61E-5 7.93 7.06
206 Lrs -0.48 0.44 0.98 0.129 2.27 0.118 61.07 58.94
131 PWm1 0.4 0.48 191 1.048 131 0.733 157 75
132 PWm2 0.53 0.06 198 0.650 135 0.396 263 92
133 PWm3 0.59 0.22 157 0.670 109 0.391 195 195
Код:
draws <- 10^6
gl2 <- data.frame(matrix(nrow=9, ncol=1))
gl2$CaseID <- gl$CaseID
gl2$Trait <- gl$Trait
for (i in nrow(gl)){
G <- rnorm(draws, gl$avG[i], gl$errG[i])
zm <- rnorm(draws, gl$ZM[i], gl$ZME[i])
zf <- rnorm(draws, gl$ZF[i], gl$ZFE[i])
rmf <- rnorm(draws, gl$RMF[i], gl$RMFE[i])
load <- (zm + zf)/(8*G + rmf)
mload <- mean(load)
gl2[i,1] <- c(mload)
}
Вывод, который я надеялся стать новымстолбец для gl2 с результатом уравнения (mload), проходящего через каждую строку, вместо этого представляет собой одно значение в последней строке столбца 1. Я знаю, что это неэффективный код, но я так понимаю.Я провел дни, играя с ним и не нашел решения, и при этом я не понимаю, почему это не работает.Благодарю.