我需要找到与一组日期相对应的所有“下周五”。
例如 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)
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)
试试这个功能:
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,...)并获得您想要的结果。
| 归档时间: |
|
| 查看次数: |
3071 次 |
| 最近记录: |