0

val %in% c(3,4)from の式を作成して、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