[R-es] Consulta filtro múltiple.

juan manuel dias ju@m@d|@@ @end|ng |rom gm@||@com
Jue Jul 1 17:36:49 CEST 2021


Muchas gracias! Esta interesante esta propuesta! Voy a probarla!

El jue., 1 de jul. de 2021 2:53 a.m., Víctor Granda García <
victorgrandagarcia using gmail.com> escribió:

> Otra opción es combinar case_when y filter con dplyr. Con case_when creas
> una variable dummy y luego filtras por esta:
>
> data %>%
>   mutate(
>     dummy = case_when(
>       Monodroga == aciclovir & unidades >= 20 ~ TRUE,
>       Monodroga == paracetamol & unidades >= 10 ~ TRUE,
>       Monodroga == rosuvastina & unidades >= 30 ~ TRUE,
>       TRUE ~ FALSE
>       )
>     ) %>%
>   filter(isTRUE(dummy))
>
>
> *Víctor Granda García*
> Data Scientist
> Ecosystem Modelling Facility - CREAF
>
>
> Tel. +34 93 581 33 53
> CREAF. Campus UAB. Edifici C. 08193 Bellaterra (Barcelona)
>
> Antes de imprimir este mensaje electrónico piense en el medio ambiente.
>
>
>
> On Thu, 1 Jul 2021 at 06:53, juan manuel dias <juamadias using gmail.com> wrote:
>
>> Muchas gracias! Lo veo una buena opción, mañana voy a probar con algunas
>> monodrogas para ver que funcione y en tal caso lo escalo a toda la base.
>> Muchas gracias! Juan.
>>
>> El mié., 30 de jun. de 2021 7:35 p.m., Eric Concha M. <
>> ericconchamunoz using gmail.com> escribió:
>>
>> >
>> >  Y si lo haces con la libreria data.table ? suponiendo que bd es tu
>> >  base de datos:
>> >
>> >  bd1 <- bd[monodroga=="aciclovir" & UNIDADES==20,]
>> >  bd2 <- bd[monodroga=="paracetamol" & UNIDADES==10,]
>> >  bd3 <- bd[monodroga=="rosuvastatina" & UNIDADES==30,]
>> >
>> > y luego las unes:
>> >
>> >  bd.nueva <- rbind(bd1,bd2,bd3)
>> >
>> > Algo así podría ser ... hay muchas otras formas de hacerlo, pero me
>> > gusta data.table cuando son bbdd grandes xq es muy rápida, sobretodo si
>> > la usas con set.key() ... mira la ayuda de R para que veas los detalles
>> > de data.table.
>> >
>> > Ojo con los detalles, como que la columna monodroga sea tipo caracter o
>> > factor, q UNIDADES sea numérico, y así ...
>> >
>> > Suerte !!
>> >
>> > Eric.
>> >
>> >
>> >
>> >
>> > n Wed, 30 Jun 2021 19:15:21 -0300
>> > juan manuel dias <juamadias using gmail.com> wrote:
>> >
>> > > Hola, como andan!
>> > >
>> > > Tengo una base de datos de medicamentos (monodrogas), con tres
>> > > variables, unidades, precio y precio unitario. Necesito llegar a un
>> > > data frame donde tenga solo las monodrogas que cumplen alguna
>> > > condición en la variable unidades, pero considerando varias
>> > > monodrogas.
>> > >
>> > > Esto es un recorte de la base:
>> > >
>> > > Monodroga UNIDADES Precio PrecioUnit
>> > > aciclovir 20 111272 55.636
>> > > aciclovir 20 97464 48.732
>> > > aciclovir 40 98322 432
>> > > aciclovir 40 98322 324
>> > > paracetamol 1 19291 192.91
>> > > paracetamol 1 24702 247.02
>> > > paracetamol 1 21120 211.2
>> > > paracetamol 10 9993 9.993
>> > > paracetamol 10 10443 10.443
>> > > rosuvastatina 14 141134 100.81
>> > > rosuvastatina 28 258262 92.2364286
>> > > rosuvastatina 28 201590 71.9964286
>> > > rosuvastatina 30 183717 61.239
>> > > rosuvastatina 30 231935 77.3116667
>> > >
>> > > Por ejemplo, para la monodroga "aciclovir" necesito solo las filas
>> > > donde Unidades==20,  en paracetamol==10 y en rosuvastatina==30.
>> > >
>> > > Estoy trabajando con tidyverse y he probado algunas cosas que no han
>> > > funcionado.
>> > >
>> > > prom_max_min_base_precios_May_2021_final<-base_precios_May_2021_final
>> > > %>% ##unite("concat1",CodDrog,CodForma,sep="",remove = FALSE) %>%
>> > >   ##unite("concat2",CodDrog,CodForma,Potencia,sep="",remove = FALSE)
>> > > %>% filter(!is.na(CodDrog)) %>%
>> > >   ##filter(monodroga=="aciclovir", Unidades %in% c(20)) %>%
>> > >   group_by(concat1,concat2,monodroga) %>%
>> > >   summarize(min_may_2021=min(precio_unitario),
>> > >             max_may_2021=max(precio_unitario),
>> > >             prom_may_2021=mean(precio_unitario)) %>%
>> > >   ungroup()
>> > >
>> > > Ajdunto la base en csv.
>> > >
>> > > Muchas gracias!
>> >
>> > _______________________________________________
>> > R-help-es mailing list
>> > R-help-es using r-project.org
>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es