Data.table: с помощью setkey с переменной имени столбца - программирование
Подтвердить что ты не робот

Data.table: с помощью setkey с переменной имени столбца

У меня есть имя переменной, сохраненное в строковой переменной which_id.

W - это таблица данных. Как я могу называть setkey на W с помощью which_id?

Вот что я пробовал

 > eval( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"

Но вызов tables() показывает, что клавиша customer_id_A не выполнялась.

 > evalq( paste( 'setkey(W,' , which_id , ')' ) )
[1] "setkey(W, customer_id_A )"
Клавиша

customer_id_A все еще не принималась.

 > setkeyv( W , cols=which_id )

и

 > setkeyv( W , cols=c( which_id ) )

- > то же самое, ключ customer_id_A отсутствует.

Любые указатели?

4b9b3361

Ответ 1

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