これが私の機能です。[-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)を使用して取得する間違った値を使用して曲線が描画されます。
誰かがこれを修正する方法を教えてもらえますか?