【发布时间】:2020-04-14 23:38:26
【问题描述】:
sjPlot::plot_xtab 是一个有用的工具,可以快速生成带有计数和百分比标签的分组条形图。不过,我一直遇到一个非常烦人的问题。 plot_xtab 正在重新排序和错误标记我感兴趣的因素的水平。似乎正在发生的事情是它按词汇顺序对级别进行排序,但随后将它们与实际因子标签按标签顺序错误地标记。这当然是一个严重的问题。这是一个可重现的示例:
library(tidyverse)
library(forcats)
library(gtools)
library(sjPlot)
data("mtcars")
cars <- as_tibble(mtcars) %>%
mutate(carb_cat=case_when(carb <3~"Low", carb==3 | carb ==4~"Med", carb>4~"High"),
carb_cat=fct_relevel(carb_cat, "Low", "Med", "High"))
unique(cars$carb_cat)
cars$mpg_3 <- quantcut(cars$mpg, q=3)
plot_xtab(cars$mpg_3, cars$carb_cat, show.total = F)
当我用cars$mpg_3 绘制cars$carb_cat 时,plot_xtab 重新排序并错误标记了我的因子水平。如果您将条形图上的计数与下面的频率表进行比较,您会注意到实际水平“高”在条形图和图例中标记为“低”,“中”标记为“高”,“低” ”被标记为“中”。
cars %>% count(carb_cat)
carb_cat n
<fct> <int>
1 Low 17
2 Med 13
3 High 2
我现在使用真实数据多次遇到这个问题,我在plot_xtab 中看到的任何论点似乎都没有解决这个问题。
【问题讨论】:
-
我会将此问题报告给软件包作者。