对不起,这可能是基本但我是新手。我会做很多曲线,所以一些建议对我有用。
我有一个我想绘制的功能:
f <- function(x) sum(4*sin(x*seq(1,21,2))/(pi*seq(1,21,2)))
使用
curve(f, -pi, pi, n=100)
不幸的是,这对我不起作用。请指教。 感谢
答案 0 :(得分:4)
你的功能没有矢量化。目前它只需要一个标量输入并输出一个返回值。 curve
期望它应该能够输入它想要绘制的x值的向量,并且应该接收响应值的向量。最简单的解决方案是使用Vectorize
自动将您的函数转换为可以进行矢量输入的函数。
f2 <- Vectorize(f)
curve(f2, -pi, pi, n = 100)
但是,您可能只想直接编写函数的矢量化版本。