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 <[email protected]> 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 (< > [email protected]>) 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 < > [email protected]> > > 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 > >> [email protected] > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > >> > > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
