Buenas noches a todos, Estoy empezando con la programación en R y tengo un inconveniente que estoy seguro ustedes lo resolverán muy fácil. Tengo un data frame y quiero calcular un nuevo campo dentro del mismo frame que se llama "wryB03", con dos variables que se llaman "nEstCoordTMin" y "nEstCoordTMax", quiero crear una variable nueva "nCoor3.1" de acuerdo a la siguiente condición: - Cuando "nEstCoordTMin" >0 & "nEstCoordTMax">0 que me haga la siguiente operación en la variable "nCoor3.1" - "nEstCoordTMax" - "nEstCoordTMin" En el código tengo algo como: wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0), "nCoor3.1"] <- wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0),(wryB03[,"nEstCoordTMax"] - wryB03[,"nEstCoordTMin"])] El objetivo es crear una variable nueva "nCoor3.1" con la diferencia " nEstCoordTMax"- "nEstCoordTMin " cuando se cumpla la condición. Al ejecutar el código genera el siguiente error: Warning message: In `[<-.data.frame`(`*tmp*`, (wryB03[, "nEstCoordTMin"] > 0 & wryB03[, : provided 65 variables to replace 1 variables Agradezco su colaboración. Saludos, [[alternative HTML version deleted]]
Jesús Para Fernández
2017-Aug-16 05:19 UTC
[R-es] Operaciones entre variables de un dataframe
Has probado con ifelse?? wryB03&nCoord<-ifelse( wryB03$EstCoordTMin" >0 & nEstCoordTMax>0, wryB03$nEstCoordTMax -wryB03$nEstCoordTMin,0) ________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de David Contreras <davidcontreras00 en gmail.com> Enviado: miércoles, 16 de agosto de 2017 6:10 Para: r-help-es Asunto: [R-es] Operaciones entre variables de un dataframe Buenas noches a todos, Estoy empezando con la programación en R y tengo un inconveniente que estoy seguro ustedes lo resolverán muy fácil. Tengo un data frame y quiero calcular un nuevo campo dentro del mismo frame que se llama "wryB03", con dos variables que se llaman "nEstCoordTMin" y "nEstCoordTMax", quiero crear una variable nueva "nCoor3.1" de acuerdo a la siguiente condición: - Cuando "nEstCoordTMin" >0 & "nEstCoordTMax">0 que me haga la siguiente operación en la variable "nCoor3.1" - "nEstCoordTMax" - "nEstCoordTMin" En el código tengo algo como: wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0), "nCoor3.1"] <- wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0),(wryB03[,"nEstCoordTMax"] - wryB03[,"nEstCoordTMin"])] El objetivo es crear una variable nueva "nCoor3.1" con la diferencia " nEstCoordTMax"- "nEstCoordTMin " cuando se cumpla la condición. Al ejecutar el código genera el siguiente error: Warning message: In `[<-.data.frame`(`*tmp*`, (wryB03[, "nEstCoordTMin"] > 0 & wryB03[, : provided 65 variables to replace 1 variables Agradezco su colaboración. Saludos, [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es Página de Información de R-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es> stat.ethz.ch Esta es una lista de correo para solicitar ayuda sobre R en español y se entiende como un complemento social a la documentación, libros, etc. disponibles sobre R ... [[alternative HTML version deleted]]
Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170816/92183a7a/attachment.html>
Estimado David Contreras Lo primero no es sobre R, sino sobre el lenguaje, es lo mismo pero si nombra las variables como A, B, y C, la lectura es mucho más simple para el ojo humano y encontrar el error (luego colocar un nombre casi real). Es un problema simple, con muchas posibles formas para solucionarlo, lo que usted plantea no es mala idea, cuándo yo realizo ese tipo de cálculos primero veo las condiciones, por ejemplo, escribo si A>B en C escribir casa, lo contrario en C escribir auto, si obtengo un data.frame con una columna llena de casas y autos, reemplazo una de estas palabras por el cálculo, corro R, si todo está bien luego continuo. Es algo tonto, pero es mucho más sencillo ver un listado de palabras antes que números para encontrar un error de escritura de nuestra parte en R (no es lo mismo dos palabras posibles a varios números posibles). Lo que usted plantea no esta mal encaminado, pero debe escribir dos renglones, uno para la condición que busca y otro para la que no desea, en su caso para los que tienen menos que 0, simplemente para controlar un poco los datos, en otras palabas decidir que pasa cuándo la condición no se cumple, es una forma de conocer bien los datos, aunque no es indispensable porque si la condición no se cumple no se realiza el cálculo. Javier Rubén Marcuzzi De: David Contreras Enviado: miércoles, 16 de agosto de 2017 1:11 Para: r-help-es Asunto: [R-es] Operaciones entre variables de un dataframe Buenas noches a todos, Estoy empezando con la programación en R y tengo un inconveniente que estoy seguro ustedes lo resolverán muy fácil. Tengo un data frame y quiero calcular un nuevo campo dentro del mismo frame que se llama "wryB03", con dos variables que se llaman "nEstCoordTMin" y "nEstCoordTMax", quiero crear una variable nueva "nCoor3.1" de acuerdo a la siguiente condición: - Cuando "nEstCoordTMin" >0 & "nEstCoordTMax">0 que me haga la siguiente operación en la variable "nCoor3.1" - "nEstCoordTMax" - "nEstCoordTMin" En el código tengo algo como: wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0), "nCoor3.1"] <- wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0),(wryB03[,"nEstCoordTMax"] - wryB03[,"nEstCoordTMin"])] El objetivo es crear una variable nueva "nCoor3.1" con la diferencia " nEstCoordTMax"- "nEstCoordTMin " cuando se cumpla la condición. Al ejecutar el código genera el siguiente error: Warning message: In `[<-.data.frame`(`*tmp*`, (wryB03[, "nEstCoordTMin"] > 0 & wryB03[, : provided 65 variables to replace 1 variables Agradezco su colaboración. Saludos, [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Buen dia, Soluciando, gracias por su ayuda!!! *David Contreras* Estadístico Móvil 3124345188. <%2B57%20%281%29%204841410%20Ext.%20257> davidcontreras00 en gmail.com <cparra en contratista.icfes.gov.co> El 16 de agosto de 2017, 6:59, Javier Marcuzzi < javier.ruben.marcuzzi en gmail.com> escribió:> Estimado David Contreras > > > > Lo primero no es sobre R, sino sobre el lenguaje, es lo mismo pero si > nombra las variables como A, B, y C, la lectura es mucho más simple para el > ojo humano y encontrar el error (luego colocar un nombre casi real). > > > > Es un problema simple, con muchas posibles formas para solucionarlo, lo > que usted plantea no es mala idea, cuándo yo realizo ese tipo de cálculos > primero veo las condiciones, por ejemplo, escribo si A>B en C escribir > casa, lo contrario en C escribir auto, si obtengo un data.frame con una > columna llena de casas y autos, reemplazo una de estas palabras por el > cálculo, corro R, si todo está bien luego continuo. Es algo tonto, pero es > mucho más sencillo ver un listado de palabras antes que números para > encontrar un error de escritura de nuestra parte en R (no es lo mismo dos > palabras posibles a varios números posibles). > > > > Lo que usted plantea no esta mal encaminado, pero debe escribir dos > renglones, uno para la condición que busca y otro para la que no desea, en > su caso para los que tienen menos que 0, simplemente para controlar un poco > los datos, en otras palabas decidir que pasa cuándo la condición no se > cumple, es una forma de conocer bien los datos, aunque no es indispensable > porque si la condición no se cumple no se realiza el cálculo. > > > > Javier Rubén Marcuzzi > > > > *De: *David Contreras <davidcontreras00 en gmail.com> > *Enviado: *miércoles, 16 de agosto de 2017 1:11 > *Para: *r-help-es <R-help-es en r-project.org> > *Asunto: *[R-es] Operaciones entre variables de un dataframe > > > > Buenas noches a todos, > > > > Estoy empezando con la programación en R y tengo un inconveniente que estoy > > seguro ustedes lo resolverán muy fácil. > > > > Tengo un data frame y quiero calcular un nuevo campo dentro del mismo > > frame que se llama "wryB03", con dos variables que se llaman > "nEstCoordTMin" > > y "nEstCoordTMax", quiero crear una variable nueva "nCoor3.1" de acuerdo a > > la siguiente condición: > > > > - Cuando "nEstCoordTMin" >0 & "nEstCoordTMax">0 que me haga la siguiente > > operación en la variable "nCoor3.1" > > > > - "nEstCoordTMax" - "nEstCoordTMin" > > > > > > En el código tengo algo como: > > > > wryB03[(wryB03[,"nEstCoordTMin"]>0 & wryB03[,"nEstCoordTMax"]>0), > > "nCoor3.1"] <- wryB03[(wryB03[,"nEstCoordTMin"]>0 & > > wryB03[,"nEstCoordTMax"]>0),(wryB03[,"nEstCoordTMax"] - > > wryB03[,"nEstCoordTMin"])] > > > > El objetivo es crear una variable nueva "nCoor3.1" con la diferencia " > > nEstCoordTMax"- "nEstCoordTMin " cuando se cumpla la condición. > > > > Al ejecutar el código genera el siguiente error: > > > > Warning message: > > In `[<-.data.frame`(`*tmp*`, (wryB03[, "nEstCoordTMin"] > 0 & wryB03[, : > > provided 65 variables to replace 1 variables > > > > > > Agradezco su colaboración. > > > > Saludos, > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >[[alternative HTML version deleted]]