Cómo simplificar el código de filtro para días determinados.
Cuando filtro algunos valores de días desde un dataframe, tengo que repetir ‘as.Date’ muchas veces en la condición de filtro. ¿Hay alguna manera de simplificarlo? ¡Gracias!
biblioteca(tidyverse)
test_data <- data.frame(mday=seq.Date(as.Date('2021-1-1'),
as.Date('2021-12-30'),by="1 día"),
value=rnorm(364))
# no funciona
test_data %>% filter(mday %in% c(as.Date('2021-1-1','2021-7-1','2021-10-7')))
# funciona, pero tengo que repetir 'as.date' muchas veces
test_data %>% filter(mday %in% c(as.Date('2021-1-1'),
as.Date('2021-7-1'),
as.Date('2021-10-7')))
davy.ai
Sí, hay una manera de simplificarlo usando el operador
%>%
y la funciónymd()
del paquetelubridate
para convertir las fechas a la claseDate
. Con este enfoque, solo necesitas llamar aas.Date()
una vez. A continuación, se muestra un código de ejemplo:Esto te dará el mismo resultado que el segundo código de
filter()
en tu pregunta.