【发布时间】:2011-05-24 17:01:48
【问题描述】:
我在 R 中有一个函数,给定 n 天,返回最后 n 个工作日的列表。我的解决方案运行良好,但感觉不优雅,我想知道是否有任何简单的方法可以改进它。
WeekdayList <- function(n) {
Today <- as.Date(Sys.time())
days <- c(Today)
i <- 1
while (length(days) < n) {
NewDay <- as.Date(Today-i)
if (!weekdays(NewDay) %in% c("Saturday", "Sunday")) {
days <- c(days,NewDay)
}
i <- i+1
}
days
}
WeekdayList(30)
WeekdayList(2)
排除节假日也是一个不错的功能。
【问题讨论】:
-
您可能会在这里找到答案:stackoverflow.com/questions/5046708/…
-
@Sacha Epskamp 我认为这涵盖了不同的领域。在这种情况下,我有一个开始日期,但结束日期是未知的。在上一个问题中,开始和结束都是已知的。
-
如果您有开始日期和天数,那么您有结束日期,对吗?
-
@Sacha Epskamp 不,因为不知道您在寻找恰好 n 个工作日时会遇到多少个周末。
-
啊,给定 n 个工作日而不是 n 天?