工作日功能显示不正确的天数

时间:2018-04-18 20:14:33

标签: r lubridate

我正在尝试生成2013年到2015年之间每一天的一周。我使用了lubridate包中的以下代码。由于2013年1月1日是星期二,因此在周二开始使用+ 3。

df$Day <- weekdays(as.Date(df$Date)+3)

然而,日期在2013年初是正确的,但当天的日期与日期不符。任何人都可以解释为什么会发生这种情况吗?

1 个答案:

答案 0 :(得分:0)

weekdays期望class "POSIXt" or "Date"类型的参数。此外,函数也是矢量化的,这意味着如果传递包含Date的向量,则向量将返回工作日。

即。以下代码生成从2013/01/012015/12/31的向量,然后转换每天的工作日。

 library(lubridate)
 weekdays(seq(ymd("2013/01/01"), ymd("2015/12/31"), by="day"))
 #[1] "Tuesday"   "Wednesday" "Thursday"  "Friday"    "Saturday"  "Sunday"    "Monday" 
 # ....so on

请注意,在上面的输出中,评估并显示了从病房weekdays开始的2013/01/01日期。