[R-es] Operaciones entre variables de un dataframe

Javier Marcuzzi javier.ruben.marcuzzi en gmail.com
Mie Ago 16 13:59:24 CEST 2017


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



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