You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用gglikert时,如何传递多分组类别绘制Likert图表?

如何用gglikert绘制多分组的Likert图表

问题描述

我有一个数据框,包含3列Likert等级值和1列含多个类别的分组列(演示用A-Z,实际为复杂字符值)。想把所有分组类别传入gglikert函数的对应位置,绘制Likert图表,原代码如下:

library(dplyr)
library(tidyr)
library(ggstats)

set.seed(123)
likert_levels <- c(
  "1" = "Very  Dissatisfied",
  "2" = "Dissatisfied",
  "3" = "Neutral",
  "4" = "Satisfied",
  "5" = "Very  Satisfied")
df = data.frame(
  var = sample(LETTERS, 50, replace = TRUE),
  A = sample(likert_levels, 50, replace = TRUE),
  B = sample(likert_levels, 50, replace = TRUE),
  C = sample(likert_levels, 50, replace = TRUE))%>%
  mutate(across(everything(),as.factor))%>%
  as_tibble()%>%
  mutate(across(-var, ~ factor(.x, levels = likert_levels)))
mutate(df, id=row_number()) %>%
  pivot_longer(-c(id, var), names_to="group") %>%
  pivot_wider(names_from=var)%>%
  ggstats::gglikert( "?", 
           facet_rows=vars(group))

解决方案

你可以利用tidyselect语法,直接选中所有分组类别列(即除id和group之外的所有列)替代原代码中的"?"。使用everything(-id, -group)能自动选中所有目标列,无需手动逐个输入列名,尤其适配实际数据中分组类别为复杂字符值的场景。

修改后的完整代码:

library(dplyr)
library(tidyr)
library(ggstats)

set.seed(123)
likert_levels <- c(
  "1" = "Very  Dissatisfied",
  "2" = "Dissatisfied",
  "3" = "Neutral",
  "4" = "Satisfied",
  "5" = "Very  Satisfied")
df = data.frame(
  var = sample(LETTERS, 50, replace = TRUE),
  A = sample(likert_levels, 50, replace = TRUE),
  B = sample(likert_levels, 50, replace = TRUE),
  C = sample(likert_levels, 50, replace = TRUE))%>%
  mutate(across(everything(),as.factor))%>%
  as_tibble()%>%
  mutate(across(-var, ~ factor(.x, levels = likert_levels)))

mutate(df, id=row_number()) %>%
  pivot_longer(-c(id, var), names_to="group") %>%
  pivot_wider(names_from=var)%>%
  ggstats::gglikert(everything(-id, -group), 
                    facet_rows=vars(group))

关键说明

  • everything(-id, -group):everything()会选中所有列,-id, -group用来排除不需要的辅助列,精准定位到所有分组类别列(A-Z)。
  • 这样修改后,不管实际数据中的分组类别数量多少、字符值复杂度如何,都能自动传入gglikert函数,生成对应的Likert图表。

内容的提问来源于stack exchange,提问作者Homer Jay Simpson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:55:13