Ich habe eine Liste:Filter ein Element einer Liste
name_lst <- list(one = c("John", "Paul", "Ringo", "Kramer"),
two = c("Jerry", "Kramer", "George", "Elaine"))
Ich möchte „Kramer“ von name_lst[[SOME_VECTOR]]
, entfernen, aber den Rest der Liste zurückzukehren. Würde die Ausgabe gerne sein.
name_lst
$one
[1] "John" "Paul" "Ringo"
$two
[1] "Jerry" "Kramer" "George" "Elaine"
Im Idealfall wäre ich die Lage, eine ganze Gruppe von Namen zu entfernen, nicht nur „Kramer“ (zB ! %in% c("George", "Kramer")
Ich habe versucht:
name_lst[name_lst[1] != "Kramer"]
name_lst[name_lst[[1]] != "Kramer"]
name_lst[name_lst$one != "Kramer"]
name_lst[!(name_lst$one %in% "Kramer")]
name_lst[[name_lst[1] != "Kramer"]]
name_lst[[name_lst[[1]] != "Kramer"]]
name_lst[[name_lst$one != "Kramer"]]
name_lst[[!(name_lst$one %in% "Kramer")]]
Diese alle Rück Fehler oder die gleiche Liste ohne Änderungen
Die Antwort ist gut für dieses spezielle Problem. Der allgemeine Ansatz für "tue etwas für jedes Element einer Liste" ist (1) schreibe eine Funktion, die es auch ein einzelnes Element tut, (2) 'lapply (your_function, your_list)'. – Gregor
@Gregor Ich bin mir dessen bewusst. 'lapply' auf einer Liste ist gut dokumentiert mit Fragen und Antworten. Ich möchte das nur auf ein einzelnes Element anwenden, wie es der Titel impliziert. Ich habe meine Frage aktualisiert. – Tunn
@Gregor, ich denke, du hast die Reihenfolge von 'your_function' und' your_list' durcheinander gebracht. Wenn Sie 'X =' und 'FUN =' nicht angeben, denke ich, dass 'your_list' zuerst sein muss? – rosscova