Es werden nur bestimmte Zeilen eines Datenrahmens basierend auf einer Reihe von Werten beibehalten

Ich habe einen Datenrahmen mit einer ID-Spalte und ein paar Spalten für Werte. Ich möchte nur bestimmte Zeilen des Datenrahmens beibehalten, basierend darauf, ob der Wert von ID in dieser Zeile mit einem anderen Satz von Werten übereinstimmt (z. B. "keep" genannt).

Der Einfachheit halber ist hier ein Beispiel:

df <- data.frame(ID = sample(rep(letters, each=3)), value = rnorm(n=26*3))
keep <- c("a", "d", "r", "x")

Wie kann ich einen neuen Datenrahmen erstellen, der aus Zeilen besteht, deren ID nur mit der von keep übereinstimmt? Ich kann dies für nur einen Buchstaben tun, indem ich das verwendewhich() Funktion, aber mit mehreren Buchstaben bekomme ich Warnmeldungen und falsche Rückgaben. Ich weiß, ich könnte eine for-Schleife durch den Datenrahmen laufen lassen und auf diese Weise extrapolieren, aber ich frage mich, ob es eine elegantere und effizientere Möglichkeit gibt, dies zu tun. Danke im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage