Hola Estimados/as,
Tengo la siguiente tarea que realizar.
Tengo una base y una de las variables (problemas_salud_paciente) es de
respuesta múltiple (acepta más de una opción de respuesta por caso/fila)
pero tiene cargadas todas las respuestas en la misma columna, y
dichas opciones están separadas por una coma (",").
1- Necesito separar cada opción de respuesta en una columna distinta.
2- Generar tantas columnas como opciones de respuesta tenga.
3- Luego, a cada columna (opción de respuesta) debería asignarle valor 1
según si la fila/caso haya respondido por esa opción.
Así está la variable en la base:
id problemas_salud_paciente
1 Demencia
2 Demencia
3 Enfermedad Pulmonar, Demencia, Afasia primaria progresiva
diagnosticada 2010
4 Enfermedad Cardíaca
Y así necesitaría que quede:
id demencia | enferm_pulmonar | afasia_prima_progr | enfermedad_cardiaca
1 1
2 1
3 1 1 1
4
1
Dejo un csv con una muestra de casos de esa variable.
Muchas gracias. Saludos, Juan.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20210305/8178851a/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: ejemplo_salud.csv
Type: application/vnd.ms-excel
Size: 1376 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20210305/8178851a/attachment.xlb>
Juan Carlos Lopez Mesa
2021-Mar-06 01:42 UTC
[R-es] Separar respuestas en distintas columnas.
Hola,
Prueba con este código de ejemplo. Saludos
library(tidyverse)
data <- data.frame(paciente = LETTERS[1:5],
variable = c("Demencia, Enfermedad Pulmonar",
"Cáncer",
"Enfermedad Cardíaca, Enfermedad
Pulmonar",
"Enfermedad Pulmonar, Cáncer",
"Enfermedad Pulmonar, Demencia, Afasia
primaria progresiva diagnosticada 2010"))
data %>%
separate_rows(variable, sep = ",") %>%
mutate(variable = str_squish(variable), # Para quitar los espacios en
blanco indeseados
id = 1) %>%
spread(key = variable, value = id)
El vie, 5 mar 2021 a las 13:55, juan manuel dias (<juamadias en
gmail.com>)
escribió:
> Hola Estimados/as,
>
> Tengo la siguiente tarea que realizar.
>
> Tengo una base y una de las variables (problemas_salud_paciente) es de
> respuesta múltiple (acepta más de una opción de respuesta por caso/fila)
> pero tiene cargadas todas las respuestas en la misma columna, y
> dichas opciones están separadas por una coma (",").
>
> 1- Necesito separar cada opción de respuesta en una columna distinta.
>
> 2- Generar tantas columnas como opciones de respuesta tenga.
>
> 3- Luego, a cada columna (opción de respuesta) debería asignarle valor 1
> según si la fila/caso haya respondido por esa opción.
>
> Así está la variable en la base:
>
> id problemas_salud_paciente
> 1 Demencia
> 2 Demencia
> 3 Enfermedad Pulmonar, Demencia, Afasia primaria progresiva
> diagnosticada 2010
> 4 Enfermedad Cardíaca
>
> Y así necesitaría que quede:
>
> id demencia | enferm_pulmonar | afasia_prima_progr | enfermedad_cardiaca
> 1 1
> 2 1
> 3 1 1 1
>
> 4
> 1
>
> Dejo un csv con una muestra de casos de esa variable.
>
> 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
>
--
*Aviso legal:* El contenido de este mensaje y los archivos adjuntos son
confidenciales y de uso exclusivo de la Universidad Nacional de Colombia.
Se encuentran dirigidos sólo para el uso del destinatario al cual van
enviados. La reproducción, lectura y/o copia se encuentran prohibidas a
cualquier persona diferente a este y puede ser ilegal. Si usted lo ha
recibido por error, infórmenos y elimínelo de su correo. Los Datos
Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra
Política de Datos Personales que podrá consultar en la página web
www.unal.edu.co <http://www.unal.edu.co/>.* *Las opiniones, informaciones,
conclusiones y cualquier otro tipo de dato contenido en este correo
electrónico, no relacionados con la actividad de la Universidad Nacional de
Colombia, se entenderá como personales y de ninguna manera son avaladas por
la Universidad.
[[alternative HTML version deleted]]
Hola: Lo que quieres es crear variables dummy, aquí puedes ver el procedimiento muy claramente: https://statisticsglobe.com/convert-factor-to-dummy-variables-in-r Seguimos El 5/3/21 a las 19:54, juan manuel dias escribió:> Hola Estimados/as, > > Tengo la siguiente tarea que realizar. > > Tengo una base y una de las variables (problemas_salud_paciente) es de > respuesta múltiple (acepta más de una opción de respuesta por > caso/fila) pero tiene cargadas todas las respuestas en la misma > columna, y dichas opciones están separadas por una coma (","). > > 1- Necesito separar cada opción de respuesta en una columna distinta. > > 2- Generar tantas columnas como opciones de respuesta tenga. > > 3- Luego, a cada columna (opción de respuesta) debería asignarle valor > 1 según si la fila/caso haya respondido por esa opción. > > Así está la variable en la base: > > id problemas_salud_paciente > 1 Demencia > 2 Demencia > 3 Enfermedad Pulmonar, Demencia, Afasia primaria progresiva > diagnosticada 2010 > 4 Enfermedad Cardíaca > > > Y así necesitaría que quede: > > id demencia | enferm_pulmonar | afasia_prima_progr | enfermedad_cardiaca > 1 1 > 2 1 > 3 1 1 1 > 4 1 > > Dejo un csv con una muestra de casos de esa variable. > > 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-- ____________________________________________________________ José Antonio Palazón Ferrando Profesor Titular. Departamento de Ecología e Hidrología. Facultad de Biología. Universidad de Murcia. Campus Universitario de Espinardo 30100 MURCIA-SPAIN Telf: +34 868 88 49 80 Fax : +34 868 88 39 63 Email: palazon en um.es [[alternative HTML version deleted]]