结合;引述;来自plyr的对象

结合;引述;来自plyr的对象,r,plyr,R,Plyr,我真的很喜欢你的课;我希望能够合并两个引用的对象并得到一个新对象。例如,我如何定义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)") q1您需要eval引用的公式,然后将它们粘贴在一起: mult <- function(a, b) { as.qu

我真的很喜欢你的
课;我希望能够合并两个引用的对象并得到一个新对象。例如,我如何定义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)")

q1您需要
eval
引用的公式,然后
将它们粘贴在一起:

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"
> 
mult-mult(第一季度、第二季度)
1人名单
$x+y*y+z:语言x+y*y+z
-属性(*,“环境”)=
-属性(*,“类”)=chr“引用”
> 

您需要
eval
引用的公式,然后
将它们粘贴在一起:

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"
> 
mult-mult(第一季度、第二季度)
1人名单
$x+y*y+z:语言x+y*y+z
-属性(*,“环境”)=
-属性(*,“类”)=chr“引用”
> 

看起来你可以!在R中,几乎总是有大量的方法来做事情。这也可能取决于您的配方最终用例。我使用了
eval
,因为这是
as.quoted
的“标准”相反。对于
data.table
包,情况尤其如此。看一个例子。看起来你可以!在R中,几乎总是有大量的方法来做事情。这也可能取决于您的配方最终用例。我使用了
eval
,因为这是
as.quoted
的“标准”相反。对于
data.table
包,情况尤其如此。有关示例,请参见。