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

请求:在R中对指定Likert量表列进行分析、统计与可视化分步指导

R中Likert量表数据处理、汇总与可视化分步指导

1. 准备工作:安装并加载所需包

# 首次运行时安装必要包
install.packages(c("googlesheets4", "dplyr", "janitor", "likert", "ggplot2"))

# 加载包
library(googlesheets4)
library(dplyr)
library(janitor)
library(likert)
library(ggplot2)

2. 导入并筛选数据

读取目标数据集,仅保留第11-14列:

# 读取公开Google Sheets数据
df <- read_sheet("1Kje8K4Ow_Io4wdMikntO1vB-g12fLzJK5fPEBYRhIFE")

# 提取第11至14列
likert_cols <- df[, 11:14]

3. 数据预处理:转换为Likert因子格式

将数值型的量表列转换为带标签的因子,确保统计和可视化逻辑准确:

# 定义Likert标签对应关系
likert_labels <- c("完全不同意", "不同意", "中等同意", "同意", "完全同意")

# 批量转换为因子
likert_cols <- likert_cols %>%
  mutate(across(everything(), ~ factor(., levels = 1:5, labels = likert_labels)))

4. 生成统计汇总

4.1 各分值的计数与占比

快速输出每列的频数、百分比及总计:

# 循环处理每一列
for (col_name in names(likert_cols)) {
  cat("\n=== ", col_name, " 统计结果 ===\n")
  print(
    tabyl(likert_cols[[col_name]]) %>% 
      adorn_pct_formatting(digits = 1) %>% 
      adorn_totals("row")
  )
}

4.2 描述性统计(总和、均值、标准差)

将因子转回数值后计算核心统计量:

# 计算并整理描述性统计结果
descriptive_stats <- likert_cols %>%
  # 因子转数值
  mutate(across(everything(), ~ as.numeric(as.character(.)))) %>%
  # 计算总和、均值、标准差
  summarise(across(everything(), list(
    sum = sum,
    mean = ~ round(mean(.), 2),
    sd = ~ round(sd(.), 2)
  ))) %>%
  # 调整格式为易读的宽表
  pivot_longer(everything(), names_sep = "_", names_to = c("变量", "统计量")) %>%
  pivot_wider(names_from = "统计量", values_from = "value")

print(descriptive_stats)

5. Likert量表可视化

方法1:用likert包快速生成专业图表

# 转换为likert对象
likert_obj <- likert(likert_cols)

# 绘图并优化样式
plot(likert_obj) +
  ggtitle("Likert量表响应分布") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

方法2:用ggplot2自定义绘图

# 整理数据为长格式
likert_long <- likert_cols %>%
  pivot_longer(everything(), names_to = "问题", values_to = "响应") %>%
  count(问题, response) %>%
  group_by(问题) %>%
  mutate(百分比 = n / sum(n) * 100)

# 绘制横向堆叠条形图
ggplot(likert_long, aes(x = 问题, y = 百分比, fill = response)) +
  geom_bar(stat = "identity", position = "fill") +
  scale_fill_brewer(palette = "RdYlBu") +
  coord_flip() +
  theme_minimal() +
  labs(title = "Likert量表响应分布", y = "百分比", x = "问题")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:15:18