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

juan manuel dias ju@m@d|@@ @end|ng |rom gm@||@com
Vie Mar 12 17:06:47 CET 2021


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/59f311df/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/59f311df/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/59f311df/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/59f311df/attachment-0005.png>


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