Hola, ¿qué tal? Si phen_tot es un DF, entonces no existe phen_tot$convergence[i][j]. A lo más, existe phen_tot$convergence[i], que es el i-ésimo elemento de la columna "convergence" de phen_tot. A saber cuál es la lógica que quieres implementar ahí.
Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El vie., 25 ene. 2019 a las 15:24, Xavier-Andoni Tibau Alberdi (< xaviti...@gmail.com>) escribió: > 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.ruizola...@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 (< >> gilbello...@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.ruizola...@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@r-project.org >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> > >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > -- Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es