【发布时间】:2015-11-19 16:55:44
【问题描述】:
为什么以下工作:
foo <- function(x) {x}
curve(foo)
# plots the identity function between 0 and 1
这不是:
curve(function(x) {x})
曲线错误(函数(x){: “expr”未计算为长度为“n”的对象
还有
# the anonymous function can be called
foo(1) #1
(function(x) x)(1) #1
all.equal(foo, function(x) {x})
# TRUE
我尝试了“quote()”和“expression()”的各种组合,但没有结果。
【问题讨论】:
-
来自
?curve: expr : 函数的名称,或者调用或写成 x 的函数的表达式。所以curve({x})例如工作。您只需删除function(x)。你也可以去掉括号。 -
哦,我已经阅读了帮助,但它让我尝试了
curve(x)和curve(quote(x))都失败了...... -
鉴于
x本身不是一个函数,您需要括号,但您可以使用curve(sin(x))或curve({sin(x)})(澄清我关于删除括号的评论) -
感谢您提供有效的解决方案。不过,我的问题更多的是关于 为什么 它不起作用,当两个参数显然相等时。
-
我会写一个答案
标签: r