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
相关产品推荐
相关产品推荐

