He tratado de usar lo siguiente: a<- ifelse(BD$Divisi?n>=50 & BD$Divisi?n<59,"D", ifelse (BD$Divisi?n>=60 & BD$Divisi?n<=69,"G", ifelse (BD$Divisi?n>=70 & BD$Divisi?n<=79,"L", ifelse (BD$Divisi?n>=80 & BD$Divisi?n<=89,"M", ifelse (BD$Divisi?n>=90 & BD$Divisi?n<=99,"N","Z"))))) Pero me arroja puros NA como resultado. ________________________________ De: Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com> Enviado: viernes, 23 de marzo de 2018 11:04:16 Para: Dayana Mu?oz Cc: r-help-es en r-project.org Asunto: Re: [R-es] Ayuda con R-Studio condiciones Estimada Dayana Mu?oz Separemos el problema en dos, la primer parte es la condici?n, para esto puede utilizar la forma que le resulte m?s apropiada, la segunda parte es utilizar por ejemplo cbind al data.frame original, en otras palabras a los datos les pega el resultado de la condici?n en una nueva columna. Javier Rub?n Marcuzzi El 23 de marzo de 2018, 10:54, Dayana Mu?oz <dayanaa.mg en hotmail.com<mailto:dayanaa.mg en hotmail.com>> escribi?: Estimados, Junto con saludar, agradecer? si alguien me pueda ayudar con un problema que tengo: Tengo una base de datos llamada "BD", la cu?l posee 300 columnas y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos d?gitos. Lo que quiero hacer, pero no s? como es: Generar una nueva columna (adicional), llamada "SECCION" que me clasifique con letras los valores num?ricos que tengo en la columna "DIVISION": ID TAMA?O x DIVISION GRUPO CLASE Grande 2 Grande 3 Mediana 2 Grande 1 Grande 3 Grande 3 Grande 1 Grande 3 Grande 3 Grande 3 Por ejemplo: Quiero que me clasifique en la nueva columna llamada SECCION, todas las divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70 a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la letra N, de tal forma de conseguir esto: ID TAMA?O X DIVISION GRUPO CLASE SECCION Grande 2 M Grande 3 D Mediana 2 N Grande 1 G Grande 3 L Grande 3 L Grande 1 L Grande 3 L Grande 3 G Grande 3 L Agradecer? mucho si alguien me pueda orientar en como conseguir esta nueva columna Saludos! [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Crea una funcion y luego la aplicas. La función seria la que ya has creado, pero cambia BD$División por x. Algo así como: recodificar <- function (x){ ifelse(x>=50 & x<59,"D", ifelse (x>=60 & x<=69,"G", ifelse (x>=70 & x<=79,"L", ifelse (x>=80 & x<=89,"M", ifelse (x>=90 & x<=99,"N","Z"))))) } Y luego la aplicas. BD$Nueva_variable <- recodificar( BD$División). Eso deveria funcionar y no necesitas unir columnas. Saludos, ?????????????????????????? *Deutsches Zentrum für Luft- und Raumfahrt* e.V. (DLR) German Aerospace Center Xavier-Andoni Tibau Alberdi | Scientific Staff Institute of Data Science | Data Management and Analysis | Mälzerstraße 3 | 07745 Jena <xavier.tibau en dlr.de> 2018-03-23 15:12 GMT+01:00 Dayana Muñoz <dayanaa.mg en hotmail.com>:> He tratado de usar lo siguiente: > > a<- ifelse(BD$División>=50 & BD$División<59,"D", > ifelse (BD$División>=60 & BD$División<=69,"G", > ifelse (BD$División>=70 & > BD$División<=79,"L", > ifelse (BD$División>=80 & > BD$División<=89,"M", > ifelse (BD$División>=90 > & BD$División<=99,"N","Z"))))) > > > > Pero me arroja puros NA como resultado. > > > > > ________________________________ > De: Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com> > Enviado: viernes, 23 de marzo de 2018 11:04:16 > Para: Dayana Muñoz > Cc: r-help-es en r-project.org > Asunto: Re: [R-es] Ayuda con R-Studio condiciones > > Estimada Dayana Muñoz > > Separemos el problema en dos, la primer parte es la condición, para esto > puede utilizar la forma que le resulte más apropiada, la segunda parte es > utilizar por ejemplo cbind al data.frame original, en otras palabras a los > datos les pega el resultado de la condición en una nueva columna. > > Javier Rubén Marcuzzi > > El 23 de marzo de 2018, 10:54, Dayana Muñoz <dayanaa.mg en hotmail.com< > mailto:dayanaa.mg en hotmail.com>> escribió: > Estimados, > > > Junto con saludar, agradeceré si alguien me pueda ayudar con un problema > que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas > y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos > dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna > (adicional), llamada "SECCION" que me clasifique con letras los valores > numéricos que tengo en la columna "DIVISION": > > > ID TAMAÑO x > DIVISION GRUPO CLASE > > > > > > Grande > > 2 > > > > > > > > > > > > Grande > > 3 > > > > > > > > > > > > Mediana > > 2 > > > > > > > > > > > > Grande > > 1 > > > > > > > > > > > > Grande > > 3 > > > > > > > > > > > > Grande > > 3 > > > > > > > > > > > > Grande > > 1 > > > > > > > > > > > > Grande > > 3 > > > > > > > > > > > > Grande > > 3 > > > > > > > > > > > > Grande > > 3 > > > > > > > > > Por ejemplo: > > > Quiero que me clasifique en la nueva columna llamada SECCION, todas las > divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70 > a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la > letra N, de tal forma de conseguir esto: > > > > ID TAMAÑO X DIVISION GRUPO CLASE SECCION > > > Grande > > 2 > > > > > > > M > > > Grande > > 3 > > > > > > > D > > > Mediana > > 2 > > > > > > > N > > > Grande > > 1 > > > > > > > G > > > Grande > > 3 > > > > > > > L > > > Grande > > 3 > > > > > > > L > > > Grande > > 1 > > > > > > > L > > > Grande > > 3 > > > > > > > L > > > Grande > > 3 > > > > > > > G > > > Grande > > 3 > > > > > > > L > > > Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva > columna > > Saludos! > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org<mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[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]]
Estimada Dayana Muñoz Leí muy rápido para dar una respuesta acertada y completa, pero en el primer if hay un problema, no use tantos ifelse, y el 59 no tiene donde ir, porque busca los menores y luego los iguales o mayores a 60. Javier Rubén Marcuzzi El 23 de marzo de 2018, 11:12, Dayana Muñoz <dayanaa.mg en hotmail.com> escribió:> He tratado de usar lo siguiente: > > a<- ifelse(BD$División>=50 & BD$División<59,"D", > ifelse (BD$División>=60 & BD$División<=69,"G", > ifelse (BD$División>=70 & > BD$División<=79,"L", > ifelse (BD$División>=80 & > BD$División<=89,"M", > ifelse (BD$División>=90 > & BD$División<=99,"N","Z"))))) > > > > Pero me arroja puros NA como resultado. > > > > > > ------------------------------ > *De:* Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com> > *Enviado:* viernes, 23 de marzo de 2018 11:04:16 > *Para:* Dayana Muñoz > *Cc:* r-help-es en r-project.org > *Asunto:* Re: [R-es] Ayuda con R-Studio condiciones > > Estimada Dayana Muñoz > > Separemos el problema en dos, la primer parte es la condición, para esto > puede utilizar la forma que le resulte más apropiada, la segunda parte es > utilizar por ejemplo cbind al data.frame original, en otras palabras a los > datos les pega el resultado de la condición en una nueva columna. > > Javier Rubén Marcuzzi > > El 23 de marzo de 2018, 10:54, Dayana Muñoz <dayanaa.mg en hotmail.com> > escribió: > > Estimados, > > > Junto con saludar, agradeceré si alguien me pueda ayudar con un problema > que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas > y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos > dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna > (adicional), llamada "SECCION" que me clasifique con letras los valores > numéricos que tengo en la columna "DIVISION": > > > ID TAMAÑO x > DIVISION GRUPO CLASE > > 338576 > > > > Grande > > 2 > > 82 > > 821 > > 8219 > > 338421 > > > > Grande > > 3 > > 58 > > 581 > > 5813 > > 352821 > > > > Mediana > > 2 > > 96 > > 960 > > 9603 > > 340936 > > > > Grande > > 1 > > 68 > > 681 > > 6810 > > 340937 > > > > Grande > > 3 > > 77 > > 773 > > 7730 > > 340938 > > > > Grande > > 3 > > 71 > > 712 > > 7120 > > 353517 > > > > Grande > > 1 > > 73 > > 731 > > 7310 > > 340940 > > > > Grande > > 3 > > 71 > > 711 > > 7110 > > 340941 > > > > Grande > > 3 > > 69 > > 691 > > 6910 > > 340942 > > > > Grande > > 3 > > 73 > > 731 > > 7310 > > > Por ejemplo: > > > Quiero que me clasifique en la nueva columna llamada SECCION, todas las > divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70 > a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la > letra N, de tal forma de conseguir esto: > > > > ID TAMAÑO X DIVISION GRUPO CLASE SECCION > 338576 > > Grande > > 2 > > 82 > > 821 > > 8219 > M > 338421 > > Grande > > 3 > > 58 > > 581 > > 5813 > D > 352821 > > Mediana > > 2 > > 96 > > 960 > > 9603 > N > 340936 > > Grande > > 1 > > 68 > > 681 > > 6810 > G > 340937 > > Grande > > 3 > > 77 > > 773 > > 7730 > L > 340938 > > Grande > > 3 > > 71 > > 712 > > 7120 > L > 353517 > > Grande > > 1 > > 73 > > 731 > > 7310 > L > 340940 > > Grande > > 3 > > 71 > > 711 > > 7110 > L > 340941 > > Grande > > 3 > > 69 > > 691 > > 6910 > G > 340942 > > Grande > > 3 > > 73 > > 731 > > 7310 > L > > > Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva > columna > > 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]]
Hola, Repasa muy bien dos cosas: - El nombre de tu variable. - en tu primer correo la variable se llama "DIVISION" todo en mayúsculas. - Y en lo que has hecho con "ifelse()" pones "División". - Para "R" los dos nombres son diferentes. - Y cuidado con los acentos...si es posible no los pongas. - Si todo lo anterior era consistente (los nombres estaban bien, eran iguales en los dos casos). - Prueba a ver la clases de la variable. - Haz "class(BD$nombre_variable)" - Puede que tu variable sea de clase "character" y no puedas entonces aplicar una condición (ifelse) pensando que es un número... Saludos, Carlos Ortega www.qualityexcellence.es El 23 de marzo de 2018, 15:37, Javier Marcuzzi < javier.ruben.marcuzzi en gmail.com> escribió:> Estimada Dayana Muñoz > > Leí muy rápido para dar una respuesta acertada y completa, pero en el > primer if hay un problema, no use tantos ifelse, y el 59 no tiene donde ir, > porque busca los menores y luego los iguales o mayores a 60. > > Javier Rubén Marcuzzi > > El 23 de marzo de 2018, 11:12, Dayana Muñoz <dayanaa.mg en hotmail.com> > escribió: > > > He tratado de usar lo siguiente: > > > > a<- ifelse(BD$División>=50 & BD$División<59,"D", > > ifelse (BD$División>=60 & BD$División<=69,"G", > > ifelse (BD$División>=70 & > > BD$División<=79,"L", > > ifelse (BD$División>=80 & > > BD$División<=89,"M", > > ifelse (BD$División>=90 > > & BD$División<=99,"N","Z"))))) > > > > > > > > Pero me arroja puros NA como resultado. > > > > > > > > > > > > ------------------------------ > > *De:* Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com> > > *Enviado:* viernes, 23 de marzo de 2018 11:04:16 > > *Para:* Dayana Muñoz > > *Cc:* r-help-es en r-project.org > > *Asunto:* Re: [R-es] Ayuda con R-Studio condiciones > > > > Estimada Dayana Muñoz > > > > Separemos el problema en dos, la primer parte es la condición, para esto > > puede utilizar la forma que le resulte más apropiada, la segunda parte es > > utilizar por ejemplo cbind al data.frame original, en otras palabras a > los > > datos les pega el resultado de la condición en una nueva columna. > > > > Javier Rubén Marcuzzi > > > > El 23 de marzo de 2018, 10:54, Dayana Muñoz <dayanaa.mg en hotmail.com> > > escribió: > > > > Estimados, > > > > > > Junto con saludar, agradeceré si alguien me pueda ayudar con un problema > > que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 > columnas > > y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos > > dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva > columna > > (adicional), llamada "SECCION" que me clasifique con letras los valores > > numéricos que tengo en la columna "DIVISION": > > > > > > ID TAMAÑO x > > DIVISION GRUPO CLASE > > > > 338576 > > > > > > > > Grande > > > > 2 > > > > 82 > > > > 821 > > > > 8219 > > > > 338421 > > > > > > > > Grande > > > > 3 > > > > 58 > > > > 581 > > > > 5813 > > > > 352821 > > > > > > > > Mediana > > > > 2 > > > > 96 > > > > 960 > > > > 9603 > > > > 340936 > > > > > > > > Grande > > > > 1 > > > > 68 > > > > 681 > > > > 6810 > > > > 340937 > > > > > > > > Grande > > > > 3 > > > > 77 > > > > 773 > > > > 7730 > > > > 340938 > > > > > > > > Grande > > > > 3 > > > > 71 > > > > 712 > > > > 7120 > > > > 353517 > > > > > > > > Grande > > > > 1 > > > > 73 > > > > 731 > > > > 7310 > > > > 340940 > > > > > > > > Grande > > > > 3 > > > > 71 > > > > 711 > > > > 7110 > > > > 340941 > > > > > > > > Grande > > > > 3 > > > > 69 > > > > 691 > > > > 6910 > > > > 340942 > > > > > > > > Grande > > > > 3 > > > > 73 > > > > 731 > > > > 7310 > > > > > > Por ejemplo: > > > > > > Quiero que me clasifique en la nueva columna llamada SECCION, todas las > > divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de > 70 > > a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la > > letra N, de tal forma de conseguir esto: > > > > > > > > ID TAMAÑO X DIVISION GRUPO CLASE SECCION > > 338576 > > > > Grande > > > > 2 > > > > 82 > > > > 821 > > > > 8219 > > M > > 338421 > > > > Grande > > > > 3 > > > > 58 > > > > 581 > > > > 5813 > > D > > 352821 > > > > Mediana > > > > 2 > > > > 96 > > > > 960 > > > > 9603 > > N > > 340936 > > > > Grande > > > > 1 > > > > 68 > > > > 681 > > > > 6810 > > G > > 340937 > > > > Grande > > > > 3 > > > > 77 > > > > 773 > > > > 7730 > > L > > 340938 > > > > Grande > > > > 3 > > > > 71 > > > > 712 > > > > 7120 > > L > > 353517 > > > > Grande > > > > 1 > > > > 73 > > > > 731 > > > > 7310 > > L > > 340940 > > > > Grande > > > > 3 > > > > 71 > > > > 711 > > > > 7110 > > L > > 340941 > > > > Grande > > > > 3 > > > > 69 > > > > 691 > > > > 6910 > > G > > 340942 > > > > Grande > > > > 3 > > > > 73 > > > > 731 > > > > 7310 > > L > > > > > > Agradeceré mucho si alguien me pueda orientar en como conseguir esta > nueva > > columna > > > > 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]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]