我希望任何一年都能得到去年的同一天。我怎样才能最好地在 R 中做到这一点。例如,给定星期日 2010/01/03,我想获取前一年同一周的星期日。
# "Sunday"
weekdays(as.Date("2010/01/03", format="%Y/%m/%d"))
# "Saturday"
weekdays(as.Date("2009/01/03", format="%Y/%m/%d"))
Run Code Online (Sandbox Code Playgroud)
要查找一年前的同一个工作日,只需从给定日期中减去 52 周或 364 天:
d <- as.Date("2010-01-03")
weekdays(d)
#[1] "Sunday"
d - 52L * 7L
#[1] "2009-01-04"
weekdays(d - 52L * 7L)
#[1] "Sunday"
Run Code Online (Sandbox Code Playgroud)
请注意,日历年有 365 天(闰年有 366 天),比 52 周多出一天或两天。因此,一年前同一工作日的日历日期会移动一两天。(或者,它解释了为什么新年前夜总是在不同的工作日。)
| 归档时间: |
|
| 查看次数: |
4150 次 |
| 最近记录: |