hola muchas gracias! me hice mucho lío en cómo lo pene´....finalmente usé este código que me srvió para resolver lo que estaba buscando! gracias!
misdatos<-misdatos %>% mutate(excel = case_when(grepl("Excel", r5) ~ 1, TRUE ~ 0)) %>% mutate(oracle = case_when(grepl("Oracle", r5) ~ 1, TRUE ~ 0)) %>% mutate(sheets = case_when(grepl("Sheets", r5) ~ 1, TRUE ~ 0)) %>% mutate(sql_server_microsoft = case_when(grepl("SQL Server (Microsoft)", r5) ~ 1, TRUE ~ 0)) %>% mutate(mongo_db = case_when(grepl("Mongo db", r5) ~ 1, TRUE ~ 0)) %>% mutate(access = case_when(grepl("Access", r5) ~ 1, TRUE ~ 0)) %>% mutate(mysql = case_when(grepl("MySQL", r5) ~ 1, TRUE ~ 0)) %>% mutate(postgre_sql = case_when(grepl("Postgre-SQL", r5) ~ 1, TRUE ~ 0)) El mar, 21 mar 2023 a las 5:06, Proyecto R-UCA (<r-...@uca.es>) escribió: > Buenas, > > las imágenes no se ven por lo que no puedo reproducir tu ejemplo, pero tal > vez lo siguiente te valga: > > library('stringr') > > d <- data.frame(respuestas = c('manzana, naranja', 'manzana, melocotón', > 'naranja, melocotón')) > > d > respuestas > 1 manzana, naranja > 2 manzana, melocotón > 3 naranja, melocotón > > d$manzana <- sapply(d$respuestas, FUN = str_detect, 'manzana', simplify > = TRUE) > > d$naranja <- sapply(d$respuestas, FUN = str_detect, 'naranja', simplify > = TRUE) > > d > respuestas manzana naranja > 1 manzana, naranja TRUE TRUE > 2 manzana, melocotón TRUE FALSE > 3 naranja, melocotón FALSE TRUE > > Un saludo, Manuel. > > El lun, 20-03-2023 a las 17:09 -0300, juan manuel dias escribió: > > Hola, cómo andan! > > > > Tengo el siguiente problema. > > > > Tengo una pregunta cuya respuesta es múltiple, pero en en la base están > > todas las respuestas en una misma variable y cada respuesta está > > separada por ",". > > > > Así está > > > > [image: image.png] > > > > Hago esto para poder separar en columnas las distintas respuestas: > > > > > > > > > > > > *mult_bas_dat<-mult_bas_dat %>% separate_rows(bases, sep = ",") %>% > > mutate(basedatos = str_squish(bases)) %>% select(basedatos)* > > ## múltiple a columnas ## > > > > > > > > > > > > *mult_bas_dat_final<-mult_bas_dat %>% separate_rows(basedatos, sep = > ",") > > %>% mutate(basedatos = str_squish(basedatos), # Para quitar los espacios > > en blanco indeseados id = 1) %>% spread(key = basedatos, value = > > id)* > > > > ## na's a 0 ## > > > > *mult_bas_dat_final[is.na > > < > https://urldefense.com/v3/__http://is.na/__;!!D9dNQwwGXtA!TsC3j72nXLD-S9sKeaG-5pjChVYrV50lLQSZr1EC7xry6qlcSxhH2t-I-jcHTbshUTYCwdUvub1KiPE > > $ >(mult_bas_dat_final)] <- 0* > > # limpio los nombres # > > > > *mult_bas_dat_final <- mult_bas_dat_final %>% clean_names()* > > > > ## cambio nombres a cada opción de bases ## > > *mult_bas_dat_final=rename(mult_bas_dat_final, > > > c(excel="p5.1",sheets="p5.2",sql_server_microsoft="p5.3",mongo_db="p5.4",access="p5.5",oracle="p5.6",mysql="p5.7",postgre_sql="p5.8"))* > > > > Me queda así > > > > [image: image.png] > > > > El tema es que cuándo quiero correr el siguiente código: > > > > > > > > > > > > > > > > *mutate(puntaje_p4_p5=case_when(p4_bases_prop==1 & p5.1==1 ~ 0.4, > > p4_bases_prop==1 & p5.2==1 ~ 0.5, > > (p4_bases_prop==1) & ((p5.1==1) & (p5.3==1) | (p5.4==1) | > > (p5.6=1) | (p5.7==1) | (p5.8==1)) ~ 1, > > (p4_bases_prop==1) & ((p5.2==1) & (p5.3==1) | (p5.4==1) | (p5.6=1) | > > (p5.7==1) | (p5.8==1)) ~ 1, > > (p4_bases_prop==1) & ((p5.5==1) & (p5.3==1) | (p5.4==1) | (p5.6=1) | > > (p5.7==1) | (p5.8==1)) ~ 1, > > (p4_bases_prop==1) & (p5.3==1 | p5.4==1 | p5.6==1 | p5.7==1 | p5.8==1) ~ > > 1, p4_bases*_prop==1 & p5.5==1 ~ 0.6, > > > > Sale el siguiente error porque no encuentra una de las variables que > están > > en los condicionales, en este caso p5.3, pero podría ser cualquier otra. > > > > [image: image.png] > > > > Necesito para todos los casos generar tantas columnas como posibilidades > de > > respuesta tengo en esa pregunta, más allá de las respuestas generadas. > > > > Las posibles respuestas son: excel, sheets, sql_server_microsoft, > > mongo_db, access, oracle, mysql, postgre_sql > > > > Por ejemplo, este caso que respondió así: > > > > *"excel, sheets, oracle, postgre_sql" * > > > > Necesitaría que quede así > > > > [image: image.png] > > > > Y así con todos los casos, por ejemplo, si solo respondió "*excel", > > *necesitaría > > que quede así: > > > > [image: image.png] > > > > Estoy intentando hacerlo pero sin resultados! > > > > Muchas gracias! Juan. > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > > https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!TsC3j72nXLD-S9sKeaG-5pjChVYrV50lLQSZr1EC7xry6qlcSxhH2t-I-jcHTbshUTYCwdUvoDzCjq4$ > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es