我有一个保存在字符串变量which_id
中的变量名。
W
是一个 data.table。我如何使用 which_id
调用 setkey
在 W
上?
这是我尝试过的:
> 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
key还是没有生效。
> setkeyv( W , cols=which_id )
和
> setkeyv( W , cols=c( which_id ) )
--> 同样的事情,customer_id_A
键不存在。
有什么提示吗?
eval
。你上次尝试使用setkeyv
应该可以工作,我想。无论如何,我通常使用eval(parse(text="..."))
来进行评估,而你正在使用eval("...")
。 - Franksetkeyv(W, which_id)
对我来说有效,你可能想要让你的问题可复现 - 在特定的W
和which_id
中放入。 - eddi