私はこれに似たデータを持っています:
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
変数の値に基づいて、このデータフレームから行を選択したいと思います。たとえば、「a」または「c」のいずれかを含む行を選択する場合は、次のように実行できます。
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
ですか?