0

我想创建 from 的表达式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有效。所以我的问题解决了,但我还是想知道是否有办法生成上面的表达式

4

0 回答 0