Выберите строки из фрейма данных на основе значений в векторе
У меня есть данные, похожие на это:
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))
Я хочу выбрать строки из этого фрейма данных на основе значений вfct
переменная. Например, если я хочу выбрать строки, содержащие либо & quot; a & quot; или "с"; Я могу сделать это:
dt[dt$fct == 'a' | dt$fct == 'c', ]
который дает
1 a 2
3 c 3
5 c 5
7 a 7
9 c 9
10 a 1
12 c 2
14 c 4
как и ожидалось. Но мои фактические данные более сложны, и я действительно хочу выбрать строки на основе значений в векторе, таких как
vc <- c('a', 'c')
Так я попробовал
dt[dt$fct == vc, ]
но, конечно, это не работает. Я знаю, что мог бы закодировать что-нибудь, чтобы пройтись по вектору, вытащить необходимые строки и добавить их в новый фрейм данных, но я надеялся, что есть более элегантный способ.
Так как я могу фильтровать / подмножество моих данных на основе содержимого вектораvc
?