Angenommen, ich habe ein Datum in R und es ist wie folgt formatiert.
date
2012-02-01
2012-02-01
2012-02-02
Gibt es in R eine Möglichkeit, eine weitere Spalte mit dem Wochentag hinzuzufügen, der dem Datum zugeordnet ist? Der Datensatz ist sehr groß, daher ist es nicht sinnvoll, ihn manuell durchzugehen und die Änderungen vorzunehmen.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
Nach dem Hinzufügen der Tage würde es also so aussehen:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
Ist das möglich? Kann mich jemand auf ein Paket verweisen, mit dem ich dies tun kann? Ich versuche nur, den Tag automatisch nach dem Datum zu generieren.
weekdays
, die Anzahl der Wochentage zu ermitteln, die Sie verwendenas.POSIXlt
?setNames(0:6, c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))[weekdays(as.Date(df$date))]
. Wenn Sie die Namen nicht mögen, können Sie sie umschließenunname()
.Nachschlagen
?strftime
:quelle
'%u'
statt'%A'
Verwenden Sie das
lubridate
Paket und die Funktionwday
:quelle
abbr = FALSE
Angenommen, Sie möchten zusätzlich, dass die Woche am Montag beginnt (anstelle der Standardeinstellung am Sonntag). Dann ist Folgendes hilfreich:
Das Ergebnis sind die Tage im Intervall [0, .., 6].
Wenn das Intervall [1, .. 7] sein soll, verwenden Sie Folgendes:
... oder alternativ:
quelle
week_start
:wday(df$date, label = TRUE, week_start = 1)
Dies sollte den Trick tun
quelle
quelle
Formular Kommentar von JStrahl
format(as.Date(df$date),"%w")
, wir erhalten die Nummer des aktuellen Tages:as.numeric(format(as.Date("2016-05-09"),"%w"))
quelle