R-ggplot2-分类数据的限制条形图输出

R-ggplot2-分类数据的限制条形图输出,r,ggplot2,bar-chart,categorical-data,R,Ggplot2,Bar Chart,Categorical Data,我试图在ggplot2中创建一个条形图,将x轴上的输出限制为最常见的10%分类变量 我的数据框架是一个包含个人贷款统计数据的数据集。我正在研究两个类别之间的关系,贷款状况和职业 首先,我想将贷款状态限制为已“冲销”的贷款。接下来,我想使用条形图绘制不同职业中已冲销的贷款数量。职业有67个唯一值-我想将绘图限制为最常见的职业(按整数或百分比,即“7”或“10%”工作) 在下面的代码中,我使用forcats函数fct_informeq按频率降序排列条形图。但是,我找不到一个函数来限制x轴类别的数量。

我试图在ggplot2中创建一个条形图,将x轴上的输出限制为最常见的10%分类变量

我的数据框架是一个包含个人贷款统计数据的数据集。我正在研究两个类别之间的关系,贷款状况和职业

首先,我想将贷款状态限制为已“冲销”的贷款。接下来,我想使用条形图绘制不同职业中已冲销的贷款数量。职业有67个唯一值-我想将绘图限制为最常见的职业(按整数或百分比,即“7”或“10%”工作)

在下面的代码中,我使用forcats函数
fct_informeq
按频率降序排列条形图。但是,我找不到一个函数来限制x轴类别的数量。我曾尝试过
分位数
尺度(scale)x(u离散)
)等,但这些似乎对分类数据不起作用

谢谢你的帮助

df %>% filter(LoanStatus %in% c("Chargedoff")) %>% 
ggplot() +
  geom_bar(aes(fct_infreq(Occupation)), stat = 'count') +
  scale_x_discrete(limits = c(quantile(df$Occupation, 0.9), quantile(df$Occupation, 1)))
产生的错误:

(1-h)*qs[i]中的错误:二进制运算符的非数值参数

更新: 使用下面Yifu的答案,我能够得到如下所示的期望输出:

pd_occupation <- pd %>% 
  dplyr::filter(LoanStatus == "Chargedoff") %>%
  group_by(Occupation) %>% 
  mutate(group_num = n())

table(pd_occupation$group_num)#to view the distribution

ggplot(subset(pd_occupation, group_num >= 361)) +
  geom_bar(aes(fct_infreq(Occupation)), stat = 'count') +
  ggtitle('Loan Charge-Offs by Occupation')
pd_职业百分比
dplyr::筛选器(LoanStatus==“Chargedoff”)%>%
组别(职业)%>%
变异(group_num=n())
表(pd_职业$group#num)#查看分布情况
ggplot(子集(pd_职业,组数>=361))+
geom_bar(aes(fct_INFOREQ(职业)),统计=‘计数’)+
ggtitle(“按职业划分的贷款冲销”)

您可以在
dplyr
中执行此操作:

#only use cars whose carb appears more than 7 times to create a plot
mtcars %>%
    group_by(carb) %>%
    mutate(group_num = n()) %>%
    # you can substitute the number with 10% percentitle or whatever you want
    dplyr::filter(group_num >= 7) #%>%
    #ggplot()
    #create your plot

我们的想法是过滤观察结果并将其传递给
ggplot
,而不是过滤
ggplot

中的数据。请提供一个具有可复制数据的示例,也许您可以通过
forcats::fct_lump
将因子水平进行分类,然后在进行分类之前将其子集到非“其他”类别?