评估不带引号的字符串作为表达式

时间:2014-08-07 13:32:02

标签: r

我想在函数中使用R的D()函数,但是我很难对它们进行求值,因为D()只接受第一个参数作为不带引号的表达式。例如:

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

这样可以正常工作。但是,当我想要评估存储在字符向量中的函数时,就像我的目的一样:

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

因为as.expression(Function)返回表达式(&#34; x ^ 2&#34;)而不是表达式(x ^ 2)

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

注意:print(Function,quote = FALSE)会产生x ^ 2(即没有引号),D(as.expression(print(Function,quote = FALSE)),&#34; x&#34; )也不起作用。

1 个答案:

答案 0 :(得分:1)

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

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