是否有直接的方法来过滤使用dplyr::filter
给定的特定向量?
我正在寻找类似下面的代码:
top.food <- c('pizza', 'bacon', 'burger')
filter(orders, dish == 'pizza' | dish == 'bacon' | dish == 'burger')
Run Code Online (Sandbox Code Playgroud)
我选择了一个字符向量,但它可以是任何类.
我曾经考虑过使用grepl作为逻辑谓词,grepl(dish, top.food)
但它不起作用,因为菜与有效模式不匹配(它只需要第一个元素).
有任何想法吗?日Thnx!
Ric*_*ven 18
我想你正在寻找价值匹配功能%in%
.
filter(orders, dish %in% top.food)
Run Code Online (Sandbox Code Playgroud)
或者您可以切换到slice()
并使用match()
.
slice(orders, match(dish, top.food, 0L))
Run Code Online (Sandbox Code Playgroud)
我相信这slice()
比filter()
你快一点,所以这可能对你有益.请参阅help(match)
有关值匹配的所有详细信息.