首页 > 解决方案 > 根据 R 中的多个条件选择行

问题描述

我有一个类似于下面的巨大数据集:

Df <- data.frame("Candidate ID"   = c(1042,  1042, 1113, 1113, 1146, 1277, 1381, 1381, 1402, 1402),
                 "Application ID" = c(1040, 13006, 1111, 1125, 1144, 1274,   41,   61,   64,   65),
                  "Question"     = c("Yes", "Yes", "No","Yes", "Yes","No", "No", "No","Yes", "No"))

背景:候选人可以申请多个职位申请,并且每次都会收到不同的申请 ID。一个应聘者 ID 最多可以申请 25 份工作申请,即申请 25 次不同的时间。在我的简化示例中,最大值是两个。

数据

我想提取所有问题的答案都是“是”的候选人 ID。在示例中,我想仅提取候选 ID 1042 和 1146。如何在 R 中执行此操作?

我检查了 StackOverflow 并找不到匹配的答案,也许也是描述问题的困难。至少我努力创建了一个最小可重现的例子,以便于帮助我。

标签: rsubset

解决方案


这是否有效:

library(dplyr)
Df %>% group_by(Candidate.ID) %>% filter(all(Question == 'Yes'))
# A tibble: 3 x 3
# Groups:   Candidate.ID [2]
  Candidate.ID Application.ID Question
         <dbl>          <dbl> <chr>   
1         1042           1040 Yes     
2         1042          13006 Yes     
3         1146           1144 Yes     

推荐阅读