[R-es] Consulta filtro múltiple.

juan manuel dias ju@m@d|@@ @end|ng |rom gm@||@com
Jue Jul 1 05:53:37 CEST 2021


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]]



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