r - 在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,仅使用第一个元素”
我该如何解决?
解决方案
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
}
推荐阅读
- javascript - Javascript模板文字不适用于随机数生成器
- angular - Angular,如何在直接形成html模板之前向标签添加类已经有一些css类?
- c# - 如果选项卡处于活动状态,如何禁用它,如果我单击 Angular 中的其他选项卡,如何启用它?
- pip - 通过 pip3 安装 MariaDB 时收到错误
- python - 调用类变量python django
- python - 如何在 PythonAnywhere 上将我的 Python 程序转换为 Web 应用程序?
- c# - 将用户特定 ID 附加到 .msi 设置
- azure-cli - az login 后未找到“无”的订阅,这是为什么?
- pyqtgraph - 鼠标移入和移出时十字准线出现和消失
- python - 如何在cv2中增加屏幕录像机的fps