【发布时间】:2020-06-29 21:19:03
【问题描述】:
我正在尝试使用多个条件(完全匹配 + 部分匹配)过滤我的数据集。但是dplyr 中的filter 函数只返回符合条件的部分结果。这是一个例子:
df1 <- structure(list(Date = c("6/24/2020", "6/24/2020", "6/24/2020", "6/24/2020", "6/25/2020", "6/25/2020"),
Market = c("A", "A", "A", "B", "B", "B"), Salesman = c("MF", "RP", "FR", "FR", "MF", "MF"),
Product = c("* Apple", "Apple", "* Banana", "* Orange", "* Apple", "* Banana"), Quantity = c(20L, 15L, 20L, 20L, 10L, 15L),
Price = c(1L,1L, 2L, 3L, 1L, 1L), Cost = c(0.5, 0.5, 0.5, 0.5, 0.6, 0.6)),
class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))
以下代码应该返回行1和3,但它只返回第一行:
library(tidyr)
df1 %>%
filter(Salesman == c("MF","FR"),
Market == "A",
grepl("* ",Product))
似乎是grepl("* ",Product) 引起了问题,但我需要它返回包含* 的Product。
【问题讨论】: