我在大学的一个新讲座中需要使用/学习 R,而我目前在其语法方面遇到了一些困难。我想绘制(通过curve
)一个简单的函数,但我似乎无法让它与类似 lambda 的内联函数一起使用。
我尝试过以下方法:
> curve( function(x) x^2 )
Error in curve(function(x) x^2) :
'expr' did not evaluate to an object of length 'n'
然而,当我首先将函数存储在变量中时,它会起作用:
> quad <- function(x) x^2
> curve( quad )
R中不允许这样的内联使用吗?有没有其他方法可以在不定义额外函数的情况下完成这项工作?谢谢!
只是为了完整性。您可以在 R 中使用“类似 lambda”(匿名)函数,但如果您想立即使用它们,则需要将函数定义括在括号或大括号中:
(function (x) x+1) (1)
{function (x,y) x^y} (2,3)
如果是curve
第一个参数是表达式或函数名称 - 但如果它是函数名称,则首先将其转换为表达式。 (参见源代码的前几行curve
)。因此,如果它不是函数名称,您将需要一个表达式 - 它可能包含“lambda”函数:
curve((function (x) x^2)(x))
如果你想使用一个函数(而不是它的名字)作为参数,你可以使用plot.function:
plot(function(x) x^2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)