我在 R 中定义的分段函数有一些问题。
我将函数定义为:
g1 <- function(x) {
if (x <= 0.25) {
y <- gs1(x)
}
else if (x >= 0.75) {
y <- gs3(x)
}
else {y <- gs2(x)}
y
}
其中 gs1,gs2,gs3 是我之前定义的函数。
为了绘制函数 g1,我尝试了:
curve(g1)
但 R 显示以下内容:
Warning message:
In if (x <= 0.25) { :
the condition has length > 1 and only the first element will be used
我认为问题可能是 R 需要函数的参数作为数字而不是向量?我不确定我是否正确。
我通过使用以下方法找出了绘图问题:
xx <- seq(0,1,length=200)
yy <- apply(as.matrix(xx),1,g1)
plot(xx,yy,type='l')
但是我仍然想问有没有办法处理这种问题,因为我发现我定义的分段函数也不适用于许多其他命令。例如,假设我想将 g1 积分超过 0 到 1,如果我只是在 R 中尝试“积分”功能,则会出现相同的警告消息。