Skip to content

第 22 课:数据结构与编码

🎯 核心实操目标

通关要求:建立专业的数据字典(Codebook),明确每个变量的名称、标签、值标签、测量类型、缺失值定义。本课你将掌握编码规则设计(含反向题标注),完成 Excel → SPSS/Jamovi/CSV 的格式互转,为下一课数据清洗打好基础。

📋 课前准备(5 分钟自检)

工具/账号

  • [ ] ExcelWPS(编码与字典制作)
  • [ ] Jamovi 2.5+SPSS 29+(变量定义验证)
  • [ ] 第 20 课设计完成的问卷
  • [ ] 第 21 课回收的原始数据(如已发完问卷)

数据/素材

  • [ ] 问卷题项完整列表(含所有变量名)
  • [ ] 反向题清单(来自第 19 课)

应急通道

  • 还没回收数据 → 用 Case A 模拟数据集 case_A_questionnaire.csv 练手
  • Excel 文件过大卡顿 → 转 CSV(取消所有公式与格式)

场景痛点破冰:变量名混乱毁掉分析

"学生回收数据后直接开始跑统计,结果:

  • 变量名是中文长串:'AI 焦虑量表第 1 题' — Jamovi 报错
  • 选项编码混乱:性别有的写"男/女"有的写"1/2"
  • 反向题没标记 — α 系数 0.3
  • 缺失值有的写"99"有的写空 — SPSS 全部当成 99 算入

数据字典是数据分析的合同书—— 没有它,所有后续分析都是在赌运气。"

🗺️ 架构重组:数据字典的 5 字段标准

完整数据字典必须包含每个变量的以下 5 个字段:

字段含义
变量名 Variable Name英文短代号,用于统计软件Anxiety_1
变量标签 Label中文/英文完整描述"AI 学习焦虑第 1 题(认知维度)"
值标签 Value Labels数值对应含义1=非常不同意, 5=非常同意
测量类型 Measure名义/有序/连续Ordinal(李克特 5 点)
缺失值 Missing哪些值代表缺失99 = 缺失,空白 = 缺失

🚀 拆解实战 A:变量命名规范

命名 5 铁律

  1. 全英文(避免中文名导致软件兼容问题)
  2. 下划线分隔(不用空格、不用横杠)
  3. 维度前缀(Anxiety_1 / Strategy_1 / Efficacy_1)
  4. 数字后缀(按问卷顺序编号)
  5. 反向题:原始列保持普通名(如 Anxiety_4),字典里标注"反向题=是";清洗时再生成反转列 Anxiety_4_R = 6 - Anxiety_4(详见第 23 课)

标准命名表(Case A 示例)

ID                  — 受访者编号
Age                 — 年龄(连续)
Gender              — 性别(1=男, 2=女)
Grade               — 年级(1=大一 ~ 4=大四)
Major_Category      — 专业大类(1=文 2=理 3=工 4=艺体)
Anxiety_1           — 焦虑题 1
...
Anxiety_4           — 焦虑反向题(原始列;清洗时生成 Anxiety_4_R = 6 - Anxiety_4)
Strategy_1          — 策略题 1
...
Efficacy_7          — 效能感反向题(原始列;同上生成 Efficacy_7_R)
Duration_Min        — 答题用时(分钟)

🚀 拆解实战 B:编码规则速查

变量类型编码规则
二分名义(性别)1/2 或 0/1男=1, 女=2
多分类名义(专业)1/2/3/4...(顺序无意义)1=文科, 2=理科, 3=工程, 4=艺体
有序(年级)1/2/3/4(顺序有意义)1=大一, 2=大二, 3=大三, 4=大四
李克特 5 点(量表题)1–5(高分代表高同意)1=非常不同意 ~ 5=非常同意
反向题原始列同正向题编码(普通名),分析前生成反转列原始 Anxiety_4Anxiety_4_R = 6 - Anxiety_4
连续(年龄)直接填数字18, 19, 20...
缺失值统一用 99 或空白,不混用99 = 拒答 / 空白 = 跳过

⚠️ 反向题编码的高频踩坑

反向题在数据录入阶段保持原始得分(同意 = 高分), 反转操作在数据清洗时做(公式:新值 = 量表最大值 + 1 - 原值) 错误做法:录入时直接反转 → 后续无法追溯原始反应

🚀 拆解实战 C:Excel 数据字典模板

打开 Excel,按以下结构建立 data_dictionary.xlsx

变量名标签类型取值范围值标签缺失值反向题所属维度
ID受访者编号整数1–N
Gender性别名义1/21=男, 2=女99人口统计
Anxiety_1AI 焦虑题 1有序1–51=非常不同意, 5=非常同意99/空白认知焦虑
Anxiety_4AI 焦虑反向题(原始列,反转后为 Anxiety_4_R)有序1–5同上99/空白认知焦虑
........................

把这张表保存到项目根目录,所有后续分析(清洗/统计/写论文)都以此为准。

🚀 拆解实战 D:让 AI 帮你生成数据字典

markdown
【Role】资深数据架构师 + 统计软件实施顾问。

【任务】根据下方问卷结构,为我生成完整的数据字典 Excel 草稿(表格形式)。

【问卷结构】
- 人口统计: ID, 年龄, 性别(1男 2女), 年级(1-4 大一到大四), 专业大类(1-4 文/理/工/艺体)
- AI 学习焦虑量表(12 题, 5 点 Likert): Anxiety_1 到 Anxiety_12
  - 认知维度: 1-4
  - 情感维度: 5-8
  - 行为维度: 9-12
  - 反向题: 第 4 题
- 学习策略量表(8 题): Strategy_1 到 Strategy_8, 第 8 题反向
- 学业自我效能感量表(7 题): Efficacy_1 到 Efficacy_7, 第 7 题反向

【输出】Markdown 表格,字段:
变量名 | 标签 | 类型 | 取值范围 | 值标签 | 缺失值 | 反向题 | 所属维度

【特殊要求】
- 反向题在"反向题"列标"是",原始列用普通名;约定反转列命名为 原名+_R(如 Anxiety_4_R),由清洗阶段生成
- 缺失值统一标注为"99/空白"
- 测量类型用国际标准: Nominal/Ordinal/Interval/Ratio

🚀 拆解实战 E:Excel → SPSS/Jamovi 数据导入

Excel → Jamovi(推荐)

  1. 在 Excel 中确保第一行是变量名(与字典对应)
  2. 另存为 CSV (Comma delimited) (*.csv) 格式
  3. Jamovi → Open → 选择 CSV → 自动导入
  4. 右键变量列 → Setup → 设置 Measure type / Value labels(按字典填)

Excel → SPSS

  1. 同样另存为 CSV
  2. SPSS → File → Import Data → CSV Data
  3. 跟随向导设置变量名 / 类型
  4. 变量视图(Variable View)填入完整 Value Labels 与 Missing Values

🚀 拆解实战 F:常见数据问题预防

问题预防
中文变量名导致软件崩溃全英文命名
不同问卷平台导出格式不一致统一用问卷星导出 CSV 标准格式
反向题忘记标记数据字典中显式 反向题=是
缺失值与 0 混淆缺失统一用 99 或空白,不用 0
Excel 自动改日期答题时间设为文本格式存储

📦 本课交付物(提交给 AI 初审/讲师抽检)

  • [ ] 完整数据字典(Excel 或 Markdown 表格):含所有变量的 8 字段(变量名/标签/类型/取值/值标签/缺失/反向题/维度)
  • [ ] CSV 原始数据样例:导出问卷星 CSV,截图展示第一行变量名是否符合命名规范
  • [ ] Jamovi/SPSS 变量定义截图:所有变量已配好 Measure type + Value Labels
  • [ ] 反向题标记清单:列出所有反向题(字典标"是"),并约定其反转列为 原名_R

🏁 小结与自测 (Milestone Checklist)

  • [ ] 我的所有变量名是全英文 + 下划线分隔 + 维度前缀
  • [ ] 我的数据字典含完整 8 字段(变量名/标签/类型/取值/值标签/缺失/反向题/维度)
  • [ ] 反向题原始列用普通名、字典标记"反向题=是",反转列统一加 _R 后缀(如 Anxiety_4_R)
  • [ ] 我清楚反向题在录入阶段保持原值,反转操作在下一课清洗时做
  • [ ] 我的缺失值统一用 99 或空白,没有与 0 混淆
  • [ ] 我能用 Excel/CSV 数据导入 Jamovi/SPSS 并配好 Value Labels

助力学者在 AI 时代极速产出高质量学术成果 · 55 课时双轨制 · plan v3.3