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

Qualtrics调查数据清洗:多分类因子项汇总及逻辑回归应用问题

Qualtrics多选数据汇总与逻辑回归数据整理

一、解决选项计数汇总问题

你当前的gather代码存在几个问题:列名匹配错误(应为hello_01:hello_03而非hello_3)、count用法不当,且未处理拆分后产生的NA值、未关联选项标签。以下是修正后的完整方案:

先模拟拆分后的数据(与你的场景完全匹配):

df <- data.frame(
  hello_01 = c("1", "1", "3"),
  hello_02 = c("2", "2", NA),
  hello_03 = c("3", NA, NA),
  stringsAsFactors = TRUE
)

执行汇总操作:

library(dplyr)
library(tidyr)

# 定义数字与选项的对应映射
label_map <- tibble(
  value = c("1", "2", "3"),
  behavior = c("Waive", "Smile", "Say 'Hello'")
)

# 生成目标汇总结果
summary_df <- df %>%
  # 将宽格式数据转为长格式
  pivot_longer(cols = starts_with("hello_"), names_to = "col", values_to = "value") %>%
  # 剔除未选择项对应的NA值
  filter(!is.na(value)) %>%
  # 统计每个选项的选择人数
  count(value) %>%
  # 关联选项标签
  left_join(label_map, by = "value") %>%
  # 整理为清晰的结果格式
  select(behavior, n)

运行后summary_df将输出你需要的结果:

behavior n
1        Waive 2
2        Smile 2
3 Say 'Hello' 3

二、整理适合逻辑回归的数据集

逻辑回归要求每个选项作为独立的二元变量(1=选择,0=未选择),可通过以下代码转换:

logreg_df <- df %>%
  pivot_longer(cols = starts_with("hello_"), names_to = "col", values_to = "value") %>%
  filter(!is.na(value)) %>%
  mutate(selected = 1) %>%
  # 转回宽格式,未选择的选项填充0
  pivot_wider(names_from = value, values_from = selected, values_fill = 0) %>%
  # 重命名列名对应实际选项
  rename(
    Waive = `1`,
    Smile = `2`,
    `Say 'Hello'` = `3`
  )

最终logreg_df的结构如下,可直接用于逻辑回归分析:

Waive Smile `Say 'Hello'`
1     1     1             1
2     1     1             0
3     0     0             1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:31:10