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?