RigorMed
← 科研资源

NHANES 文件合并指南

NHANES 数据文件怎么合并?

把合并规则写成可检查的文件交接说明 可请求的产物/交付目标: 合并规则说明、组件匹配核对表和样本流转记录草稿。

数据准备与样本流转

先核对两个文件是否属于同一调查周期、是否都是参与者一行,再用 SEQN 检查一对一匹配。合并后的行数变化,要拆开看组件适用人群、文件匹配和字段特殊编码,不能统称为缺失或失访。

本文只演示 CDC/NCHS 公开发布的 2017–2018 人口学文件 DEMO_J 与血压/胆固醇问卷文件 BPQ_J 的同周期横向合并。它回答的是文件和样本流转问题,不报告高血压患病率、效应估计或因果结论。下列人数来自两份官方 XPT 文件的 SEQN 汇总,并与相应 Codebook 核对。

把这项任务交给RigorMed:材料、产物与核对

  1. 把合并规则写成可检查的文件交接说明

    下面是建议任务输入与整理目标,不是本轮实跑或客户成效;是否执行及具体交付仍须核对材料、能力与确认结果。

    需要提供的材料: 已确认周期、官方文件清单、SEQN和记录粒度说明、已有匹配汇总。

    可请求的产物/交付目标: 合并规则说明、组件匹配核对表和样本流转记录草稿。

  2. 可直接改写的任务输入

    依据我提供的组件与实际汇总,整理文件合并顺序、SEQN关系、适用人群和匹配核对表,标出需测试的一对多情况;没有执行记录就不声称合并成功。

  3. 如何检查结果

    本页真实计数来自所列官方文件;不能把它们复制成你的数据或把组件不适用叫失访。

先固定来源与记录粒度

两个文件均为 NHANES 2017–2018 公共发布组件;不要把不同周期或一人多行的组件直接套进本例。

示例文件、适用范围与合并前检查
文件需要确认本例核对结果
DEMO_J.XPT人口学 Codebook、SEQN、RIDAGEYR;确认一人一行9,254 行;SEQN 非空且不重复;其中 6,161 人年龄 ≥16 岁
BPQ_J.XPT血压问卷 Codebook、SEQN、BPQ020;确认适用年龄和一人一行6,161 行;SEQN 非空且不重复;官方说明适用于 16 岁及以上参与者

BPQ_J 的适用范围来自该组件的 Eligible Sample 和 BPQ020 Codebook。人口学文件的人数不是 BPQ020 的研究分母;先把组件适用条件和合并键核对清楚,再定义具体问题的纳排规则。

按 SEQN 合并前后做五次核对

  1. 只取同周期官方文件

    从下方 CDC/NCHS 文件链接取得 DEMO_J.XPT 和 BPQ_J.XPT,并打开各自 Codebook。记录周期、组件、访问日期、适用人群和变量定义;不要用文件名相似或第三方镜像替代来源核验。

  2. 先查键,而不是直接拼列

    分别统计行数、非空 SEQN 个数与重复 SEQN 个数。本例 DEMO_J 为 9,254 个唯一键,BPQ_J 为 6,161 个唯一键,两边均无空键或重复键,因此本例可检查参与者一对一合并。若出现一对多或重复键,应先回到组件文档确认记录粒度,不要任意去重。

  3. 用外连接审计匹配,再选择分析所需的连接方式

    按 SEQN 做保留两侧来源标记的外连接:两侧都有为 6,161,只有 DEMO_J 为 3,093,只有 BPQ_J 为 0。若以 DEMO_J 为左表,左连接仍为 9,254 行,但 3,093 行没有 BPQ 字段;内连接或以 BPQ_J 为基准则为 6,161 行。连接方式是研究问题与组件适用人群的选择,不是为了得到较大的数字。

  4. 解释 3,093 人,而不是命名为失访

    检查 DEMO_J 中仅左侧的记录:本例 3,093 人全部未满 16 岁;其余 6,161 名 16 岁及以上参与者均与 BPQ_J 匹配。这与 BPQ_J 的官方年龄范围一致。这个 3,093 是本例组件适用范围造成的文件差异,不能称为纵向随访中的失访,也不能推广到其他周期或组件。

  5. 再查字段编码与研究样本

    BPQ020 问的是是否曾被医生或其他卫生专业人员告知患高血压,不是本次实测血压。Codebook 与文件均显示回答“是”2,137、“否”4,014、“不知道”10;如果预设分析仅保留“是/否”,可用回答人数为 6,151,而不是把编码 9 当作数值或把这 10 人归因于文件合并。后续研究还须另行定义年龄、其他字段缺失、适用权重、分层与 PSU。

把两类人数变化分开记

下表是本例官方文件的未加权人数核对,不是总体估计或正式分析的纳排流程。

2017–2018 DEMO_J 与 BPQ_J 的示例样本流转
核对阶段人数应如何解释
DEMO_J 参与者9,254人口学组件全部记录;SEQN 唯一
仅在 DEMO_J3,093本例均未满 16 岁;不在 BPQ_J 的适用年龄范围内
DEMO_J 与 BPQ_J 匹配6,161两侧 SEQN 一对一;BPQ_J 单侧为 0
BPQ020 为“是”或“否”6,151另有 10 个“不知道”;仅用于说明字段编码检查,非正式研究样本

可复算口径:分别读取两份官方 XPT,只取 SEQN(人口学另取 RIDAGEYR,问卷另取 BPQ020);先验证每侧 SEQN 唯一,再对两侧 SEQN 做外连接并统计 both、left_only、right_only;在 left_only 中统计 RIDAGEYR < 16,最后按 BPQ020 Codebook 统计 1、2、9。上述计数也可用 R、SAS 或 Python 重算,不依赖某一种软件的自动筛选。

同周期横向合并,不等于跨周期拼接

这里的 SEQN 合并是把同周期两个参与者级文件按同一个人横向链接。跨周期分析还要追加不同周期记录,并逐项核对变量定义、测量方法、编码、设计与权重;不能把本例的连接方式、人数或权重直接套到另一周期。

本例没有执行复杂抽样估计,也不代表 RigorMed 能自动合并任意 NHANES 文件。正式研究应先冻结问题和纳排规则,核对实际组件的 Analytic Notes,再选择适用的调查权重、分层、PSU 与缺失处理。

常见问题

为什么人口学有 9,254 人,血压问卷只有 6,161 人?

本例 BPQ_J 官方适用年龄为 16 岁及以上。两文件核对显示,人口学单侧的 3,093 人全部未满 16 岁;不能把人数差直接说成数据丢失、拒答或失访。

所有 NHANES 文件都能按 SEQN 一对一合并吗?

不能。先看每个组件的一行代表一个参与者、一次记录还是其他粒度,并查空键与重复键。只有当前组件和周期证实一对一时,才能沿用本例的匹配检查。

合并后 6,161 人就是正式统计样本吗?

不是。BPQ020 还有特殊回答编码,其他研究变量也有自己的适用人群和缺失。正式样本取决于预先定义的问题、纳排条件、完整数据、调查权重和分析方案。

核验来源

以下官方来源核验于 2026 年 9 月 28 日 / RigorMed: 2026-10-13,页面发布前将再次检查访问条件和更新时间。

  1. CDC/NCHS:2017–2018 DEMO_J 人口学数据与 Codebook
  2. CDC/NCHS:2017–2018 DEMO_J 官方 XPT 文件
  3. CDC/NCHS:2017–2018 BPQ_J 问卷数据与 Codebook
  4. CDC/NCHS:2017–2018 BPQ_J 官方 XPT 文件
  5. CDC/NCHS:2023–2024 SAS 合并代码示例(仅参考连接方法)
  6. CDC/NCHS:NHANES 调查方法与分析指南

带着材料和产物目标开始

把合并规则写成可检查的文件交接说明

登录工作台,说明你有权使用的材料和希望拿到的产物,可改写上面的任务输入。按执行前材料与积分提示确认,再核对实际交付中的依据、数字和待确认项。