在星期日作为一周的第一天开始 Weeknum
Start the Weeknum on Sunday as the first day of the week
2017年的最后一天(2017-12-31)正好是星期日,如果我把星期日作为我一周的开始日,那么一年的最后一周只有1天。现在,我希望 2016-01-01 到 2016-01-07 与第 53 周相关联,并在 2016-01-03 开始第 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 在这里提供了解决方案 但我没有预见到这里的问题。
知道了。
对此稍作调整应该符合我的目的!
df$WKN <- as.integer(format(df$range, '%U'))
2017年的最后一天(2017-12-31)正好是星期日,如果我把星期日作为我一周的开始日,那么一年的最后一周只有1天。现在,我希望 2016-01-01 到 2016-01-07 与第 53 周相关联,并在 2016-01-03 开始第 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 在这里提供了解决方案
知道了。 对此稍作调整应该符合我的目的!
df$WKN <- as.integer(format(df$range, '%U'))