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
sapply
を使用してx
の各日をループし、それが平日か週末かを確認する代わりに、ifelse
と_%in%
_:
_ifelse(x %in% c("Sat", "Sun"), "Weekend", "Weekday")
# [1] "Weekday" "Weekday" "Weekday" "Weekday" "Weekday" "Weekend" "Weekend"
_
ここでベクトル化された操作を使用する動機は2つあります。これにより、入力を節約でき、コードがより効率的になります。