2016-08-16 59 views
0

我有這樣一個數據幀:如何平日轉換爲因子中的R

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

我使用

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

添加一個新的數組 「WD」,然而,I」倒要添加一個新的因素陣列顯示,如果這一天是工作日還是週末,是這樣的:

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

是任何簡單的方法來做到這一點?由於

回答

2

ifelse是標準的方法來檢查一個向量的每個元素上的條件,並以此爲基礎進行檢查的東西。既然你已經有一個名爲平日裏,你有一個很瑣碎的條件查詢:

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

這增加了一個新的變量,we,您的數據。當添加到$<-的數據框時,它將成爲默認的一個因素。

你可以,當然,使用ifelse()mutate(或使用dplyr::if_else),在這種情況下,你需要來包裝factor()結果將其強制到一個因素 - 它會通過其他方式爲character


爲了檢查weekendness的其他方法不依賴於已經有一週中各天的名稱看How to check if a date is a weekend?