Wie lösche ich eine Zeile als Referenz in data.table?

Meine Frage ist in Bezug auf die Zuordnung von Referenz-versus kopieren in data.table. Ich möchte wissen, ob man Zeilen löschen von Referenz, ähnlich

DT[ , someCol := NULL]

Ich will wissen, über

DT[someRow := NULL, ]

Denke ich, es gibt einen guten Grund, warum diese Funktion nicht vorhanden ist, so könnte man vielleicht einfach zeigen, eine gute alternative zu den üblichen Kopier-Ansatz, wie unten beschrieben. Insbesondere, gehen mit mein Lieblings-Beispiel(Daten.Tabelle),

DT = data.table(x = rep(c("a", "b", "c"), each = 3), y = c(1, 3, 6), v = 1:9)
#      x y v
# [1,] a 1 1
# [2,] a 3 2
# [3,] a 6 3
# [4,] b 1 4
# [5,] b 3 5
# [6,] b 6 6
# [7,] c 1 7
# [8,] c 3 8
# [9,] c 6 9

Sagen, ich will löschen Sie die erste Zeile aus dieser Daten.Tabelle. Ich weiß, ich kann dies tun:

DT <- DT[-1, ]

aber oft können wir vermeiden wollen, dass, weil wir kopieren das Objekt (und das erfordert etwa 3*N Speicher, wenn N object.size(DT)wie schon hier.
Jetzt fand ich set(DT, i, j, value). Ich weiß, wie ich bestimmte Werte (wie hier: setzt alle Werte in den Zeilen 1 und 2, sowie den Spalten 2 und 3 zu null)

set(DT, 1:2, 2:3, 0) 
DT
#      x y v
# [1,] a 0 0
# [2,] a 0 0
# [3,] a 6 3
# [4,] b 1 4
# [5,] b 3 5
# [6,] b 6 6
# [7,] c 1 7
# [8,] c 3 8
# [9,] c 6 9

Aber wie kann ich das löschen der ersten beiden Zeilen sagen? Dabei

set(DT, 1:2, 1:3, NULL)

legt die gesamte DT zu NULL.

Mein SQL-wissen ist sehr begrenzt, so dass Sie Jungs sagen mir: die angegebenen Daten.Tabelle mit SQL Technologien, gibt es ein äquivalent zu der SQL-Befehl

DELETE FROM table_name
WHERE some_column=some_value

Daten.Tabelle?

InformationsquelleAutor der Frage Florian Oswald | 2012-05-28

Schreibe einen Kommentar