Selecionar linhas de um quadro de dados com base em valores em um vetor
Eu tenho dados semelhantes 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))
Eu quero selecionar linhas deste quadro de dados com base nos valores nofct
variável. Por exemplo, se eu quiser selecionar linhas contendo "a" ou "c", posso fazer isso:
dt[dt$fct == 'a' | dt$fct == 'c', ]
que produz
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 esperado. Mas meus dados reais são mais complexos e, na verdade, quero selecionar linhas com base nos valores de um vetor, como
vc <- c('a', 'c')
Então eu tentei
dt[dt$fct == vc, ]
mas é claro que isso não funciona. Eu sei que eu poderia codificar algo para percorrer o vetor e extrair as linhas necessárias e anexá-las a um novo dataframe, mas eu esperava que houvesse uma maneira mais elegante.
Então, como eu posso filtrar / subconjunto meus dados com base no conteúdo do vetorvc
?