2013-01-15 49 views
0

我想直到現在我使用的代碼疊加在一個命令一個變化點曲線

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) 

繪製有在x=5

變化點的曲線是否有可能把它寫在一個線(一個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

兩條曲線使用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。

0

的工作,你可以只寫繪出兩條曲線的函數:

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

你必須當然給出正確的論點。其結果是在一個情節