Ich habe vor kurzem ein Problem in R mit den Daten konfrontiert. Der letzte Tag des Jahres 2015 (2015-12-31) fällt auf Donnerstag, was bedeutet, dass die letzte Woche des Jahres nur 5 Tage umfasst, wenn ich Sonntag als Starttag meiner Woche betrachte. Jetzt möchte ich 2016-01-01 und 2016-01-02, die auf Freitag und Samstag fallen, mit Woche 53 verbunden sein und Woche 1 am 2016-01-03 beginnen, die auf Sonntag fällt.Beginnen Sie den ersten Tag der Woche des Jahres am Sonntag und Ende letzter Tag der Woche des Jahres am Samstag
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)
Dies würde mir folgendes Ergebnis:
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
Nun würde Ich mag meinen Datenrahmen haben, wie folgt:
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
Könnte mich jemand auf eine Richtung zeigen, dass zu automatisieren damit ich den Code nicht jedes Jahr ändern muss?