数据
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行的大型数据帧上执行此操作时,我没有得到预期的结果。
答案 0 :(得分:1)
您的方法几乎是正确的。
您只需要%in%
(如docendo discimus所指出的那样)来代替==
。
ifelse(a %in% c('Monday','Tuesday','Wednesday','Thursday','Friday'), 'Weekday', 'Weekend')
然后您可以使用以下方法稍微简化一下:
ifelse(a %in% c('Sunday', 'Saturday'), 'Weekend', 'Weekday')