2017年(2017-12-31)的最后一天是星期日,这意味着如果我将星期日视为我一周的开始日,那么今年的最后一周只包含1天。现在,我希望2016-01-01到2016-01-07,与第53周相关联,并从2016-01-03开始第1周,即第1周。
我有以下数据框架结构:
require(lubridate)
range <- seq(as.Date('2017-12-26'), by = 1, len = 10)
df <- data.frame(range)
ddf$WKN <- as.integer(format(df$range + 1, '%V'))
df$weekday <- weekdays(df$range)
df$weeknum <- wday(df$range)
这会给我这个:
df:
range WKN weekday weeknum
2017-12-26 52 Tuesday 3
2017-12-27 52 Wednesday 4
2017-12-28 52 Thursday 5
2017-12-29 52 Friday 7
2017-12-30 52 Saturday 7
2017-12-31 01 Sunday 1
2018-01-01 01 Monday 2
2018-01-02 01 Tuesday 3
2018-01-03 01 Wednesday 4
2018-01-04 01 Thursday 5
我想要的是:
df:
range WKN weekday weeknum
2017-12-26 52 Tuesday 3
2017-12-27 52 Wednesday 4
2017-12-28 52 Thursday 5
2017-12-29 52 Friday 7
2017-12-30 52 Saturday 7
2017-12-31 53 Sunday 1
2018-01-01 53 Monday 2
2018-01-02 53 Tuesday 3
2018-01-03 53 Wednesday 4
2018-01-04 53 Thursday 5
.
.
2018-01-07 01 Sunday 1
有人能指出我正确的方向吗? @alistaire在这里提供了解决方案Start first day of week of the year on Sunday and end last day of week of the year on Saturday但我没有预见到这一点。
答案 0 :(得分:0)
知道了。 对此的一点调整应该符合我的目的!
df$WKN <- as.integer(format(df$range, '%U'))