Muchas gracias a ambos! El mié., 6 de octubre de 2021 15:52, Carlos Ortega <cof en qualityexcellence.es> escribió:> Hola, > > Sí, otra alternativa para dejarlo como has comentado y leyendo > directamente de Excel... > > #--------------- > > library(dplyr) > library(tidyr) > library(readr) > library(readxl) > > datin <- read_excel("Ejes formativos.xlsx") > > datin_long <- datin %>% > pivot_longer( > cols = starts_with("eje"), > values_to = "ejes" > ) %>% > rename( area = area_pertenencia) %>% > select(-name) %>% > relocate(ejes, .before = area) > > #--------------- > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El mié, 6 oct 2021 a las 20:17, juan manuel dias (<juamadias en gmail.com>) > escribió: > >> Hola, cómo andan! >> >> Tengo una base de una encuesta sobre formación profesional realizada a un >> conjunto de empleados de una institución. >> >> Una de las preguntas es de respuesta múltiple, eje_tem_1,eje_tem_2, >> eje_tem_3....hasta eje_tem_17. >> >> Necesitaría que las respuestas de cada persona que están en esas >> distintas columnas (eje_tem a eje_tem_17) queden en una misma columna, y >> asimismo que se repita el "ID" y el "area_pertenencia" tantas veces como >> opciones haya marcado cada caso/persona/"ID". >> >> Estuve intentando con pivot_longer pero sin resultados! >> >> Actualmente está así >> >> *id | eje_tem_1 | eje_tem_2 | eje_tem_3 | eje_tem_4 area* >> 1 rh sist comun filos >> admin >> 2 rh arte >> medic >> 3 sist matem empre comun >> asist >> 4 arte matem empre sist >> asist >> >> Y necesitaría que quede así: >> >> *id | ejes | area* >> 1 rh admin >> 1 sist admin >> 1 comun admin >> 1 filos admin >> 1 admin admin >> 2 rh medic >> 2 arte medic >> .. .... ..... >> >> Adjunto un recorte de la base! >> >> Muchas gracias! >> >> Saludos, Juan. >> _______________________________________________ >> 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]]
Marcelino de la Cruz Rot
2021-Oct-07 06:29 UTC
[R-es] Respuestas múltiples en una sola columna
Hola: Otra posibilidad sería la que aparece a continuación. Saludos, Marcelino library(readxl) library(reshape2) datin <- read_excel("Ejes formativos.xlsx") datin_long <- melt(datin, id.vars=c("ID", "area_pertenencia"))[,c("ID", "value", "area_pertenencia")] names(datin_long) <- c("ID", "ejes", "area") datin_long <- datin_long[!is.na(datin_long$ejes),] El 07/10/2021 a las 4:40, juan manuel dias escribió:> Muchas gracias a ambos! > > El mié., 6 de octubre de 2021 15:52, Carlos Ortega <cof en qualityexcellence.es> > escribió: > >> Hola, >> >> Sí, otra alternativa para dejarlo como has comentado y leyendo >> directamente de Excel... >> >> #--------------- >> >> library(dplyr) >> library(tidyr) >> library(readr) >> library(readxl) >> >> datin <- read_excel("Ejes formativos.xlsx") >> >> datin_long <- datin %>% >> pivot_longer( >> cols = starts_with("eje"), >> values_to = "ejes" >> ) %>% >> rename( area = area_pertenencia) %>% >> select(-name) %>% >> relocate(ejes, .before = area) >> >> #--------------- >> >> >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >> El mié, 6 oct 2021 a las 20:17, juan manuel dias (<juamadias en gmail.com>) >> escribió: >> >>> Hola, cómo andan! >>> >>> Tengo una base de una encuesta sobre formación profesional realizada a un >>> conjunto de empleados de una institución. >>> >>> Una de las preguntas es de respuesta múltiple, eje_tem_1,eje_tem_2, >>> eje_tem_3....hasta eje_tem_17. >>> >>> Necesitaría que las respuestas de cada persona que están en esas >>> distintas columnas (eje_tem a eje_tem_17) queden en una misma columna, y >>> asimismo que se repita el "ID" y el "area_pertenencia" tantas veces como >>> opciones haya marcado cada caso/persona/"ID". >>> >>> Estuve intentando con pivot_longer pero sin resultados! >>> >>> Actualmente está así >>> >>> *id | eje_tem_1 | eje_tem_2 | eje_tem_3 | eje_tem_4 area* >>> 1 rh sist comun filos >>> admin >>> 2 rh arte >>> medic >>> 3 sist matem empre comun >>> asist >>> 4 arte matem empre sist >>> asist >>> >>> Y necesitaría que quede así: >>> >>> *id | ejes | area* >>> 1 rh admin >>> 1 sist admin >>> 1 comun admin >>> 1 filos admin >>> 1 admin admin >>> 2 rh medic >>> 2 arte medic >>> .. .... ..... >>> >>> Adjunto un recorte de la base! >>> >>> Muchas gracias! >>> >>> Saludos, Juan. >>> _______________________________________________ >>> 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]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > .-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España