我有一定的开始时间和一周的指定日期。
start = as.POSIXct(1234567, origin = "1970-1-1")
format(start, format = "%A %c")
target1 = "TUE"
target2 = "Wednesday"
我想要的是找到开始后的第一天,它与一周中的相应日期相匹配。 (并且希望用户如何输入星期几的目标有点灵活)任何想法?我想一个字符串查找表可能会起作用,但是必须有一个更简洁的方法。
如果解决方案可以进行矢量化,则获得积分......
答案 0 :(得分:2)
我还没有尝试过对此进行矢量化(不确定是否可以),但这是一次尝试:
find_day <- function(start,target){
target <- tolower(target)
next_week <- as.Date(start) + 1:7
next_week[match(target,substr(tolower(weekdays(next_week)),1,nchar(target)))]
}
它应该接受一天的任何长度或大写缩写。如何使用它:
> find_day(start,"TUE")
[1] "1970-01-20"
> find_day(start,"friday")
[1] "1970-01-16"