Excluir fines de semana en R en Dplyr.
Esta es una pregunta de continuación de esta respuesta: https://stackoverflow.com/a/45254762/5893585
Estoy utilizando la función do
en dplyr
dentro del paquete prophet
. Al intentar esto, quiero crear un dataframe futuro excluyendo los fines de semana. A continuación se muestra mi código actual:
Dataframe actual:
dataset
ds group y
2021-12-15 A 5
2021-12-16 A 6
2021-12-15 B 10
2021-12-16 B 7
etc etc etc
Predicción:
library(dplyr)
library(prophet)
data = dataset %>%
group_by(group) %>%
do(predict(prophet(., daily.seasonality = TRUE, yearly.seasonality = TRUE),
make_future_dataframe(prophet(.,daily.seasonality = TRUE, yearly.seasonality = TRUE), periods = 14))) %>%
select(ds, group, yhat)
¿Cómo puedo reescribir el código anterior para filtrar el dataframe de make_future_dataframe
y excluir los fines de semana?
Quiero que se vea algo como esto, sin embargo esto no está funcionando:
data = dataset %>%
group_by(group) %>%
do(predict(prophet(., daily.seasonality = TRUE, yearly.seasonality = TRUE),
make_future_dataframe(prophet(.[which(weekdays(.$ds) != 'Saturday' | weekdays(.$ds) != 'Sunday'),],
daily.seasonality = TRUE, yearly.seasonality = TRUE), periods = 14))) %>%
select(ds, group, yhat)
davy.ai
Para filtrar los fines de semana de la función
make_future_dataframe
enprophet
, puedes modificar el código de la siguiente manera:Este código agrega un filtro después de la función
make_future_dataframe
para incluir solo los días de la semana (de lunes a viernes) en el marco de datos resultante. La instrucción%in% c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
verifica si el día de la semana es uno de los días mencionados en el vector.Nota: Quité la sintaxis
.[which()]
ya que no es necesaria con%>%
.