R中的消歧日
我有一个特定的开始时间和一周中特定的一天R中的消歧日,r,date,R,Date,我有一个特定的开始时间和一周中特定的一天 start = as.POSIXct(1234567, origin = "1970-1-1") format(start, format = "%A %c") target1 = "TUE" target2 = "Wednesday" 我想要的是找到开始后的第一天,它与一周中相应的一天相匹配。(希望用户可以灵活地输入一周中的哪一天目标)有什么想法吗?我想一个字符串查找表可能有用,但一定有一个更整洁的方法 如果可以将解决方案矢量化,则可获得额外积分……
start = as.POSIXct(1234567, origin = "1970-1-1")
format(start, format = "%A %c")
target1 = "TUE"
target2 = "Wednesday"
我想要的是找到开始后的第一天,它与一周中相应的一天相匹配。(希望用户可以灵活地输入一周中的哪一天目标)有什么想法吗?我想一个字符串查找表可能有用,但一定有一个更整洁的方法
如果可以将解决方案矢量化,则可获得额外积分……我还没有尝试将其矢量化(不确定是否可以),但这里有一个尝试:
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)))]
}
伟大的我认为将target first截断为min(nchar(target))的变体将进行矢量化。
> find_day(start,"TUE")
[1] "1970-01-20"
> find_day(start,"friday")
[1] "1970-01-16"