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)

1行(1curveコマンド)で書けるでしょうか?私が考えていた

このようなもの

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すると、1 つのデータ系列を作成できます。

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)))

ただし、コードを 2 行に分けると読みやすくなります。

于 2013-01-15T15:23:57.070 に答える
0

両方の曲線をプロットする関数を書くことができます:

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

もちろん、正しい議論をしなければなりません。その結果、1 つのプロットに 2 つの曲線が表示されます

于 2013-01-15T15:23:49.247 に答える