1.前言

继前面孟德尔随机化的代码分享,应粉丝要求出一篇关于NHANES数据库的数据整理入门教程

前面MR代码:全代码分享|R语言孟德尔随机化怎么做?TwoSampleMR包MR一套标准流程

2.数据库界面

NHANES(National Health and Nutrition Examination Survey,全国健康和营养调查)是美国进行的一项重要的、周期性的调查,由美国疾病控制与预防中心(CDC)的国家健康统计中心(NCHS)负责实施。这项调查旨在评估美国民众的健康和营养状况,并收集与健康和疾病相关的数据。

NHANES的数据通过两个主要途径收集:

  1. 问卷调查:参与者通过面对面访谈完成问卷,提供各种健康相关信息。
  2. 医学检查:在移动检查中心(MECs)进行,包括一系列的物理测量和实验室测试。

重要性:
NHANES数据库对公共卫生政策具有深远影响。政策制定者、研究人员和卫生专业人员使用这些数据来:

  • 评估美国人口的健康风险。
  • 制定针对特定健康问题的公共卫生策略和干预措施。
  • 监测关键的健康指标和趋势,如肥胖、糖尿病和心血管疾病。
  • 进行流行病学研究,建立健康和营养的关联性。

目前是仅可访问2020年前的数据:

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

3.下载数据

3.1 网页下载

这里取2017-2020年为例,可用数据为该五项,占且叫之为栏目:

  • 人口统计数据(Demographics)
  • 饮食数据(Dietary)
  • 检查数据(Examination)
  • 实验室数据(Laboratory)
  • 问卷数据(Questionnaire)

这里随便点了个Laboratory Data - Metals - Urine,直接点击下载即可,这个网页下载的优点就是速度快,因为文件一般都很小,有梯无梯差不多,只要能访问的都很快。

然后直接在R中read_xpt打开即可

nhanesA 是一个R语言的软件包,它旨在方便用户访问和分析来自NHANES数据库的数据。这个包通过提供直接与NHANES数据库交互的函数,简化了下载和管理NHANES数据的流程。例如,它可以帮助用户检索某个特定年份的调查数据,进行子集分析,以及提供数据摘要等功能。

library(haven)
library(nhanesA)
library(tidyverse)
mydata <- read_xpt("P_UM.XPT")

下载完毕~

3.2 用R包下载

回到刚刚栏目页面,点击这里这个链接

第一列是每个研究指标的变量,我们只要关注例如P_UM这列即可,这个编号是独一无二的

确定完编号后在R中运行,相对于网页下载的优点就是可以写循环,批量下载

mydata1 <- nhanes('P_UM')
colnames(mydata)
# [1] "SEQN"     "WTSAPRP"  "URXUBA"   "URDUBALC" "URXUCD"   "URDUCDLC" "URXUCO"   "URDUCOLC" "URXUCS"   "URDUCSLC" "URXUMO"   "URDUMOLC" "URXUMN"  
# [14] "URDUMNLC" "URXUPB"   "URDUPBLC" "URXUSB"   "URDUSBLC" "URXUSN"   "URDUSNLC" "URXUTL"   "URDUTLLC" "URXUTU"   "URDUTULC"

4.整合导出数据

## 提取自己想要的列
dat<- mydata %>% select(SEQN, # 序列号
                         URXUBA, # 钡
                         URXUCD, # 镉
                         URXUCO, # 钴
                         URXUCS # 铯
                         ) 
                         
## 根据样本合并列
head(dat)
# # A tibble: 6 × 5
# SEQN URXUBA URXUCD URXUCO URXUCS
# <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
#   1 109266  0.359  0.039  0.214   2.16
# 2 109270  2.42   0.868  0.449   9.64
# 3 109273  0.37   0.213  0.274   2.33
# 4 109274  1.72   0.184  0.482   2.80
# 5 109287  7.53   0.215  0.303   2.85
# 6 109288  0.271  0.039  0.097   5.98
head(ghb)
# SEQN LBXGH
# 1 109264   5.3
# 2 109266   5.2
# 3 109271   5.6
# 4 109273   5.1
# 5 109274   5.7
# 6 109277   5.3
result <- merge(ghb,dat)
head(result)
# SEQN LBXGH URXUBA URXUCD URXUCO URXUCS
# 1 109266   5.2  0.359  0.039  0.214  2.160
# 2 109273   5.1  0.370  0.213  0.274  2.330
# 3 109274   5.7  1.720  0.184  0.482  2.803
# 4 109290   8.4  0.720  0.631  0.379 11.910
# 5 109295   5.3  1.270  0.039  0.323  4.145
# 6 109300   5.4  0.690  0.166  0.171  2.129
write.table(result,"result.txt",quote = F,sep = "\t",row.names = F)
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐