Seleccionar filas de un marco de datos basado en valores en un vector
Tengo datos similares a este:
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))
Quiero seleccionar filas de este marco de datos en función de los valores en elfct
variable. Por ejemplo, si deseo seleccionar filas que contengan "a" o "c", puedo hacer esto:
dt[dt$fct == 'a' | dt$fct == 'c', ]
cuyos rendimientos
1 a 2
3 c 3
5 c 5
7 a 7
9 c 9
10 a 1
12 c 2
14 c 4
como se esperaba. Pero mis datos reales son más complejos y, de hecho, quiero seleccionar filas basadas en los valores de un vector como
vc <- c('a', 'c')
Así que lo intenté
dt[dt$fct == vc, ]
Pero claro que eso no funciona. Sé que podría codificar algo para recorrer el vector y sacar las filas necesarias y agregarlas a un nuevo marco de datos, pero esperaba que hubiera una forma más elegante.
Entonces, ¿cómo puedo filtrar / subcontratar mis datos en función del contenido del vector?vc
?