特定のベクトルを指定して_dplyr::filter
_を使用してフィルタリングする簡単な方法はありますか?
以下のコードのようなものを探しています:
_top.food <- c('pizza', 'bacon', 'burger')
filter(orders, dish == 'pizza' | dish == 'bacon' | dish == 'burger')
_
文字ベクトルを選択しましたが、どのクラスでもかまいません。
Greplを論理述語grepl(dish, top.food)
として使用することを検討しましたが、dishが有効なパターンに一致しないため、機能しません(最初の要素のみを使用します)。
何か案は? thnx!
値マッチング関数_%in%
_を探していると思います。
_filter(orders, dish %in% top.food)
_
または、slice()
に切り替えてmatch()
を使用することもできます。
_slice(orders, match(dish, top.food, 0L))
_
slice()
はfilter()
よりも少し速いので、あなたにとって有益かもしれません。値のマッチングの詳細については、help(match)
を参照してください。