仅保留包含男性和女性观察值的类别

时间:2018-11-16 05:58:50

标签: r dataframe plyr tidyverse

我正在使用一个数据框,其中“ job_title”列包含数百个标题,而另一列“ gender”指定观察值代表的人是男性还是女性。

(我正在努力弄清楚)如何删除所有行,以使男性和女性都不共享职称值?

换句话说,我想仅当且仅当其“ job_title”值记录为至少另一行具有另一“ gender”值时,才保留一行。如果只有男性有一个特定的职位,我想删除所有带有该职位的行;如果只有女性拥有职位,那么我也希望删除所有带有该职位的行。

1 个答案:

答案 0 :(得分:0)

假设df是您的数据帧,这是基本的R解决方案-

df[ave(df$gender, df$job_title, FUN = function(x) length(unique(x))) > 1, ]

使用tidyverse-

df %>%
  group_by(job_title) %>%
  filter(n_distinct(gender) > 1)