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