这里是我的功能。它在其他地方的[-5,-3]和[3,5]和0上需要一定的值。该功能是围绕原点对称的。从一个标量函数R中创建一个向量函数
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(箱),我得到这个荒谬的答案。这是正确的[-5,-3]范围。
我的猜测是,当函数f检查第一个条件时,它仅检查了第一个值的矢量,所以对于(-3,5]范围,它错误地只使用公式为[-5,-3]。
我想获得的方式来绘制这些点的曲线,但是当我使用的曲线函数,曲线绘制使用了错误的值,我们会得到通过使用F(箱)
可有人请告诉我如何解决这一问题?
你的猜测是正确的。如果你使用了&而不是&&以上就会清楚(if语句会产生一个警告)。请注意,您必须使用&为下面的ifelse解决方案。 –