我想在函数中使用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; )也不起作用。
答案 0 :(得分:1)
您可以使用parse
创建表达式:
D(parse(text=Function), "x")
2 * x