我想問一下爲什麼在我改變的時候,下面例子中的data.table失去了它的key某個where
子集的關鍵變量的值。是否有必要。在一個keyed data.table中,將某個`where`的key變量的值設置爲`NULL`
library(data.table)
example(data.table)
setkey(DT,x) # one key var only
DT[J("a"), x := "z"]
DT
x y v v2 m
1: z 1 13 84 5
2: z 3 13 84 5
3: z 6 13 84 5
4: c 1 7 NA 8
5: c 3 8 NA 8
6: c 6 9 NA 8
7: z 1 42 NA 42
8: z 3 42 NA 42
9: z 6 42 NA 42
使作品就好了。不過,我失去了我的鑰匙:
key(DT)
NULL
我想通過重新分配鍵上方的鍵列x
被刪除。也許鑰匙應該被記住,即應該有一個隱含的setkey(DT,x)
來保持x
作爲鑰匙?謝謝!
我正在使用版本1.8.6。順便一提。
FWIW,你不需要'Ĵ( 'A')','DT [ '一',X:= 'Z' ]'也會這樣做。但也許這是一個很好的功能添加。像'levels'因素可能會有'updatekey'功能... – Justin