data.table:使用带有列名变量的setkey

use*_*469 18 r data.table

我有一个变量名保存在字符串变量中which_id.

W是一个data.table.我怎么叫setkeyWwhich_id

这就是我尝试过的

 > eval( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"
Run Code Online (Sandbox Code Playgroud)

但打电话tables()表明customer_id_A钥匙没有采取.

 > evalq( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"
Run Code Online (Sandbox Code Playgroud)

customer_id_A 关键仍然没有采取.

 > setkeyv( W , cols=which_id )
Run Code Online (Sandbox Code Playgroud)

 > setkeyv( W , cols=c( which_id ) )
Run Code Online (Sandbox Code Playgroud)

- >同样的事情,customer_id_A关键不在那里.

有什么指针吗?

G. *_*eck 21

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
Run Code Online (Sandbox Code Playgroud)