用R中的向量形成表达式

时间:2013-08-30 18:31:27

标签: r data.table

我想创建一个来自val %in% c(3,4)的表达式,以传入data.table中的查询,其中c(3,4)是一个动态向量。

我试过了:

var = "val"
value = c(3,4)
s = substitute(x := ifelse(x %in% y, 1, 0), 
                           list(x = as.symbol(eval(var)), 
                                y = as.symbol(eval(value))))

但结果是:

`:=`(val, ifelse(val %in$% `3`, 1, 0))

即。只显示向量的第一个元素。

如果不采用as.symbol(paste())方式,这样做会更优雅。 bquote也不起作用。

修改

我意识到任何动态矢量都可以通过名称传递给data.table中的查询表达式。即val %in% value有效。所以我的问题已经解决了,但我仍然想知道是否有办法生成上面的表达式

0 个答案:

没有答案