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