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