【问题标题】:combining "quoted" objects from plyr组合来自 plyr 的“引用”对象
【发布时间】:2012-09-04 14:10:25
【问题描述】:

我真的是 plyr 的 quoted 类;我希望能够组合两个引用对象并获得一个新对象。例如,我如何定义mult(a,b) 这样

q1 <- as.quoted("x+y")
q2 <- as.quoted("y+z")
mult <- function(a, b) {?????}

## mult(q1, q2) returns as.quoted("(x+y)*(y+z)")

【问题讨论】:

    标签: r plyr


    【解决方案1】:

    你需要eval引用的公式然后paste他们在一起:

    mult <- function(a, b) {
      as.quoted(paste(eval(a), '*', eval(b)))
    }
    
    > mult(q1, q2)
    List of 1
     $ x + y * y + z: language x + y * y + z
     - attr(*, "env")=<environment: 0x2920980> 
     - attr(*, "class")= chr "quoted"
    > 
    

    【讨论】:

    • 看来可以!在 R 中,几乎总是有很多方法可以做事。它还可能取决于您对公式的最终用例。我使用了eval,因为这是as.quoted 的“标准”相反。 data.table 包尤其如此。有关示例,请参见 here。
    猜你喜欢
    • 2019-02-26
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多