提问者:小点点

计算不带引号的字符串作为表达式


我想在函数中使用R的D()函数,但我很难计算它们,因为D()只接受第一个参数作为不带引号的表达式。例子:

> D(expression(x^2), "x")
2 * x

这就像它应该的那样工作。但是,当我想评估存储在字符向量中的函数时,就像我的目的一样:

> Function<-"x^2"
> D(as.expression(Function), "x")
NA

因为as.表达式(Function)返回表达式("x^2")而不是表达式(x^2)

所以问题是:当使用字符向量变量的内容作为.表达式()参数时,如何去掉引号,或者如何将变量的内容转换为不带引号的表达式()参数。

注意:虽然print(Function,行情=FALSE)会产生x^2(即没有引号),但D(as.表达式(print(Function,报价=FALSE)),"x")也不起作用。


共1个答案

匿名用户

您可以使用parse来创建表达式:

D(parse(text=Function), "x")
2 * x