将 YYYYMM 转换为该月的最后一个工作日或工作日

时间:2021-04-18 12:21:03

标签: r date zoo

我有一个 YYYYMM 格式的日期,即

d <- "202003"

我想将其设为日期对象,并使用 as.yearmon 中的 zoohttps://stat.ethz.ch/pipermail/r-help/2007-September/141796.html 中的技巧

lastday <- as.Date(as.yearmon(d, "%Y%m"), frac = 1)

但这给了我一个月的最后一个日历日。我怎样才能获得一个月的最后一个工作日工作日

提前致谢

托马斯飞利浦

1 个答案:

答案 0 :(得分:1)

如果最后一天是星期六,则减去 1 天,如果是星期日,则减去 2 天。使用 %u 格式化将在星期六给出 6,在星期日给出 7,因此从中减去 5,如果它是负数,则将其减去 0。

lastday - pmax(as.numeric(format(lastday, "%u")) - 5, 0)