2016-08-16 4 views
0

auf einen Faktor zu konvertieren habe ich ein Datenrahmen wie folgt aus:wie die Wochentage in R

date   count wd 
2012-10-01  0 Monday 
2012-10-02  5 Tuesday 
2012-10-06  10 Saturday 
2012-10-07  15 Sunday 

I

verwenden
dat <- mutate(dat,wd = weekdays(as.Date(dat$date))) 

ein neues Array "wd" hinzufügen, aber ich d mag einen neuen Faktor Array hinzuzufügen, wenn dieser Tag zu zeigen, ein Wochentag oder Wochenende, so etwas wie:

date   count wd 
2012-10-01  0 weekday 
2012-10-02  5 weekday 
2012-10-06  10 weekend 
2012-10-07  15 weekend 

ist jede einfache Möglichkeit, dies zu tun? Danke

Antwort

2

ifelse ist dieser Standard Weg, um eine Bedingung für jedes Element eines Vektors zu überprüfen und etwas auf der Grundlage der Prüfung zu tun. Da Sie bereits die genannten Wochentage haben, haben Sie eine ziemlich triviale Bedingung zu überprüfen:

dat$we = ifelse(dat$wd %in% c("Saturday", "Sunday"), "weekend", "weekday") 

Dies fügt eine neue Variable, we, auf Ihre Daten. Es wird standardmäßig ein Faktor sein, wenn es dem Datenrahmen mit $<- hinzugefügt wird.

Sie können, natürlich, verwenden ifelse() innerhalb mutate (oder verwenden Sie dplyr::if_else), wobei in diesem Fall müssten Sie das Ergebnis in factor() wickeln Sie es zu einem Faktor zu zwingen - es hat eine character durch anders sein wird.


Für andere Methoden der weekendness Überprüfung, die auf bereits mit den Namen der Tage der Woche hängt nicht How to check if a date is a weekend? sehen.

Verwandte Themen