我想根据分组条件过滤列的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
答案 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)