Wählen Sie Zeilen aus einem Datenrahmen basierend auf Werten in einem Vektor aus

Ich habe ähnliche Daten:

dt <- structure(list(fct = structure(c(1L, 2L, 3L, 4L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 4L), .Label = c("a", "b", "c", "d"), class = "factor"), X = c(2L, 4L, 3L, 2L, 5L, 4L, 7L, 2L, 9L, 1L, 4L, 2L, 5L, 4L, 2L)), .Names = c("fct", "X"), class = "data.frame", row.names = c(NA, -15L))

Ich möchte Zeilen aus diesem Datenrahmen basierend auf den Werten in auswählenfct Variable. Wenn ich beispielsweise Zeilen auswählen möchte, die entweder "a" oder "c" enthalten, kann ich Folgendes tun:

dt[dt$fct == 'a' | dt$fct == 'c', ]

was ergibt

1    a 2
3    c 3
5    c 5
7    a 7
9    c 9
10   a 1
12   c 2
14   c 4

wie erwartet. Meine tatsächlichen Daten sind jedoch komplexer und ich möchte Zeilen basierend auf den Werten in einem Vektor wie auswählen

vc <- c('a', 'c')

Also habe ich es versucht

dt[dt$fct == vc, ]

aber das geht natürlich nicht. Ich wusste, dass ich etwas codieren konnte, um den Vektor zu durchlaufen, die benötigten Zeilen herauszuziehen und sie an einen neuen Datenrahmen anzuhängen, aber ich hoffte, dass es einen eleganteren Weg gab.

Wie kann ich meine Daten basierend auf dem Inhalt des Vektors filtern / unterteilen?vc?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage