过滤单个data.frame中的匹配行

Seb*_* Z. 2 r filter dataframe

不知怎的,我在过滤专利数据时心理上陷入困境.所以想象你有:

expl <- data.frame(PatNr=c(1,1,1,2,2,2,2,2), Country=c("AZ","AZ","PE","AZ","PS","HQ","HQ","PV"))

#>   PatNr    Country
#> 1       1        AZ
#> 2       1        AZ
#> 3       1        PE
#> 4       2        AZ
#> 5       2        PS
#> 6       2        HQ
#> 7       2        HQ
#> 8       2        PV
Run Code Online (Sandbox Code Playgroud)

我想要的只是在我的data.frame中包含AZ和PS的那些PatNr案例.可以删除所有其他PatNr案例.所以在给定的例子中,我希望脚本删除所有PatNr = 1行并保持PatNr = 2行.

在这种情况下将行子集化为两行将是棘手的,因为实际数据具有附加到其上的九个更重要的变量,每行不同.

Her*_*oka 7

使用dplyr:

library(dplyr)


expl2 <- expl %>% 
  group_by(PatNr) %>% 
  filter(all(c("AZ","PS") %in% Country)) 
expl2
Run Code Online (Sandbox Code Playgroud)