jeudi 23 mai 2019

For loop only saving last value

I'm trying to generate a loop that combines for and if statements to insert rownames and a value in each row of a matrix. The code doesn't shows any output errors, but the unique value of the matrix that it is actually inserted is the last one. My code is like this:

N<-85
mejoralt<- matrix(0,ncol=1,nrow=N)
for (i in (1:N)) {
  if ((prueba1[N]>prueba2[N]) == TRUE & (prueba1[N]>prueba3[N]) == TRUE &                 (prueba1[N]>prueba4[N]) == TRUE)  {
  mejoralt[N,] <- prueba1[N]
  rownames(mejoralt)[N] <- "prueba1"}
  else{
    if ((prueba2[N]>prueba3[N]) == TRUE & (prueba2[N]>prueba4[N]) == TRUE)  {
      mejoralt[N,] <- prueba2[N]
      rownames(mejoralt)[N] <-"prueba2"}
    else{
      if ((prueba3[N]>prueba4[N]) == TRUE)  {
        mejoralt[N,] <- prueba3[N]
       rownames(mejoralt)[N] <- "prueba3"}
      else {
          mejoralt[,N] <- prueba4[N]
          rownames(mejoralt)[N] <- "prueba4"
        }
      }
    }
}

 mejoralt
        [,1]
<NA>    0.00
<NA>    0.00
...     ...
prueba3 0.36

Aucun commentaire:

Enregistrer un commentaire