Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dplyr:变异并找到下一个工作日?_R_Datetime_Dplyr_Lubridate - Fatal编程技术网

dplyr:变异并找到下一个工作日?

dplyr:变异并找到下一个工作日?,r,datetime,dplyr,lubridate,R,Datetime,Dplyr,Lubridate,我有以下数据帧 time <- seq(from =ymd("2014-02-24"),to= ymd("2014-03-20"), by="days") df2 <- data.frame(time) df2 <- df2 %>% mutate(day_of_week = wday(time, label = TRUE)) > df2 time day_of_week 1 2014-02-24 Mon 2 2014-02-25

我有以下数据帧

time <- seq(from =ymd("2014-02-24"),to= ymd("2014-03-20"), by="days")
df2 <- data.frame(time)
df2 <- df2 %>% mutate(day_of_week = wday(time, label = TRUE))
> df2
         time day_of_week
1  2014-02-24         Mon
2  2014-02-25        Tues
3  2014-02-26         Wed
4  2014-02-27       Thurs
5  2014-02-28         Fri
6  2014-03-01         Sat
7  2014-03-02         Sun
8  2014-03-03         Mon
9  2014-03-04        Tues
10 2014-03-05         Wed
11 2014-03-06       Thurs
12 2014-03-07         Fri
13 2014-03-08         Sat
14 2014-03-09         Sun
15 2014-03-10         Mon
16 2014-03-11        Tues
17 2014-03-12         Wed
18 2014-03-13       Thurs
19 2014-03-14         Fri
20 2014-03-15         Sat
21 2014-03-16         Sun
22 2014-03-17         Mon
23 2014-03-18        Tues
24 2014-03-19         Wed
25 2014-03-20       Thurs
时间

您可以定义/加载精确的日历,以说明地区差异或特定的日历需求。

包括节假日?如果可能,可以!快速且肮脏:
df2%>%变异(下一个商业日=case\u当(.$day\u of_周=='Sat'.$time+2,.$day\u of_周=='Sun'.$time+1,TRUE~.$time))
,但请参见chron的
is.holiday
is.weekday
或者如果您想要第二天,即使是工作日,也要变异(下一个商业日=(一周中的第二天=='Sat',time+2,time+1))
.Oops,第二个版本应该是
df2%>%mutate(下一个工作日=case,当($day\u of_week=='Fri'.$time+3,$day\u of_week=='Sat'.$time+2,TRUE.$time+1))
以正确处理星期五
library(bizdays)

load_rmetrics_calendars(2014)

mutate(df2, 
       nbd_time=following(time_seq, 'Rmetrics/NERC'),
       nbd_time=ifelse(nbd_time==time_seq, offset(time_seq, 1, 'Rmetrics/NERC'), nbd_time),
       nbd_time=as.Date(nbd_time, origin="1970-01-01"),
       nbddow=wday(nbd_time, label=TRUE))