Я хочу запустить функцию, которая смотрит на два вектора, возвращая разные значения в зависимости от знаков значений в двух векторах. Я написал функцию, которая работает для сравнения двух значений, но затем я хочу запустить ее на двух векторах. Итак, я использовал sapply, но получаю другие результаты, чем ожидалось.
bear.correction<- function(x,y){
if(x > 0 && y < 0){
return(90)
}else if(x < 0 && y < 0){
return(180)
}else if(x < 0 && y > 0){
return(270)
}else return(0)
}
Следующее дает ожидаемый (и желаемый) результат:
bear.correction(1,-1)
bear.correction(1,1)
bear.correction(-1,1)
bear.correction(-1,-1)
Результат: 90, 0, 270, 180
Однако, когда я пытаюсь провести те же сравнения, но используя векторы с sapply, я получаю другой результат:
x <- c(1,1,-1,-1)
y <- c(-1,1,1,-1)
sapply(x,bear.correction,y)
Результат: 90, 90, 180, 180.
Я не вижу, что случилось, пожалуйста, помогите!