按分组依据的两个值进行过滤

时间:2019-04-24 20:41:10

标签: r

我想根据分组条件过滤列的2个匹配值。例如,从患者数据集中,我应该在按患者ID分组的VisitType 1和2上都匹配。

到目前为止,我正在使用以下代码。

patients %>% group_by(PatientID) %>% filter(VisitType == "6" and VisitType == "7")

但是,这不返回任何内容(我猜这是因为VisitType 6和7是不同的行)。有没有一种过滤方式,使我得到类似以下的内容:

PatientID     VisitType 
1                6
1                7
39               6
39               7

1 个答案:

答案 0 :(得分:1)

您不需要group_by()进行过滤和排列,如果它还没有想要的形式。


patients %>%
  filter(VisitType %in% c(6,7)) %>%
  arrange(PatientID) # optional

如果您只希望看到同时患有VisitType == 6 && VisitType == 7的患者,那么您会做类似的事情

patients %>%
  filter(VisitType %in% c(6,7)) %>%
  group_by(PatientID) %>%
  filter(n() >= 2)