Jaki jest poprawny sposób na usunięcie wielu kolumn z data.table? Obecnie używam poniższego kodu, ale otrzymałem nieoczekiwane zachowanie, gdy przypadkowo powtórzyłem jedną z nazw kolumn. Nie byłem pewien, czy to był błąd, czy też nie powinienem usuwać kolumn w ten sposób.Usuń wiele kolumn z data.table
library(data.table)
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","y") := NULL]
names(DT)
[1] "z"
Powyższe działa dobrze, ale
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","x") := NULL]
names(DT)
[1] "z"
+1. Interesujące znalezisko. Jeśli usuniesz dwa "y", pozostanie "x". A jeśli usuniesz dwa "z", to zawiesza się! – Frank
Na razie możesz zawinąć LHS z przydziału ': =' w wywołaniu 'unique()' (tj. Użyj 'DT [, unique (c (" x "," x ")): = NULL]') być dodatkowym defensywnym. Ponieważ wydaje się, że jest to bug ** data.table **, domyślam się, że będziesz musiał to zrobić, dopóki Matthew Dowle nie przeniesie tego połączenia do 'unique()' (lub czegoś podobnego) wewnątrz '[ .data.table() ' –
Dobry pomysł na wyjątkowy. Dzięki. –