我想运行一个查看两个向量的函数,根据两个向量中值的符号返回不同的值。我写了一个函数来比较两个值,但是我想在两个向量上运行它。所以我使用了 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。
我看不出有什么问题,所以请帮忙!