【问题标题】:Evaluate character string without quotation marks as expression将不带引号的字符串评估为表达式
【发布时间】:2014-08-07 13:32:01
【问题描述】:

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

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

这按预期工作。但是,当我想评估存储在字符向量中的函数时,我的目的就是这样:

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

因为 as.expression(Function) 返回的是 expression("x^2") 而不是 expression(x^2)

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

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

【问题讨论】:

    标签: r


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-12
      • 2011-06-03
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 2011-08-03
      • 2010-12-17
      相关资源
      最近更新 更多