2016-10-11 10 views
0

2017年の最終日(2017-12-31)は日曜日になります。つまり、先週の日曜日は、日曜日を開始日として考慮すれば1日しか含まれません。私の一週。さて、2016年1月1日から2016年1月7日まで、53週目に関連し、2016年1月3日に第1週目を開始します。Weeknumを週の最初の日に開始します

私は、次のデータフレーム構造を持っている:私はしたいと思い何

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 

は誰ポイントをでき

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) 

は、これは私にこれを与えるだろう私は正しい方向へ? @alistaireはここに解決策を提供しましたStart first day of week of the year on Sunday and end last day of week of the year on Saturdayしかし、私はここでこの瞬間を予見しませんでした。

答えて

0

これに少しの調整が私の目的に役立ちます!

df$WKN <- as.integer(format(df$range, '%U')) 
関連する問題