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
?