我编写了一个函数,当提供日期范围、星期几的名称以及该日在给定月份(例如,每个月的第二个星期五)的出现时间时,将返回相应的日期。但是,它不是很快,我也不是 100% 相信它的稳健性。 R 中是否有一个包或一组函数可以对 POSIX 对象执行这些类型的操作?提前致谢!
最佳答案
使用 nextfri
函数,其一行源代码显示在 zoo Quick Reference vignette 中在zoo package以下给出了 d
的第二个星期五,其中 d
是该月第一天的 “日期”
:
library(zoo)
d <- as.Date(c("2011-09-01", "2011-10-01"))
nextfri(d) + 7
## [1] "2011-09-09" "2011-10-14"
(nextfri
不是 zoo 包的一部分——你需要自己输入——但它只有一行)
以下给出了星期几,其中 0 是星期日,1 是星期一,依此类推。
as.POSIXlt(d)$wday
## [1] 4 6
如果你真的只处理日期而不是日期时间,那么你应该使用 "Date"
类而不是 "POSIXt"
类以避免时区错误。请参阅 R News 4/1 中的文章.
https://stackoverflow.com/questions/7558619/