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