Was ist der richtige Weg, um mehrere Spalten aus einer data.table zu entfernen? Ich verwende derzeit den folgenden Code, erhalte jedoch unerwartetes Verhalten, als ich versehentlich einen der Spaltennamen wiederholte. Ich war mir nicht sicher, ob das ein Fehler war oder ob ich die Spalten nicht entfernen sollte.Entfernen Sie mehrere Spalten aus data.table
library(data.table)
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","y") := NULL]
names(DT)
[1] "z"
Die oben genannten Arbeiten in Ordnung, aber
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","x") := NULL]
names(DT)
[1] "z"
+1. Interessanter Fund Wenn Sie zwei "y" löschen, erhalten Sie "x" übrig. Und wenn Sie zwei "z" löschen, stürzt es ab! – Frank
Jetzt können Sie die LHS der ': =' Zuweisung in einen Aufruf von 'unique()' (dh verwenden Sie DT [, unique (c ("x", "x")): = NULL] ') extra defensiv sein. Da dies wie ein ** data.table ** -Bug aussieht, würde ich annehmen, dass Sie das nur tun müssen, bis Matthew Dowle diesen Aufruf an 'unique()' (oder etwas Gleichwertiges) innerhalb der '[ .data.table() ' –
Gute Idee über einzigartig. Vielen Dank. –