R 将条件施加到频率表中。(修改th代码)

R 将条件施加到频率表中。(修改th代码),r,ggplot2,R,Ggplot2,如何修改以下代码,使其仅显示频率>10%的级别。在我的真实数据集中,分类变量有35个级别,为了更好地可视化,我不会将所有级别都带到绘图中。2-我如何管理绘图的大小,因为有些级别的频率非常高,有些级别的频率非常低。 数据集来自car软件包 table_ <- ggplot(States, aes(region ,fill=region)) table_ <- table_ + geom_bar() table_ <- table_ + theme(legend.position

如何修改以下代码,使其仅显示频率>10%的级别。在我的真实数据集中,分类变量有35个级别,为了更好地可视化,我不会将所有级别都带到绘图中。2-我如何管理绘图的大小,因为有些级别的频率非常高,有些级别的频率非常低。 数据集来自car软件包

table_ <- ggplot(States, aes(region ,fill=region))
table_ <- table_ + geom_bar() 
table_ <- table_ + theme(legend.position="none")
table_ <- table_ + coord_flip()
table_ <- table_ + geom_text(aes(y = (..count..),label = ifelse((..count..)==0,"",scales::percent((..count..)/sum(..count..)))), 
                                                                                                             stat="count",colour="black",vjust=1.0,size=4)

table_up>您可以首先在x轴上创建所需变量的
levels
向量:

# Extract the factor levels with > 0.1 relative frequencies
levels <- names(which(summary(States$region)/sum(summary(States$region)) >0.1))

# If you just want for example the top ten variables (question 2)
levels <- names(sort(summary(States$region),decreasing=TRUE)[1:10])

@mtoto,谢谢你的回复。我得到了这个错误:分位数错误。默认值(States$region,0.1):不允许@mtoto使用因子,感谢您的解决方案,但我想要的是基于整个数据集的百分比,如果我从数据集中删除一些级别,百分比将不同。我想要的是从绘图中删除一些级别,并用实际百分比显示其他级别。@shoorideh然后可能
缩放x_离散(限制=级别)
?@mtoto,没错,很棒@mtoto,你对第二个问题有什么想法吗?@mtoto,我厌倦了缩放x_离散(限制=级别),然而,百分比仍然不是基于所有的观察!关于解决此问题,您还有其他建议吗?
table_ + ... + scale_x_discrete(limit = levels)