【问题标题】:how to convert the weekdays to a factor in R如何将工作日转换为R中的一个因素
【发布时间】:2016-08-16 15:54:49
【问题描述】:

我有一个这样的数据框:

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" ,我想添加一个新的因子数组来显示这一天是工作日还是周末,例如:

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

有什么简单的方法吗?谢谢

【问题讨论】:

    标签: r date


    【解决方案1】:

    ifelse 是检查向量的每个元素的条件并根据检查执行某些操作的标准方法。由于您已经有了指定的工作日,因此您需要检查一个非常简单的条件:

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

    这会为您的数据添加一个新变量we。当使用$&lt;- 添加到数据框中时,默认情况下它将是一个因素。

    当然,您可以在mutate 中使用ifelse()(或使用dplyr::if_else),在这种情况下,您需要将结果包装在factor() 中以将其强制转换为一个因子 - 这将是一个character 否则。


    有关不依赖于已经拥有星期几的其他检查周末的方法,请参阅How to check if a date is a weekend?

    【讨论】:

      猜你喜欢
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2021-01-21
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多