Re: [R-es] Error "valor ausente TRUE/FALSE..." en doble loop FOR
Hola Carlos y Xavier, Muchas gracias, realmente los índices estaban mal y no tenía sentido porque efectivamente no existía phen_tot$convergence[i][j]. Estamos arreglándolo ahora y pinta bien, gracias! Saludos, Gemma El vie., 25 ene. 2019 a las 15:53, Carlos J. Gil Bellosta (< gilbello...@gmail.com>) escribió: > 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 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
Re: [R-es] Error "valor ausente TRUE/FALSE..." en doble loop FOR
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 > 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
[R-es] Error "valor ausente TRUE/FALSE..." en doble loop FOR
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
[R-es] Random Forest con poca "n" y muchos predictores
Hola, Me he iniciado hace poco en Machine Learning, y tengo una duda sobre mis conjuntos de datos: el primero tiene 37 variables explicativas y 116 instancias, y el segundo, 140 variables explicativas y 195 instancias. El primero lo veo bien, ya que hay 3 veces más casos que variables explicativas, pero creo que el segundo caso puede suponer un problema al haber casi el mismo número de predictores que de casos, verdad? Para "arreglar" esto (en un Random Forest), tendría sentido hacer iterar el train() unas 50-100 veces? Ir guardando estos modelos resultantes (entrenados) en una lista, para luego hacer una especie de promedio con ellos, y éste resultante (sus parámetros ntree y mtry) usarlo para generar el modelo randomForest() definitivo. Tiene sentido, o qué podría hacer si no? Muchas gracias! -- Gemma Ruiz-Olalla gemma.ruizola...@gmail.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
[R-es] Última (más reciente) posición de un vector (con "n" desconocido)
Hola, Hay alguna forma de acceder a la última posición de un vector si se desconoce "n"? (por estar dentro de un bucle "for" que va incrementando su contador) La idea es acceder al valor de vector[n] en el caso de que "n" sea una incógnita. Estoy casi segura de que es posible pero mi conocimiento de R es bastante limitado. 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
[R-es] Interpretación coeficiente en modelo
Hola, Tenemos este modelo: Phealth = mu + 11.79 poly(weight, 3) -5.15 sex.F +0.02 height -10.67 poly(weight, 3): sex.F + height:sex.F + epsilon Donde Phealth es una respuesta binaria que representa la percepción de los encuestados sobre su estado de salud (1=excelente, 0=pobre). Tenemos el polinomio al cubo de la variable peso que no sabemos interpretar. ¿Alguien nos puede ayudar? Muchas gracias, -- Gemma gemma.ruizola...@gmail.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
[R-es] Etiquetas en gráfico de dispersión
Buenas tardes, Tengo un gráfico de dispersión y quiero indicar cada punto a qué individuo corresponde. ¿Cómo añado estas etiquetas de datos? El código es: res-cmdscale(fst,k=2) plot(res[,1],res[,2],lwd=2,xlab=x,ylab=y) abline(h=0,v=0,col=blue) 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