2016-10-11 5 views
0

Последний день 2017 года (2017-12-31) выпадает на воскресенье, то есть последняя неделя года содержит только 1 день, если я рассматриваю воскресенье как день начала моя неделя. Теперь я хотел бы с 2016-01-01 по 2016-01-07, чтобы быть связанным с 53-й неделей, и начать первую неделю с 2016-01-03, которая выпадает на воскресенье.Начать неделю в воскресенье как первый день недели

I имеют следующую структуру кадра данных:

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

Got it. Маленькие корректировки к этому должны служить моей цели!

df$WKN <- as.integer(format(df$range, '%U')) 

 Смежные вопросы

  • Нет связанных вопросов^_^