[R-es] Error "valor ausente TRUE/FALSE..." en doble loop FOR

Xavier-Andoni Tibau Alberdi x@v|t|b@u @end|ng |rom gm@||@com
Vie Ene 25 15:23:22 CET 2019


Buenas,

puedes imprimir phen_tot$convergence[i][j], con diversas i i j, para ver
que te devuelve. también puedes usar type(phen_tot$convergence[i][j]) para
ver que tipo es. Entonces sabrás que tienes que poner en el oro lado del
if.

Un saludo!

Xavier Tibau

Missatge de Gemma Ruiz-Olalla <gemma.ruizolalla using gmail.com> del dia dv., 25
de gen. 2019 a les 15:06:

> Hola Carlos,
>
> Gracias por la respuesta. phen_tot es un data frame visualizado como
> tibble, y contiene (entre otras) las columnas "convergence", "r_square" y
> "maxlog10mfi". Y queremos crear nuevas columnas, como "use",
> "convergence_cor", etc.
>
> phen_tot$convergence debería ser un factor de si el modelo converge o no
> (levels: 1 y 2), pero tibble lo tiene como "double". Pensamos que de ahí
> podía venir el error e intentamos cambiarlo a factor con "factor()" y con
> "as.factor()", pero nada funcionó. Creemos que no funcionó porque todos los
> valores que tenemos son 1, y no tenemos ningún 2, así que no lo detecta
> como nivel del factor. ¿Puede ser?
>
> Muchas gracias,
>
> Gemma
>
>
> El vie., 25 ene. 2019 a las 14:07, Carlos J. Gil Bellosta (<
> gilbellosta using gmail.com>) escribió:
>
> > Hola, qué tal? Habría que ver qué contiene el objeto phen_tot, pero la
> > expresión
> > phen_tot$convergence[i][j]
> > es muy sospechosa. Qué estructura tiene phen_tot$convergence?
> >
> > Un saludo,
> >
> > Carlos J. Gil Bellosta
> >
> >
> > El vie., 25 ene. 2019 13:32, Gemma Ruiz-Olalla <
> gemma.ruizolalla using gmail.com>
> > escribió:
> >
> >> Buenas tardes,
> >>
> >> Estamos intentando hacer esta función, y sabemos que el bucle funciona
> (lo
> >> hemos testeado). Pero nos da este error ya en la primera línea:
> >>
> >> "Error in if (phen_tot$convergence[i][j] == '2' ||
> phen_tot$r_square[i][j]
> >> <= : valor ausente donde TRUE/FALSE es necesario"
> >>
> >> Hemos evitado usar Tidyverse expresamente por la complejidad de la toma
> de
> >> decisiones del árbol; por eso queremos mantener los bucles "for".
> >>
> >> ¿Alguien nos puede echar una mano para ver qué falla?
> >>
> >>
> >>     for(i in l_plates) {
> >>       for(j in l_analytes) {
> >>
> >>       # arguments
> >>       if(phen_tot$convergence[i][j] == '2' || phen_tot$r_square[i][j] <=
> >> 0.9) {
> >>
> >>         # first condition
> >>         phen_tot$convergence_cor <- 'F'
> >>         phen_tot$use <- 'F'
> >>         phen_tot$ref_val <- 15000
> >>
> >>         # second condition
> >>         }else {phen_tot$convergence_cor[i][j] <- 'T'
> >>             if(phen_tot$max_log10mfi[i][j] < log10(15000)){
> >>             phen_tot$use[i][j] <- 'F'
> >>             phen_tot$ref_val[i][j] <- 15000
> >>
> >>             # third condition
> >>             }else {phen_tot$use[i][j] <- 'T'
> >>             phen_tot$ref_val[i][j] <- phen_tot$pred_log10mfi[i][j]
> >>             }
> >>         }
> >>      }
> >>   }
> >>
> >>
> >> Muchas gracias,
> >>
> >> --
> >> Gemma
> >>
> >>         [[alternative HTML version deleted]]
> >>
> >> _______________________________________________
> >> R-help-es mailing list
> >> R-help-es using r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es