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

R 计算不带引号的字符串作为表达式,r,R,我想在一个函数中使用R的D()函数,但是我很难对它们求值,因为D()只接受第一个参数作为表达式,没有引号。例如: > D(expression(x^2), "x") 2 * x 这是应该的。但是,当我想计算存储在字符向量中的函数时,就我的目的而言: > Function<-"x^2" > D(as.expression(Function), "x") NA 函数D(如表达式(函数),“x”) NA 因为as.expression(函数)返回的是表达式(“x^2”)而

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

> D(expression(x^2), "x")
2 * x
这是应该的。但是,当我想计算存储在字符向量中的函数时,就我的目的而言:

> Function<-"x^2"
> D(as.expression(Function), "x")
NA
函数D(如表达式(函数),“x”) NA 因为as.expression(函数)返回的是表达式(“x^2”)而不是表达式(x^2)

所以问题是:当使用character vector变量的内容作为.expression()参数时,如何去掉引号,或者如何将变量的内容转换为expression()的参数,而不使用引号


注意:虽然print(Function,quote=FALSE)会产生x^2(即没有引号),但D(as.expression(print(Function,quote=FALSE)),“x”)也不起作用。

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

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