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]]