Wie Sie feststellen, wenn das Datum ein Wochenende oder nicht (nicht mit lubridate)
Ich habe einen Vektor von Datums-Objekte (yyyy-mm-dd
) und ich will bestimmen, ob jeder von Ihnen am Wochenende oder nicht. Gibt es eine Funktion, die bestimmen können, das auf Anhieb?
Kann ich verwenden wday()
im lubridate Paket und bestimmen Sie dann, ob der Rückgabewert ist 01
oder 07
aber alles andere einfacher?
x <- seq(Sys.Date()-10, Sys.Date(), by = 1)
x[lubridate::wday(x) %in% c(1, 7)]
InformationsquelleAutor der Frage DonDyck | 2014-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legte ich @AnandaMahto Vorschlag hier eher als ein Kommentar:
InformationsquelleAutor der Antwort
Können Sie die Basis-R-Funktion
weekdays()
.Soweit lubridate geht,
wday()
hat einelabel
argument. BeiTRUE
die (verkürzten) Tag-Namen werden zurückgegeben anstelle von zahlen. Verwenden Sie dieabbr
argument zu ändern, um vollständige Namen.InformationsquelleAutor der Antwort Rich Scriven
Ein anderer Ansatz könnte die Verwendung
format
und%u
gibt, die eine Zahl für den Tag der Woche, beginnend mit "1" für "Montag".Mit, dass, die Sie tun können:
InformationsquelleAutor der Antwort A5C1D2H2I1M1N2O1R2T1
Den
wday
in beidenlubridate
unddata.table
(ja,data.table
hat so ziemlich alles, aber der Küchenspüle 🙂 beide machen eine variation:So könnte man, in der Theorie, nur:
und dann testen Sie für das Wochenende andere Antwort(en) zu tun.
InformationsquelleAutor der Antwort hrbrmstr
Könnten Sie
isWeekend
aus Paket timeDate. Schwer zu tun einfacher :).wday
angeben, welche Tage als Werktage. Standardmäßig werden von Montag bis Freitag.Aus der Dokumentation :
Funktioniert es auch mit
isWeekday
.InformationsquelleAutor der Antwort Florent