Re: [R-es] preguntas múltiples y creación de variables

2023-03-21 Por tema juan manuel dias
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 () 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, naranjaTRUETRUE
> 2 manzana, melocotónTRUE   FALSE
> 3 naranja, melocotón   FALSETRUE
>
> 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
> >
> 

Re: [R-es] preguntas múltiples y creación de variables

2023-03-21 Por tema Proyecto R-UCA
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, naranjaTRUETRUE
2 manzana, melocotónTRUE   FALSE
3 naranja, melocotón   FALSETRUE

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
>  $ >(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


Re: [R-es] preguntas múltiples y creación de variables

2023-03-20 Por tema Javier Marcuzzi
Estimado Juan Manuel Dias

Yo siempre prefiero realizar la consulta adecuada a al base de datos. Es más 
simple.

Yo utilizaría un bucle, por ejemplo for, entonces por cada elemento que está en 
una columna del data Frame (me refiero a excel, sheers, Oracle, postre) para el 
primer caso, creo una fila en otro data Frame donde tiene id_caso y la palabra 
correspondiente (una sola), en este caso serían 5 líneas en el nuevo data.frame.

Pero, es mi idea, posiblemente hay formas más simples utilizando algún paquete.

Resumiendo, creo un nuevo data.frame a partid de un bucle en el primero. Mil 
formas distintas de hacerlo.

Javier Rubén Marcuzzi


> El 20 mar. 2023, a las 12:53, 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á
> 
> 
>
> 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 (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í
> 
> 
> 
> 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.
> 
> 
> 
> 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í
> 
> 
> 
> Y así con todos los casos, por ejemplo, si solo respondió "excel", 
> necesitaría que quede así:
> 
> 
> 
> Estoy intentando hacerlo pero sin resultados!
> 
> Muchas gracias! Juan. 
> 
> 
> ___
> 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