将字符串与 R 中的逻辑运算符进行比较

Compare strings with logical operator in R

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

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

您可以使用 ifelse%in%:

ifelse(x %in% c("Sat", "Sun"), "Weekend", "Weekday")
# [1] "Weekday" "Weekday" "Weekday" "Weekday" "Weekday" "Weekend" "Weekend"

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