Ich habe eine Liste, aus der ich ein einzelnes Element entfernen möchte. Wie kann ich das tun?
Ich habe versucht, im Referenzhandbuch nachzuschlagen, welche Namen für diese Funktion naheliegend wären, aber ich habe nichts Passendes gefunden.
Ich habe eine Liste, aus der ich ein einzelnes Element entfernen möchte. Wie kann ich das tun?
Ich habe versucht, im Referenzhandbuch nachzuschlagen, welche Namen für diese Funktion naheliegend wären, aber ich habe nichts Passendes gefunden.
Wenn Sie die Liste nicht an Ort und Stelle ändern wollen (z. B. um die Liste mit einem entfernten Element an eine Funktion zu übergeben), können Sie die Indizierung verwenden: negative Indizes bedeuten "dieses Element nicht einschließen".
x <- list("a", "b", "c", "d", "e"); # example list
x[-2]; # without 2nd element
x[-c(2, 3)]; # without 2nd and 3rd
Auch logische Index-Vektoren sind nützlich:
x[x != "b"]; # without elements that are "b"
Dies funktioniert auch mit Datenrahmen:
df <- data.frame(number = 1:5, name = letters[1:5])
df[df$name != "b", ]; # rows without "b"
df[df$number %% 2 == 1, ] # rows with odd numbers only
Ich kenne R überhaupt nicht, aber ein bisschen kreatives Googeln hat mich hierher geführt: http://tolstoy.newcastle.edu.au/R/help/05/04/1919.html
Das Schlüsselzitat von dort:
Ich finde keine explizite Dokumentation für R, wie man Elemente aus Listen entfernt, aber Versuch und Irrtum sagen mir
myList[[5]] <- NULL
entfernt das 5. Element und "schließt" dann das durch die Löschung dieses Elements entstandene Loch. Dadurch werden die Indexwerte verfälscht, so dass ich beim Löschen von Elementen vorsichtig sein muss. Ich muss von hinten nach vorne in der Liste arbeiten.
A Antwort auf diesen Beitrag weiter unten in diesem Thema Staaten:
Zum Löschen eines Elements einer Liste, siehe R FAQ 7.1
Und die Der entsprechende Abschnitt der R-FAQ sagt:
... Setzen Sie x[i] oder x[[i]] nicht auf NULL, denn dadurch wird die entsprechende Komponente aus der Liste entfernt.
Das scheint Ihnen (auf eine etwas verkehrte Weise) zu sagen, wie Sie ein Element entfernen können.
Ich hoffe, das hilft, oder führt Sie zumindest in die richtige Richtung.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.