我有一个变量名保存到字符串变量which_id
中。W
是data.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
键不存在。有指针吗?
最佳答案
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
关于r - data.table:将setkey与列名变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16346966/