2017-09-13 2 views
0

Ich habe Daten, die eine Spalten für Jahr, Monat, Woche hat. Wie kann ich dies in ein Datum mit lubridate konvertieren. Die Beispiele in der Dokumentation verwenden Jahr, Monat und Tag.makedate von lubridate mit Jahr, Monat und Woche in R

können folgende Daten

year month week 
2017 1  1 
2017 2  35 
2017 3  50 

annehmen, wie kann ich verwenden. makedate() mit den obigen Daten?

+2

Sie liefern widersprüchliche Informationen. Woche 35 wird ** nie ** in Monat 2 sein. Bitte bearbeiten Sie Ihre Eingabedaten. – CPak

Antwort

1

Eine mögliche Lösung mit Base POSIXct.

df$complete_date <- as.Date(paste(df$year, df$week, 1, sep="-"), "%Y-%U-%u") 

Führt dies zum gewünschten Ergebnis?

year month week complete_date 
1 2017  1 1 2017-01-02 
2 2017  2 35 2017-08-28 
3 2017  3 50 2017-12-11 
+1

"% u" bezieht sich auf den Tag der Woche, den Sie als "Start" erkennen möchten. Montag = 1, Sonntag = 7. Wenn Sie möchten, dass Woche 35 in "2017-08-27" anstatt in "2017-08-28" konvertiert wird, dann ändern Sie 1 zu 7. Überprüfen Sie den folgenden Link für die Übersetzung von Symbolen. https://stat.ethz.ch/R-manual/R-devel/library/base/html/strptime.html –

Verwandte Themen