申し訳ありませんが、これは基本的なことかもしれませんが、私は初心者です。たくさんの曲線を作るので、いくつかのアドバイスが役に立ちます。
プロットしたい関数があります:
f <- function(x) sum(4*sin(x*seq(1,21,2))/(pi*seq(1,21,2)))
使用して
curve(f, -pi, pi, n=100)
残念ながら、これは私にはうまくいきません。お知らせ下さい。ありがとう
あなたの関数はベクトル化されていません。現時点では、単一のスカラー入力のみを受け取り、単一の戻り値を出力します。 curve
は、プロットしたい x 値のベクトルをフィードできること、および応答値のベクトルを受け取ることができることを期待しています。最も簡単な解決策はVectorize
、関数をベクトル入力を受け取ることができる関数に自動的に変換するために使用することです。
f2 <- Vectorize(f)
curve(f2, -pi, pi, n = 100)
ただし、関数のベクトル化されたバージョンを直接記述したいだけかもしれません。