如何在r中将星期几替换为工作日和周末?

时间:2018-06-21 08:57:13

标签: r

数据

a = c('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')

我正在尝试使用以下代码将星期几替换为工作日/周末,

a = ifelse(a==c('Monday','Tuesday','Wednesday','Thursday','Friday'),'Weekday',
           'Weekend')

但是我得到以下带有预期结果的警告消息

Warning message:
In a == c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday") :
  longer object length is not a multiple of shorter object length

我的方法正确吗?有更好的方法吗?

当我在超过40,000行的大型数据帧上执行此操作时,我没有得到预期的结果。

1 个答案:

答案 0 :(得分:1)

您的方法几乎是正确的。

您只需要%in%(如docendo discimus所指出的那样)来代替==

ifelse(a %in% c('Monday','Tuesday','Wednesday','Thursday','Friday'), 'Weekday', 'Weekend')

然后您可以使用以下方法稍微简化一下:

ifelse(a %in% c('Sunday', 'Saturday'), 'Weekend', 'Weekday')