【问题标题】:dplyr filter : value is contained in a vectordplyr 过滤器:值包含在向量中
【发布时间】:2016-06-21 03:08:33
【问题描述】:

在给定特定向量的情况下,是否有直接使用dplyr::filter 进行过滤的方法?

我正在寻找类似以下代码的内容:

top.food <- c('pizza', 'bacon', 'burger')

filter(orders, dish == 'pizza' | dish == 'bacon' | dish == 'burger')

我选择了一个字符向量,但它可以是任何类。

我曾考虑使用 grepl 作为逻辑谓词 grepl(dish, top.food),但它不起作用,因为 disc 不匹配有效模式(它只需要第一个元素)。

有什么想法吗?谢谢!

【问题讨论】:

标签: r filter dplyr


【解决方案1】:

我想你正在寻找值匹配函数%in%

filter(orders, dish %in% top.food)

或者您可以切换到slice() 并使用match()

slice(orders, match(dish, top.food, 0L))

我相信slice()filter() 快一点,所以这可能对你有益。有关值匹配的所有详细信息,请参阅help(match)

【讨论】:

    猜你喜欢
    • 2016-03-30
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2021-01-27
    • 2021-05-12
    相关资源
    最近更新 更多