如何在R中拆分多选问题选项并制作频次柱状图
R处理逗号分隔多选数据并绘制柱状图
步骤1:加载所需工具包
使用tidyverse集合包,它包含了数据拆分、统计和绘图的核心工具:
library(tidyverse)
步骤2:准备数据
假设你的数据框名为df,其中reason列是存储逗号分隔离职原因的变量:
# 模拟示例数据(替换为你的实际数据即可) df <- tibble( respondent = 1:5, reason = c( "薪资低, 工作压力大", "职业发展受限", "薪资低, 人际关系复杂", "工作压力大, 职业发展受限", "薪资低" ) )
步骤3:拆分选项并统计选中次数
用separate_rows()把每个逗号分隔的选项拆成单独行,再统计每个选项的选中频次:
df_clean <- df %>% # 拆分逗号+任意空格分隔的选项,同时去除选项前后多余空格 separate_rows(reason, sep = ",\\s*") %>% mutate(reason = str_trim(reason)) %>% # 统计每个原因的选中次数 count(reason, name = "选中次数")
步骤4:绘制基础柱状图
用ggplot2生成柱状图,直观展示各选项的选中情况:
ggplot(df_clean, aes(x = reason, y = `选中次数`)) + geom_col(fill = "#4292C6") + # 设置柱子填充色 labs( title = "离职原因选中次数统计", x = "离职原因", y = "选中次数" ) + theme_minimal() + theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转x轴标签避免重叠
额外提示
- 如果选项存在大小写或格式不一致(比如"薪资低"和"薪资低 "),可以用
str_to_lower()统一格式 - 若原始数据中逗号后无空格,只需将
sep参数改为","即可
内容的提问来源于stack exchange,提问作者Mark217
相关产品推荐
相关产品推荐

