章节摘要:本章接手一桩海难史上的著名案件——1912 年泰坦尼克号沉没,891 条乘客记录里藏着"谁更容易活下来"的答案。但名单又脏又乱:年龄有缺失、票价有离群、字段口径不一。破案主线:先把名单搬进 R,再修补缺口,最后用 dplyr 五连招完成排查统计。
这份数据是数据科学圈最经典的训练案卷之一:每位乘客一条记录,字段包括舱位等级、性别、年龄、票价、登船港口、是否生还。案子的目标是找出与生还相关的因素。真实的原始名单从来不干净——年龄缺了两成、个别票价是 0、个别姓名栏混入特殊符号。所以本章的每一步都围绕"把脏名单整理成可用证据"展开:导入与检视是立案,清洗是修证,dplyr 是排查。
拐点在第 2 节:很多初学者以为缺失值"删了就行",结果一删只剩六成样本,结论随之处分。正确的做法是先问"为什么缺"——年龄缺失与生并无关还是有关?这决定了是插补、单独成类还是保留缺失标记。结论:清洗不是机械操作,每一步都在影响最终结论的可信度。
| 易错点 | 典型症状 | 处方 |
|---|---|---|
| 插补忘 na.rm | median 返回 NA,整列被污染 | 插补代码里 na.rm = TRUE 是标配 |
| 异常即删 | 头等舱天价票被删,高端样本消失 | 先核实,保不住就标记保留 |
| summarize 后带分组 | 后续每步"每组一份",结果翻倍 | 链尾 .groups = "drop" |
| 字符串比较漏引号 | object not found 报错 | 比较的是取值,取值要引号 |
三节走完,名单案可以出具阶段性结论:性别与舱位等级是生还的两大主因素,妇女与儿童在撤离中获得事实上的优先,头等舱的生存优势部分来自舱位位置与登记规范(有舱位记录本身就是生还率的强信号)。年龄缺失约两成,本章用分组插补保证了样本量,但结论表述时仍需注明插补口径。这个"结论 + 口径说明"的成对出现,就是分析可信度的来源——第 5 章讲推断统计时,会给这类差异配上显著性检验,让结论从"看起来差很多"升级为"统计上站得住"。
名单案产出了干净的宽表。下一章的国家发展档案案会追问:如果分析需要把宽表转成长表、把每年数据逐行处理怎么办——那是数据重塑与编程的主场。