Sjplot绘制按第三变量分组的频数图时报错求助
在sjPlot中实现分组频数柱状图
可以用sjPlot包的plot_grpfrq()函数直接实现按第三变量分组的频数柱状图,你之前的代码报错是因为错误地使用了group_by()结合sjplot()的调用方式,sjPlot有专门的分组频数绘图函数。
正确实现代码
library(sjPlot) library(sjmisc) library(tidyverse) data(efc) # 绘制按性别(e16sex)拆分的e42dep频数并列柱状图 plot_grpfrq( data = efc, var = e42dep, # 主分析变量(对应x轴) grp = e16sex, # 用于拆分柱子的第三变量(性别) type = "bar", # 生成并列柱状图,改为"stack"可生成堆叠柱状图 show.values = TRUE, # 在柱子上显示具体频数数值 title = "按性别拆分的依赖程度频数分布" )
关键参数说明
var:指定需要分析频数的核心变量,对应柱状图的x轴grp:指定用于分组拆分的变量(即你提到的第三变量)type:控制柱状图展示形式,"bar"为并列分组柱,"stack"为堆叠分组柱show.values:设置为TRUE可在柱子上标注具体频数,提升数据可读性
如果需要结合更多变量做分面展示,可添加facet.grid参数,比如按c172code(护理者类型)分面:
plot_grpfrq( data = efc, var = e42dep, grp = e16sex, type = "bar", show.values = TRUE, facet.grid = c172code # 按护理者类型分面展示 )
内容的提问来源于stack exchange,提问作者James Prentice
相关产品推荐
相关产品推荐

