[R-es] Agrupar dummy's en otra variable.

juan manuel dias ju@m@d|@@ @end|ng |rom gm@||@com
Vie Mar 12 20:27:07 CET 2021


Muchas gracias, Carlos!
El código que pasaste resuelve lo que tenía que hacer!
Saludos, Juan.

El vie, 12 mar 2021 a las 13:06, juan manuel dias (<juamadias using gmail.com>)
escribió:

> Muchas gracias por las respuestas! Voy a probar lo que pasó Carlos y luego
> les cuento.
> Respecto a lo que plantea Rubén, entiendo lo de cáncer y neoplasia...pero
> para este estudio puntual ese problema de nomenclatura no sería un problema
> por el momento, las agrupaciones son criterios establecidos por una parte
> del equipo de investigación (entiendo que ni siquiera están usando CIE10).
> Desde el lugar que a mí me toca soy consciente que R no soluciona
> problemas de nomenclatura médica. Muchas gracias de todas formas!
> Saludos, Juan.
>
>
> El vie, 12 mar 2021 a las 7:48, Carlos Ortega (<cof using qualityexcellence.es>)
> escribió:
>
>> Hola,
>>
>> Esta podría ser una forma...
>>
>> #----------------------------------
>> library(dplyr)
>> library(tidyr)
>> library(data.table)
>>
>> datin <- fread('base_enfermedades_dummy.csv')
>>
>> #Demencia, Cáncer, Enfermedad Cardíaca, Enfermedad pulmonar y Diabetes
>>
>> to_keep <- c('paciente', 'Demencia', 'Cáncer', 'Enfermedad Cardíaca',
>>              'Enfermedad Pulmonar' , 'Diabetes')
>> to_rest <- setdiff(names(datin), to_keep)
>>
>> datin_rel <- datin %>% relocate(all_of(to_keep), .before =
>> all_of(to_rest))
>> datinnew <- datin_rel
>> datrest <- datin_rel[, (length(to_keep)+1):ncol(datin_rel)]
>>
>> # Conseguir columna "Otros"
>> datinnew$sum_keep <- rowSums(datin_rel[, 2:length(to_keep)])
>> datinnew$sum_rest <- rowSums(datin_rel[,
>> (length(to_keep)+1):ncol(datin_rel)])
>> datinnew$Otros <- ifelse(datinnew$sum_rest > 0, 1, 0)
>>
>> #--- Conseguir columna "Enfermedades_otras"
>> datinnew$Enfermedades_otras <- apply( datrest, 1,
>>                                       function(u) paste( names(which(u >
>> 0)), collapse = "," ) )
>>
>> #----------------------------------
>>
>> Gracias,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El jue, 11 mar 2021 a las 20:03, juan manuel dias (<juamadias using gmail.com>)
>> escribió:
>>
>>> Hola Estimados/as,
>>>
>>>
>>>
>>> Hace unos días consulté cómo generar variables dummy cuándo las opciones
>>> de respuesta están cargadas en una misma columna/variable y separadas por
>>> una coma “,”.
>>>
>>>
>>>
>>> Tenía esto:
>>>
>>> [image: image.png]
>>>
>>>
>>>
>>> Y debía generar como primer paso esto:
>>>
>>>
>>>
>>> ab<-base %>%
>>>
>>>   separate_rows(enfermedad, sep = ",") %>%
>>>
>>>   mutate(enfermedad = str_squish(enfermedad))
>>>
>>>
>>>
>>> [image: image.png]
>>>
>>>
>>> Y finalmente obtener como resultado las dummy:
>>>
>>>
>>>
>>> ab<-base %>%
>>>
>>>   separate_rows(enfermedad, sep = ",") %>%
>>>
>>>   mutate(enfermedad = str_squish(enfermedad), # Para quitar los espacios
>>> en blanco indeseados
>>>
>>>          id = 1) %>%
>>>
>>>   spread(key = enfermedad, value = id)
>>>
>>>
>>>
>>> ab[is.na(ab)] <- 0
>>>
>>>
>>> write.csv(ab,file='base_enfermedades_dummy.csv')
>>>
>>>
>>> [image: image.png]
>>>
>>>
>>>
>>>
>>> Actualmente estoy necesitando lo siguiente: conservar las variables
>>> *Demencia*, *Cáncer*, *Enfermedad Cardíaca*, *Enfermedad pulmonar* y
>>> *Diabetes* y al resto de las variables/enfermedades agruparlas en una
>>> nueva variable “otros”, que sea 1 ó 0 si el caso/paciente tiene 1 en
>>> cualquiera de las enfermedades que no son las que menciono arriba.
>>>
>>>
>>> Asimismo, necesito generar una nueva variable "*Enfermedades_otras*"
>>> donde figuren cuáles son las enfermedades que mencionó el paciente en
>>> otros, y que estén separadas por una coma.
>>>
>>>
>>>
>>> Adjunto la base en csv (*base_enfermedades_dummy)  *y en el excel (
>>> *Ejemplo_agrupar_en_otros*) dejo un ejemplo de lo que intento hacer.
>>>
>>>
>>> Muchas gracias! Juan.
>>>
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20210312/e9861457/attachment-0001.html>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 22240 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20210312/e9861457/attachment-0003.png>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 26712 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20210312/e9861457/attachment-0004.png>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 23144 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20210312/e9861457/attachment-0005.png>


Más información sobre la lista de distribución R-help-es