Ric*_*ter 6 string compare r function 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)
Run Code Online (Sandbox Code Playgroud)
这是我在RStudio中得到的错误:
Error in day == "Sat" | "Sun" :
operations are possible only for numeric, logical or complex types
Run Code Online (Sandbox Code Playgroud)
jos*_*ber 12
而不是使用sapply通过每个人一天中循环x,并检查它是否是平日还是周末,你可以在一个单一的量化操作做到这一点ifelse和%in%:
ifelse(x %in% c("Sat", "Sun"), "Weekend", "Weekday")
# [1] "Weekday" "Weekday" "Weekday" "Weekday" "Weekday" "Weekend" "Weekend"
Run Code Online (Sandbox Code Playgroud)
在这里使用矢量化操作的动机是双重的 - 它将节省您的输入,它将使您的代码更有效.
| 归档时间: |
|
| 查看次数: |
48334 次 |
| 最近记录: |