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