4
我想有在data.table(1.9.6)封裝的獨特功能的一個錯誤:意外行爲二者:獨特和==功能
小例如:
test <- data.table(a = c("1", "1", "2", "2", "3", "4", "4", "4"),
b = letters[1:8],
d = c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE))
a b d
1: 1 a TRUE
2: 1 b TRUE
3: 2 c FALSE
4: 2 d FALSE
5: 3 e TRUE
6: 4 f FALSE
7: 4 g FALSE
8: 4 h FALSE
test[d == TRUE, `:=` (b = "M")]
test <- unique(test, by = c("a", "b"))
a b d
1: 1 M TRUE
2: 2 c FALSE
3: 2 d FALSE
4: 3 M TRUE
5: 4 f FALSE
6: 4 g FALSE
7: 4 h FALSE
在這一點上一切都很完美,但現在我只想選擇列d爲真的行:
test[d == TRUE]
a b d
1: 1 M TRUE
但結果是錯誤的。
FWIW,'test [(d == TRUE)]','test [d == 1]'和'test [(d)]'給出了所有正確的結果。 – nicola
奇怪的是......這個代之以工作:'test [test $ d == TRUE]' – digEmAll
這確實看起來像是一個可能由二級索引引起的錯誤。也許某種程度上與[this]相關(https://github.com/Rdatatable/data.table/issues/1704)。無論如何,SO不適用於錯誤報告。應該在GH上報告錯誤。另外,在邏輯向量上使用'=='對我來說沒有意義。爲什麼不只是'測試[(d)]'? –