I've the following code:
e <- expression(x^2+3*x-3)
我想使用R的符号导数函数D来绘制一阶导数的图形:
curve(D(e), from=0, to=10)
但是我接着收到了下面的错误提示:
Error in curve(expression(e), xname = "x", from = 0, to = 3000) :
'expr' must be a function, or a call or an expression containing 'x'
我尝试使用eval()来包装D(e),但却毫无作用。
再试一点:
substitute(expression(x^2+3*x-3), list(x=3))
结果,如预期,会导致:
expression(3^2+3*3-3)
但是:
substitute(e, list(x=3))
结果是:
e
这是什么情况?我该如何让它正常工作?
eval(call("curve", D(e, "x"), from=0, to=1)
,这种语法可能更易于人类解析。 - Josh O'Brieneval(substitute(curve(y, from=0, to=10), list(y=D(e,"x"))))
。 - Nanitouscurve()
明确发出错误消息,指出第一个参数必须是表达式,而e
是包含表达式的变量,其中包含一个x
。 R 如何看到包含表达式的变量?在某种程度上,R 似乎以不同的方式处理传递的参数。 - Nanitous