将字符串与R

时间:2015-08-11 18:00:00

标签: r string function compare logical-operators

我在尝试比较时遇到错误,并将工作日字符串值设置为使用R的“周末”或“工作日”。任何有关如何以更好的方式解决此问题的建议都会很棒。

x <- c("Mon","Tue","Wed","Thu","Fri","Sat","Sun")

setDay <- function(day){
          if(day == "Sat" | "Sun"){
           return("Weekend")
          } else { 
            return("Weekday")
          }
        }

sapply(x, setDay)

这是我在RStudio中遇到的错误:

Error in day == "Sat" | "Sun" : 
  operations are possible only for numeric, logical or complex types

1 个答案:

答案 0 :(得分:11)

不是使用sapply循环遍历x中的每一天并检查它是工作日还是周末,而是可以在ifelse和{{{{}}的单一矢量化操作中执行此操作1}}:

%in%

在这里使用矢量化操作的动机是双重的 - 它可以节省您的输入,它将使您的代码更有效。