我最近遇到了R處理日期的問題。 2015年的最後一天(2015-12-31)是週四,意味着如果我把星期天定爲本週的開始日,那麼上一週只有5天。現在,我希望在週五和週六的2016-01-01和2016-01-02與第53周相關,並在2016-01-03開始的第1周,這個週日將在週日舉行。開始星期日的第一週的星期幾,星期六的星期的最後一天結束
require(lubridate)
range <- seq(as.Date('2015-12-26'), by = 1, len = 10)
df <- data.frame(range)
df$WKN <- as.numeric(strftime(df$range, format = "%U")) + 1
df$weekday <- weekdays(df$range)
df$weeknum <- wday(df$range)
這會給我以下結果:
df:
range WKN weekday weeknum
2015-12-26 52 Saturday 7
2015-12-27 53 Sunday 1
2015-12-28 53 Monday 2
2015-12-29 53 Tuesday 3
2015-12-30 53 Wednesday 4
2015-12-31 53 Thursday 5
2016-01-01 1 Friday 6
2016-01-02 1 Saturday 7
2016-01-03 2 Sunday 1
2016-01-04 2 Monday 2
現在我想有我數據框如下:
df:
range WKN weekday weeknum
2015-12-26 52 Saturday 7
2015-12-27 53 Sunday 1
2015-12-28 53 Monday 2
2015-12-29 53 Tuesday 3
2015-12-30 53 Wednesday 4
2015-12-31 53 Thursday 5
2016-01-01 53 Friday 6
2016-01-02 53 Saturday 7
2016-01-03 1 Sunday 1
2016-01-04 1 Monday 2
任何人都可以點我的方向自動執行以便我不必每年都更改代碼?