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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:03:19