R data.table:使用带有列名变量的setkey
我在字符串变量R data.table:使用带有列名变量的setkey,r,data.table,R,Data.table,我在字符串变量中保存了一个变量名,该变量\u id W是一个数据表。如何使用哪个id调用W上的setkey 这就是我尝试过的 > eval( paste( 'setkey(W,' , which_id , ')' ) ) [1] "setkey(W, customer_id_A )" 但是对tables()的调用表明customer\u id\u a键没有被使用 > evalq( paste( 'setkey(W,' , which_id , ')' ) ) [1] "setk
中保存了一个变量名,该变量\u id
W
是一个数据表。如何使用哪个id
调用W
上的setkey
这就是我尝试过的
> eval( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"
但是对tables()
的调用表明customer\u id\u a
键没有被使用
> evalq( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"
> setkeyv( W , cols=which_id )
customer\u id\u A
钥匙仍然没有取下
> evalq( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"
> setkeyv( W , cols=which_id )
及
-->同样,customer\u id\u不存在一个
密钥
有什么建议吗
setkeyv
应该可以工作。以下是一个可复制的示例:
library(data.table)
W <- data.table(customer_id_A = 1:2)
which_id <- "customer_id_A"
setkeyv(W, which_id)
tables()
## NAME NROW MB COLS KEY
## [1,] W 2 1 customer_id_A customer_id_A
## Total: 1MB
库(data.table)
我认为不需要那些花哨的eval
东西。我认为,您最后一次尝试使用setkeyv
应该会奏效。无论如何,我通常使用eval(parse(text=“…”)
执行eval,而您使用的是eval(“…”)
。parse
调用成功了,谢谢。我想知道是否有一种“data.table native”的方式。setkeyv(W,which_id)
对我有效,你可能想让你的问题重现-输入具体的W
和which_id