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-2016setwd("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-2018setwd("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"#读取自定义的表格,内含所需变量codevar<-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)





评论列表