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 en r-project.org
>
https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!TsC3j72nXLD-S9sKeaG-5pjChVYrV50lLQSZr1EC7xry6qlcSxhH2t-I-jcHTbshUTYCwdUvoDzCjq4$
>