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 (<juamad...@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 (<c...@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 (<juamad...@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@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >> >> >> -- >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es