У меня есть фрейм даты (четыре переменные) с двумя столбцами даты, start_holiday и end_holiday. Я пытаюсь проверить, соответствуют ли конкретные даты диапазону праздничных дней, и экспортирует ли результат для этой конкретной даты как единое целое.Лист Excel.
мой вклад:
df <- tibble::tribble(
~Code, ~Member_Id, ~Start.Holiday, ~End.Holiday,
18100532L, 2L, 20190118L, 20190203L,
18101425L, 1L, 20190118L, 20190203L,
18101425L, 2L, 20181218L, 20190102L,
18102843L, 1L, 20181222L, 20190101L,
18103202L, 1L, 20190202L, 20190303L,
18103202L, 2L, 20190202L, 20190303L,
18104148L, 1L, 20181215L, 20181229L,
18104148L, 2L, 20181215L, 20181229L,
18105261L, 1L, 20181204L, 20181230L,
18105261L, 2L, 20190109L, 20190114L,
18105261L, 3L, 20181205L, 20181222L,
18107386L, 1L, 20181205L, 20181222L,
18107429L, 2L, 20181205L, 20181222L,
18108931L, 1L, 20181217L, 20190110L,
18109405L, 1L, 20190123L, 20190208L,
18109405L, 2L, 20190123L, 20190208L,
18113785L, 1L, 20190118L, 20190122L,
18114041L, 1L, 20190118L, 20190122L,
18114329L, 1L, 20181213L, 20181222L,
18114329L, 2L, 20181213L, 20181222L)
Я сделал это до сих пор, что даст мне людей, которые были в отпуске 1 января. Однако я ищу более разумный способ с меньшим количеством кода.Допустим, я хочу проверить 1 января до 11 января, с помощью этого метода я должен повторно запустить сценарий 11 раз и экспортировать отдельно для каждой даты.Есть ли способ, которым мы могли бы использовать, чтобы проверить, находится ли какая-либо дата в этих двух интервалах, и для каждой даты экспортировать вывод в виде одного листа Excel?Например, на 1 января (только просматривая мои выборочные данные) 3 человека были в отпуске и экспортировали их как один лист Excel с вызовом 0101, на 2 января 2 человека были в отпуске и экспортировали результат в виде одного листа 0201 и т. Д.Я надеюсь, что я был достаточно ясен
только за 1 января
library(lubridate)
library(tidyverse)
df_interval <- df %>%
janitor::clean_names() %>%
mutate(
Start_H = ymd(start_holiday),
End_H = ymd(end_holiday),
# Create an interval object.
holiday_Interval = interval(start = Start_H, end = End_H),
flag = case_when(
ymd("2019-01-01") %within% holiday_Interval ~ 1,
TRUE ~ 0)) %>%
select(-holiday_Interval)
Чтобы быть более ясным, желаемый результат