NHANES数据下载、提取、合并操作详解

官方
阅读 41 0 收藏 0 2025-05-20 19:00:00

1、NHANES数据下载

登录官网,NHANES数据库无需注册账号即可使用,打HANES数据库的数据网站即可找到NHANES各个周期数据。

官方网站:

https://wwwn.cdc.gov/nchs/nhanes/Default.aspx

点击想选择的周期即可进入对应的周期数据页面(以NHANES 2013-2014为例);

可以看到NHANES主要提供五类数据,分别为:人口统计学数据、膳食数据、检查数据、实验室检查数据和问卷数据

以人口统计学数据为例,进入后会提供Doc File、Data File和Data Pulished(数据释放时间)三个部分。其中Doc File点击进入会提供本数据集的组成描述。其中SEQN为NHANES调查对象的识别符,通过SEQN合并同一调查对象的各个变量信息。

点击Data File下会提供相应数据集的下载,下载格式为.xpt格式。建议同一周期的不同数据集下载在同一文件夹,方便数据读取合并和清洗。

2、R语言数据提取以及合并(以2015-2016和2017-2018两个周期数据为例)

  • 载入所需要的包

  • 自定义函数合并数据

  • 将下载下来的数据按需合并好数据

  • 根据Doc File描述和研究需求将自己需要的字段整理到label表中

  • 将合并好的数据和整理好的字段表进行匹配,将所需的数据提取出来

  • 合并多个周期数据

代码文本:

library(foreign)
library(dplyr)
#2015-2016
setwd("D:/NHANES/2015")
filename <-list.files()
data1 <-read.xport(filename[1])
for(i in2:length(filename)){
  file<-read.xport(filename[i], na.strings ="NULL")
  data1 <-merge(data1, file, by ='SEQN'all=TRUE) # 修正变量名和参数
data1$cycle<-"2015-2016"
names(data1)
#2017-2018
setwd("D:/NHANES/2017")
filename <-list.files()
data2 <-read.xport(filename[1])
for(i in2:length(filename)){
  file<-read.xport(filename[i], na.strings ="NULL")
  data2 <-merge(data2, file, by ='SEQN'all=TRUE) # 修正变量名和参数
data2$cycle<-"2017-2018"
#读取自定义的表格,内含所需变量code
var<-readxl::read_xlsx("D:/NHANES/variable.xlsx",sheet=1)
colnames(var)
data1_cbind<-cbind(data1[,grepl('SEQN|SDMVPSU|SDMVSTRA|^WT',colnames(data1))],
                   data1[,colnames(data1)%in%var$code])
names(data1_cbind)
data2_cbind<-cbind(data2[,grepl('SEQN|SDMVPSU|SDMVSTRA|^WT',colnames(data2))],
                   data2[,colnames(data2)%in%var$code])
names(data2_cbind)
#合并不同周期数据
data<-bind_rows(data1_cbind,data2_cbind)
names(data)

评论列表

发表评论