我的問題涉及R data.table與多個鍵。藉此例如:加入並加入data.table的組合?
library(data.table)
example(data.table)
key(DT)
[1] "x" "y"
和假設我要的變化「×不等於B和Y不等於3」,如在這裏:
DT[!J("b",3)]
x y v v2 m
1: a 1 42 NA 42
2: a 3 42 NA 42
3: a 6 42 NA 42
4: b 1 4 84 5
5: b 6 6 84 5
6: c 1 7 NA 8
7: c 3 8 NA 8
8: c 6 9 NA 8
我想的變化是「X以下b和y不等於3「,如下所示:
DT[J("b",!3)]
Error in `[.data.table`(DT, J("b", !3)) :
typeof x.y (double) != typeof i.V2 (logical)
有沒有告訴J()否定某些鍵的機會? 謝謝!
我覺得後續的語法有點更加透明:'DT [X ==「B」& y!= 3]' – 2013-02-24 19:04:40
嗨@GaryWeissman,你的語法意味着一個向量掃描。 data.table和join操作的關鍵是通過使用鍵來避免這些操作。但我想你是對的,對於非data.table用戶更容易理解。 – 2013-02-24 19:13:59
我不認爲'J'函數支持參數之間的非一致邏輯運算符。我相信上述語法在DT中比在DF中更快。 – 2013-02-24 19:15:11