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 bcillero en larioja.org<mailto:bcillero en 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]]
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 (< bcillero en larioja.org>) escribió:> > 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 > > > > bcillero en larioja.org<mailto:bcillero en 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-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
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-bounces en r-project.org] En nombre de Belén Cillero Jiménez Enviado el: martes, 13 de noviembre de 2018 22:12 Para: r-help-es en 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 bcillero en larioja.org<mailto:bcillero en 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-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es