заполнить даты в R - PullRequest
       0

заполнить даты в R

0 голосов
/ 23 апреля 2020

У меня есть датафрейм, как показано ниже:

df = data.frame(
      holiday = c('Christmas', 'Thanksgiving'),
      date = c('2018-12-25', '2018-11-22')
    )

holiday       date
Christmas     2018-12-25            
Thanksgiving  2018-11-22

Мне нужно определить 4 дня до праздника как время отпуска. Необходимо сгенерировать кадр данных, как показано ниже:

holiday_time    date
Christmas       2018-12-21          
Christmas       2018-12-22          
Christmas       2018-12-23          
Christmas       2018-12-24          
Christmas       2018-12-25          
Thanksgiving    2018-11-18          
Thanksgiving    2018-11-19          
Thanksgiving    2018-11-20          
Thanksgiving    2018-11-21          
Thanksgiving    2018-11-22

Необходимо заполнить праздничные даты на 4 дня. Кто-нибудь знает, как мне этого добиться? Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

Или, если вы хотите data.table решение

setDT(df)[,.(holiday,date = seq(date-4,date,"day")),by=.(1:nrow(df))]
1 голос
/ 23 апреля 2020

Мы можем использовать complete от tidyr:

library(dplyr)

df %>%
 mutate(date = as.Date(date)) %>%
 group_by(holiday) %>%
 tidyr::complete(date = seq(date - 4, date, 'day'))

#   holiday      date      
#   <fct>        <date>    
# 1 Christmas    2018-12-21
# 2 Christmas    2018-12-22
# 3 Christmas    2018-12-23
# 4 Christmas    2018-12-24
# 5 Christmas    2018-12-25
# 6 Thanksgiving 2018-11-18
# 7 Thanksgiving 2018-11-19
# 8 Thanksgiving 2018-11-20
# 9 Thanksgiving 2018-11-21
#10 Thanksgiving 2018-11-22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...