data.table: using setkey with a column name variable

data.table, r

Solution

`setkeyv` should work. Here is a reproducible example:

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

Problem

I have a variable name saved into the string variable `which_id`. `W` is a data.table. How do I call `setkey` on `W` with `which_id` ? This is what I've tried ``` > eval( paste( 'setkey(W,' , which_id , ')' ) ) [1] "setkey(W, customer_id_A )" ``` But a call to `tables()` shows that the `customer_id_A` key didn't take. ``` > evalq( paste( 'setkey(W,' , which_id , ')' ) ) [1] "setkey(W, customer_id_A )" ``` `customer_id_A` key still didn't take. ``` > setkeyv( W , cols=which_id ) ``` and ``` > setkeyv( W , cols=c( which_id ) ) ``` --> same thing, `customer_id_A` key isn't there. Any pointers?

Original source