Итерационное уравнение для строк в цикле for сохраняет только последнее значение - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть набор данных 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. Я знаю, что это неэффективный код, но я так понимаю.Я провел дни, играя с ним и не нашел решения, и при этом я не понимаю, почему это не работает.Благодарю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...