我想绘制一条在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不起作用
发布于 2013-01-15 23:23:57
使用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)))虽然将代码分成两行可以更容易地阅读。
发布于 2013-01-15 23:23:49
您可以只编写一个函数来绘制这两条曲线:
myfun <- function(...) {
plot(...)
lines(...)
}当然,你必须给出正确的论点。结果是一张图中有两条曲线
https://stackoverflow.com/questions/14340853
复制相似问题