21

文字列 variable に保存された変数名がありますwhich_id

Wdata.table です。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キーがありません。

ポインタはありますか?

4

1 に答える 1

23

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
于 2013-05-02T20:47:29.517 に答える