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

Gemma Ruiz-Olalla gemm@@ru|zo|@||@ @end|ng |rom gm@||@com
Vie Ene 25 15:05:54 CET 2019


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]]



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