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$carb_cat
на cars$mpg_3
, plot_xtab
переупорядочивает и маркирует уровни моего фактора. Если вы сравните значения в столбцах с таблицей частот ниже, вы заметите, что фактический уровень «Высокий» обозначен в столбцах и легендах как «Низкий», «Средний» - как «Высокий» и «Низкий». помечен как «Средний».
cars %>% count(carb_cat)
carb_cat n
<fct> <int>
1 Low 17
2 Med 13
3 High 2
Я уже несколько раз сталкивался с этой проблемой, используя реальные данные, и я не вижу аргумента в plot_xtab
, который, кажется, решает эту проблему.