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

R语言ggplot绘制多选项分类变量条形图:合并多选项计数

处理Qualtrics多选数据并正确统计绘图

要解决这个问题,核心是把逗号分隔的多选条目拆分成单独的选项行,这样就能让R1和R2的计数自动包含多选的部分,同时自然排除"R1,R2"这个组合类别。以下是两种实现方式:

方法一:使用tidyverse(推荐)

tidyverse里的separate_rows()函数可以快速拆分逗号分隔的字符串,非常适合处理这类Qualtrics导出的多选数据:

# 加载所需包
library(tidyverse)

# 原始数据
data <- data.frame('reason'=c(rep('R1', 5),rep('R2', 3),rep('R1,R2', 4)))

# 拆分多选条目:将每个逗号分隔的选项拆为单独行
data_cleaned <- data %>%
  separate_rows(reason, sep = ",")

# 绘制条形图
ggplot(data = data_cleaned, aes(x = reason)) +
  geom_bar() +
  coord_flip()

处理后的数据会把每条"R1,R2"拆成两行(分别是R1和R2),此时geom_bar()统计的R1总数为5+4=9,R2总数为3+4=7,且不会显示组合类别。

方法二:使用Base R

如果不想加载额外包,也可以用Base R的strsplit()和unlist()实现:

# 原始数据
data <- data.frame('reason'=c(rep('R1', 5),rep('R2', 3),rep('R1,R2', 4)))

# 拆分并重构数据框
split_reasons <- strsplit(data$reason, ",")
data_cleaned_base <- data.frame(reason = unlist(split_reasons))

# 绘制条形图
ggplot(data = data_cleaned_base, aes(x = reason)) +
  geom_bar() +
  coord_flip()

两种方法最终的绘图效果完全一致,都能满足你的需求。

内容的提问来源于stack exchange,提问作者mariodrumblue

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:50:36