如何找到下一个特定日期?

cho*_*tom 5 r lubridate

我需要找到与一组日期相对应的所有“下周五”。

例如 2015-08-03(2015 年 8 月 3 日星期一)作为输入应该返回 2015-08-07(2015 年 8 月 7 日星期五)作为输出。

在阅读lubridate 的小插图时,我找不到满足这种需求的方法,您将如何进行?

library(lubridate) 
date <- "2015-08-03"
date <- wmd(date)
wday(date, label = TRUE)
Run Code Online (Sandbox Code Playgroud)

red*_*ode 7

library(lubridate) 

nextFriday <- function(date) {
  date <- ymd(date)
  .day <- wday(date, label = TRUE)
  shift <- ifelse(as.numeric(.day) < 6, 0, 7)
  date + days(6 - as.numeric(.day) + shift)
}

nextFriday("2015-08-03")
Run Code Online (Sandbox Code Playgroud)


Kir*_*ill 5

试试这个功能:

nextweekday <- function(date, wday) {
  date <- as.Date(date)
  diff <- wday - wday(date)
  if( diff < 0 )
    diff <- diff + 7
  return(date + diff)
}
Run Code Online (Sandbox Code Playgroud)

您插入您的日期和所需的 wday(星期日 = 1,星期一 = 2,...)并获得您想要的结果。