我有一个这样的数据框:
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)))
添加一个新阵列&#34; wd&#34;但是,我想添加一个新的因子数组来显示这一天是工作日还是周末,例如:
date count wd
2012-10-01 0 weekday
2012-10-02 5 weekday
2012-10-06 10 weekend
2012-10-07 15 weekend
有什么简单的方法吗?感谢
答案 0 :(得分:2)
ifelse
是检查向量的每个元素的条件并基于检查执行某些操作的标准方法。由于您已经拥有命名的工作日,因此您需要检查以下非常简单的条件:
dat$we = ifelse(dat$wd %in% c("Saturday", "Sunday"), "weekend", "weekday")
这会为您的数据添加一个新变量we
。使用$<-
将数据框添加到数据框时,默认情况下这是一个因素。
您当然可以在ifelse()
内使用mutate
(或使用dplyr::if_else
),在这种情况下,您需要将结果包装在factor()
中以强制它一个因素 - 否则它将是character
。
对于其他检查周末的方法,不依赖已经知道星期几的名称,请参阅How to check if a date is a weekend?。