R 将少于总数x%的属性重新分类为';其他';

R 将少于总数x%的属性重新分类为';其他';,r,filter,dplyr,R,Filter,Dplyr,好的,我有数据如下: ID Name Job 001 Bill Carpenter 002 Wilma Lawyer 003 Greyson Lawyer 004 Eddie Janitor 我想将这些工作组合在一起进行分析,以便将所有少于x的工作组合到“其他”中 我如何做到这一点,以下是我尝试的: df %>% group_by(Job) %>% summarize(count = n()) %>% mutate(pct

好的,我有数据如下:

ID      Name  Job
001     Bill  Carpenter
002    Wilma  Lawyer
003  Greyson  Lawyer
004    Eddie  Janitor
我想将这些工作组合在一起进行分析,以便将所有少于x的工作组合到“其他”中

我如何做到这一点,以下是我尝试的:

df %>%
  group_by(Job) %>%
  summarize(count = n()) %>%
  mutate(pct = count/sum(count)) %>% 
  arrange(desc(count)) %>% 
  drop_na()
现在我知道了百分比是多少,但我如何将其整合到原始数据中,使X下面的所有内容都成为“其他”。(假设小于或等于25%为其他)

也许有一种更直接的方法……

您可以尝试以下方法:

library(dplyr)

df %>%
  count(Job) %>%
  mutate(n = n/sum(n)) %>%
  left_join(df, by = 'Job') %>%
  mutate(Job = replace(Job, n <= 0.25, 'Other'))
库(dplyr)
df%>%
计数(作业)%>%
变异(n=n/和(n))%>%
左join(df,by='Job')%>%
变异(作业=替换(作业,n