我想尝试像
这样的功能曲线pow <- function(n) {
function(x){ x^n }
}
当我弯曲它时使用下面的代码,一切都很好
f <- pow(2)
curve(f,-2,2)
但是当我用
曲线时curve(pow(2),-2,2)
我收到错误消息&#34;&#39; expr&#39;必须是一个函数,或者包含&#39;&#39;&#34;的调用或表达式,我想知道如何在没有临时变量的情况下对其进行曲线化?
答案 0 :(得分:4)
使用
curve(pow(2)(x),-2,2)
在curve()
的文档中,它需要
函数的名称,或作为x函数编写的调用或表达式,它将计算为与x相同长度的对象。
所以f
是一个函数的名称,这就是为什么它起作用的原因。你也可以打电话给curve(f(x),-2,2)
。但是pow(2)
不是函数的名称,它是一个返回函数的函数调用。但是当curve
看到一个函数调用时,它希望看到该调用是作为x
的函数编写的。因此,通过添加(x)
部分,我们将其转换为curve()
理解的函数调用。