Discussion:
[R-es] función IF
Belén Cillero Jiménez
2018-11-13 21:11:56 UTC
Permalink
Buenas noches
Escribo la siguiente sintaxis para crear la variable epa_web$DTANque va a tomar valores entre10 y 8:

epa_web$DTAN<-' '

if ((epa_web$DTANT<1) && (epa_web$DTANT!=' ')){
epa_web$DTAN<-1
} else if ((epa_web$DTANT>=1) && (epa_web$DTANT<3))
{epa_web$DTAN<-2
} else if ((epa_web$DTANT>=3) && (epa_web$DTANT<6))
{epa_web$DTAN<-3
}else if ((epa_web$DTANT>=6) && (epa_web$DTANT<12))
{epa_web$DTAN<-4
}else if ((epa_web$DTANT>=12) && (epa_web$DTANT<18))
{epa_web$DTAN<-5
}else if ((epa_web$DTANT>=18) && (epa_web$DTANT<24))
{epa_web$DTAN<-6
}else if ((epa_web$DTANT>=24) && (epa_web$DTANT<48))
{epa_web$DTAN<-7
}else if (epa_web$DTANT>=48)
{epa_web$DTAN<-8}

y el resultado que obtengo es que la variable nueva solo toma el valor 1
¿Qué es lo que estoy haciendo mal?
Muchas gracias a todos.
Un saludo,


Belén Cillero Jiménez

Técnico de Estadística

Instituto de Estadística de La Rioja



***@larioja.org<mailto:***@larioja.org>

oɯsıɯ ol ǝɹdɯǝıs sɐƃɐɥ ou ,soʇuıʇsıp sopɐʇlnsǝɹ sɐɔsnq ıS

________________________________

GOBIERNO DE LA RIOJA
AVISO LEGAL: La información contenida en este mensaje es confidencial y está destinada a ser leída sólo por la persona a la que va dirigida. Si Ud. no es el destinatario señalado le informamos que está prohibida, y puede ser ilegal, cualquier divulgación o reproducción de este mensaje.
Antes de imprimir este e-mail piense bien si es necesario hacerlo.

[[alternative HTML version deleted]]
Javier Marcuzzi
2018-11-13 22:04:52 UTC
Permalink
Estimada Belén Cillero Jiménez

El problema es simple, hay que escribirlo nuevamente.

Yo al realizar algo con if escribo el primero y pruebo, escribo el segundo
y pruebo, voy paso por paso, sobre todo si utilizo if, si lo realizo de
otra forma escribo todo junto sin drama, pero if crea esos casos que uno
por distracción plantea mal.

Mire lo siguiente y evalué la forma que cree más conveniente para su
trabajo, reescriba probando el primer caso y todos los restantes con una
constante, luego el primero y segundo, y así solucione el inconveniente de
la forma que usted cree adecuada.

https://www.datamentor.io/r-programming/if-else-statement/

Saludos
Javier Rubén Marcuzzi

El mar., 13 nov. 2018 a las 18:15, Belén Cillero Jiménez (<
Post by Belén Cillero Jiménez
Buenas noches
Escribo la siguiente sintaxis para crear la variable epa_web$DTANque va a
epa_web$DTAN<-' '
if ((epa_web$DTANT<1) && (epa_web$DTANT!=' ')){
epa_web$DTAN<-1
} else if ((epa_web$DTANT>=1) && (epa_web$DTANT<3))
{epa_web$DTAN<-2
} else if ((epa_web$DTANT>=3) && (epa_web$DTANT<6))
{epa_web$DTAN<-3
}else if ((epa_web$DTANT>=6) && (epa_web$DTANT<12))
{epa_web$DTAN<-4
}else if ((epa_web$DTANT>=12) && (epa_web$DTANT<18))
{epa_web$DTAN<-5
}else if ((epa_web$DTANT>=18) && (epa_web$DTANT<24))
{epa_web$DTAN<-6
}else if ((epa_web$DTANT>=24) && (epa_web$DTANT<48))
{epa_web$DTAN<-7
}else if (epa_web$DTANT>=48)
{epa_web$DTAN<-8}
y el resultado que obtengo es que la variable nueva solo toma el valor 1
¿Qué es lo que estoy haciendo mal?
Muchas gracias a todos.
Un saludo,
Belén Cillero Jiménez
Técnico de Estadística
Instituto de Estadística de La Rioja
oɯsıɯ ol ǝɹdɯǝıs sɐƃɐɥ ou ,soʇuıʇsıp sopɐʇlnsǝɹ sɐɔsnq ıS
________________________________
GOBIERNO DE LA RIOJA
AVISO LEGAL: La información contenida en este mensaje es confidencial y
está destinada a ser leída sólo por la persona a la que va dirigida. Si Ud.
no es el destinatario señalado le informamos que está prohibida, y puede
ser ilegal, cualquier divulgación o reproducción de este mensaje.
Antes de imprimir este e-mail piense bien si es necesario hacerlo.
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Bartolomé Marcos, José Antonio
2018-11-14 08:16:09 UTC
Permalink
Entiendo que epa_WEB es un data.frame. La función if solo actúa sobre un elemento, no sobre un vector (para ello tendrías que utilizar ifelse()).
Creo que puedes hacer la asignación más sencilla si recurrir a un if.

Si ya existe en el data.frame epa_WEB la variable DTAN entonces:

epa_web$DTAN[(epa_web$DTANT<1) && (epa_web$DTANT!=' ')] <- 1
epa_web$DTAN[(epa_web$DTANT>=1) && (epa_web$DTANT<3)] <- 2
....
y así con el resto.



-----Mensaje original-----
De: R-help-es [mailto:r-help-es-***@r-project.org] En nombre de Belén Cillero Jiménez
Enviado el: martes, 13 de noviembre de 2018 22:12
Para: r-help-***@r-project.org
Asunto: [R-es] función IF


Buenas noches
Escribo la siguiente sintaxis para crear la variable epa_web$DTANque va a tomar valores entre10 y 8:

epa_web$DTAN<-' '

if ((epa_web$DTANT<1) && (epa_web$DTANT!=' ')){
epa_web$DTAN<-1
} else if ((epa_web$DTANT>=1) && (epa_web$DTANT<3))
{epa_web$DTAN<-2
} else if ((epa_web$DTANT>=3) && (epa_web$DTANT<6))
{epa_web$DTAN<-3
}else if ((epa_web$DTANT>=6) && (epa_web$DTANT<12))
{epa_web$DTAN<-4
}else if ((epa_web$DTANT>=12) && (epa_web$DTANT<18))
{epa_web$DTAN<-5
}else if ((epa_web$DTANT>=18) && (epa_web$DTANT<24))
{epa_web$DTAN<-6
}else if ((epa_web$DTANT>=24) && (epa_web$DTANT<48))
{epa_web$DTAN<-7
}else if (epa_web$DTANT>=48)
{epa_web$DTAN<-8}

y el resultado que obtengo es que la variable nueva solo toma el valor 1 ¿Qué es lo que estoy haciendo mal?
Muchas gracias a todos.
Un saludo,


Belén Cillero Jiménez

Técnico de Estadística

Instituto de Estadística de La Rioja



***@larioja.org<mailto:***@larioja.org>

oɯsıɯ ol ǝɹdɯǝıs sɐƃɐɥ ou ,soʇuıʇsıp sopɐʇlnsǝɹ sɐɔsnq ıS

________________________________

GOBIERNO DE LA RIOJA
AVISO LEGAL: La información contenida en este mensaje es confidencial y está destinada a ser leída sólo por la persona a la que va dirigida. Si Ud. no es el destinatario señalado le informamos que está prohibida, y puede ser ilegal, cualquier divulgación o reproducción de este mensaje.
Antes de imprimir este e-mail piense bien si es necesario hacerlo.

[[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Loading...