Problema
Queremos filtra entre dos fechas utilizando el paquete dplyr.
Patch Date Prod_DL
1 BVG1 9/4/2015 3.43
2 BVG11 9/11/2015 3.49
3 BVG12 9/18/2015 3.45
4 BVG13 12/6/2015 3.57
5 BVG14 12/13/2015 3.43
6 BVG15 12/20/2015 3.47
- Datos
df <- read.table(
text = "Patch,Date,Prod_DL
BVG1,9/4/2015,3.43
BVG11,9/11/2015,3.49
BVG12,9/18/2015,3.45
BVG13,12/6/2015,3.57
BVG14,12/13/2015,3.43
BVG15,12/20/2015,3.47",
sep = ",",
stringsAsFactors = FALSE,
header = TRUE,
row.names = NULL
)
Solución
Formateamos la fecha correctamente y filtramos entre las dos fechas deseadas.
library("dplyr")
df$Date <-as.Date(df$Date,"%m/%d/%Y")
df %>%
select(Patch, Date, Prod_DL) %>%
filter(Date > "2015-09-04" & Date < "2015-09-18")
Patch Date Prod_DL
1 BVG11 2015-09-11 3.49
Formateamos la fecha correctamente y empleamos la función between: 'This is a shortcut for x >= left & x <= right, implemented efficiently in C++ for local values, and translated to the appropriate SQL for remote tables.'. Por tanto es necesario ajustar las fechas pues incluye ambas fechas en los dos lados. Necesitamos usar as.Date, explicación aquí.
df$Date <- as.Date(df$Date, "%m/%d/%Y")
df %>%
select(Patch, Date, Prod_DL) %>%
filter(between(Date, as.Date("2015-09-05"), as.Date("2015-09-17")))
Patch Date Prod_DL
1 BVG11 2015-09-11 3.49
No hay comentarios:
Publicar un comentario