如何根据条件(R)取消选择



我有一个关于大学招生的数据集。我正试图找出每个学院招收生物学专业学生的比例。我发现每个学校的入学人数(EFTOTTLT(首先使用:

#find sum of students by school
total_enrollment <- school_data_unit_cip %>%
group_by(UNITID) %>%
summarise(Freq = sum(EFTOTLT))

这产生了一个2207 x 2的tibble,然后我用找到每个学校的生物学入学人数

#find total biology enrollment by school
total_biol_enrollment <- school_data_unit_cip %>%
group_by(UNITID) %>%
filter(CIPCODE == "26") %>%
summarise(Freq = sum(EFTOTLT))

然后我意识到这产生了一个1560x2的tibble。所以很明显,有些学校不提供生物学课程,或者没有生物学学生。

有没有办法从第一批没有CIPCODE 26的学校中取消选择?或者我想有没有办法从第一个列表中删除第二个列表中不存在的学校?

如果没有样本数据,这只是猜测,但。。。假设每个学校可能有多个CIPCODE,并且您只希望包含至少CIPCODE == "26"的学校,则可能是

school_data_unit_cip %>%
filter(! "26" %in% CIPCODE)

在另一个答案中的备注后更新。

我认为如果你先分组,你可以过滤掉它们,但如果没有数据,就不能确定:

total_biol_enrollment <- school_data_unit_cip %>%
group_by(UNITID) %>% 
filter(!any(CIPCODE== "26"))

最新更新