Tenho os mesmos dados simulados mostrados na página do GitHub da biblioteca, em relação à s linhas e colunas de facetas (incluÃdas no exemplo reproduzÃvel abaixo).
Mas eu quero classificar cada subplot com base na soma de concordo fortemente e concordo. Como posso conseguir isso em R usando gglikert
?
library(ggstats)
library(dplyr)
library(ggplot2)
likert_levels <- c(
"Strongly disagree",
"Disagree",
"Neither agree nor disagree",
"Agree",
"Strongly agree"
)
set.seed(42)
df <-
tibble(
q1 = sample(likert_levels, 150, replace = TRUE),
q2 = sample(likert_levels, 150, replace = TRUE, prob = 5:1),
q3 = sample(likert_levels, 150, replace = TRUE, prob = 1:5),
q4 = sample(likert_levels, 150, replace = TRUE, prob = 1:5),
q5 = sample(c(likert_levels, NA), 150, replace = TRUE),
q6 = sample(likert_levels, 150, replace = TRUE, prob = c(1, 0, 1, 1, 0))
) |>
mutate(across(everything(), ~ factor(.x, levels = likert_levels)))
df_group <- df
df_group$group1 <- sample(c("A", "B"), 150, replace = TRUE)
df_group$group2 <- sample(c("a", "b", "c"), 150, replace = TRUE)
gglikert(df_group,
q1:q6,
facet_cols = vars(group1),
labels_size = 3
)
gglikert(df_group,
q3:q6,
facet_cols = vars(group1),
facet_rows = vars(group2),
labels_size = 3
) +
scale_x_continuous(
labels = label_percent_abs(),
expand = expansion(0, .2)
)
Você poderia simplesmente adicionar
sort = "ascending"
um argumento aogglikert
.Como já explicado por @M-- não há como conseguir isso usando apenas
gglikert
. E comfacet_grid
eu não vejo nenhuma opção para conseguir o resultado desejado sempatchwork
(ou ...).Portanto, a abordagem fácil seria criar cada painel de faceta como um
gglikert
gráfico separado e combiná-los usandopatchwork
. Uma desvantagem dessa abordagem é que, em geral, acabamos com escalas x diferentes:A abordagem mais elaborada seria usar
ggplot2
a construção do gráfico Likert do zero, onde eu construiria minha resposta a uma de suas perguntas anteriores, mas acrescentariapatchwork
e permitiria coletaraxes
também: