首页 > 解决方案 > 在R中将周末日期更改为工作日日期

问题描述

我正在阅读 R 中的 excel 文件并计算日期前 6 个月的日期。如果日期是周末,则需要将日期更改为下一个工作日。

例如:如果日期是 2020-2-7,则前六个月是 2019-08-11。这是星期天。如何将日期更改为 2019-08-12?

我尝试了以下代码:

date <- as.date.character("2020-2-7")
nxtd <- date-180
if(weekdays(nxtd)=="Saturday"){nxtd <- date-182} else if(weekdays(nxtd)=="Sunday"){nxtd <- date-181}
else{nxtd <- date-180}

此代码给出错误/警告“条件的长度 > 1,仅使用第一个元素”

我该如何解决?

标签: rdateif-statement

解决方案


library(lubridate)
d1 = as.Date("2020-2-9")
d2 = d1 - 180
if(weekdays(d2) %in% c("Saturday", "Sunday")){
    floor_date(d2 - 3, "week") + 8
} else {
    d2
}

推荐阅读