将字符串与 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"
这里使用矢量化操作的动机是双重的——它可以节省您的输入,并且可以使您的代码更有效率。
我在尝试使用 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"
这里使用矢量化操作的动机是双重的——它可以节省您的输入,并且可以使您的代码更有效率。