0

我想绘制一条具有变化点的曲线x=5

到目前为止,我正在使用代码

curve(exp(0.68+0.92*x), from=0,to=5, xlim=c(0,12), ylim=c(0,500))
curve(exp(0.68+0.92*x-0.7*(x-5)), from=5,to=12, add=T)

是否可以将其写在一行(一个curve命令)中?我刚在想

像这样的东西

curve(exp(0.47+0.8*x-0.7*(x-5)*if(x<5,0,1)), from=0,to=12, xlim=c(0,12), ylim=c(0,500))

但它不适用于 R

4

2 回答 2

4

使用ifelse您可以创建一个数据系列:

values = ifelse(x <= 5, exp(0.68+0.92*x), exp(0.68+0.92*x-0.7*(x-5))

并绘制它们:

curve(values)

如果您坚持使用单线,您可以将ifelse和 调用结合起来curve

curve(ifelse(x <= 5, exp(0.68+0.92*x), exp(0.68+0.92*x-0.7*(x-5)))

尽管将代码分成两行更容易阅读 imo。

于 2013-01-15T15:23:57.070 回答
0

您可以编写一个绘制两条曲线的函数:

myfun <- function(...) {
 plot(...)
 lines(...)
}

当然,你必须给出正确的论据。结果是一张图中的两条曲线

于 2013-01-15T15:23:49.247 回答