这是我的功能。它在 [-5,-3] 和 [3,5] 和 0 其他地方取某些值。该函数围绕原点对称。
f<-function(x){
y=0
if (x>=-5 && x<=-3){
y=3*(1-(x+4)^2)/8
}
if (x>=3 && x<=5){
y=3*(1-(x-4)^2)/8
}
return(y)
}
好的,所以我使用了该功能sapply (bins, f)
哪里bins = seq(-5,5,by=0.05)
。这很好用!
但是当我尝试做 f(bins) 时,我得到了这个荒谬的答案。在 [-5,-3] 范围内是正确的。
我对此的猜测是,当函数 f 检查第一个 if 条件时,它仅检查 bins 向量的第一个值,因此对于 (-3,5] 范围,它错误地使用了仅适用于 [-5 ,-3]。
我试图找到一种为这些点绘制曲线的方法,但是当我使用曲线函数时,曲线是使用我们使用 f(bins) 获得的错误值绘制的
有人可以告诉我如何解决这个问题吗?