今天跟大家分享一下如何用R包nhanesA下载NHANES数据

以一个简单的研究目的为例:使用NHANES数据库中的数据构建一个舒张压的预测模型。

根据该研究目的,整理纳入分析的周期和变量:

①研究周期:2013-2014年;

②因变量:舒张压;

③自变量:性别、年龄、种族、婚姻状态、收缩压、吸烟和饮酒;

④抽样调查相关信息:weights、strata、psu(这部分数据比较特殊,至于为什么要下载这些数据,下一篇推文跟大家介绍权重的时候再详细说)。


目录

0、NHANES数据库数据存储结构

1、 下载与加载包

2、查询指定年份和指定分类中的表格

3、 查找表格中包含的字段

4、下载数据

5、选择相应变量

6、翻译分类变量

7、下载EXAM分类中的数据

8、下载存放表格未知的变量

9、 连表


0、NHANES数据库数据存储结构

NHANES数据库的数据主要分为五个公开数据类别和一个受限访问数据,其中五个公开数据类别分别为:

  • DEMO:人口统计学

  • DIET: 饮食

  • EXAM: 检查

  • LAB: 实验室指标

  • Q: 问卷调查

为了方便大家理解,我们绘制了一张NHANES数据存储结构脑图

1、 下载与加载包

install.packages("nhanesA")
install.packages("knitr")
install.packages("tidyverse")
install.packages("plyr")
library(nhanesA)
library(knitr)
library(tidyverse)
library(plyr)

2、查询指定年份和指定分类中的表格

用 nhanesTables()方法可查看5个分类中各有哪些表格,以2013-2014年的人口统计学资料为例:

# data_group=DEMO/DIET/EXAM/LAB/Q, year写入一个周期中的奇数年份即可
nhanesTables(data_group = 'DEMO', year = 2013)

可以看到2013年的人口统计学资料表叫做DEMO_H,其中H代表2013年的索引,若查询的是2015年的人口统计学资料,便是DEMO_I。

3、 查找表格中包含的字段

我们知道了2013年的人口统计学资料表叫做DEMO_H后,可以用以下代码查询该表格中包含了哪些字段,以及每个字段的描述

kable(nhanesTableVars(data_group = 'DEMO', nh_table = 'DEMO_H', namesonly = FALSE))

我们用同样的方式观察一下血压所在表BPX_H中相关字段与描述

kable(nhanesTableVars(data_group = 'EXAM', nh_table = 'BPX_H', namesonly = FALSE))

如果想要对表和字段有更深的了解,我们可以用以下代码,跳转到NHANES官网,查看表和字段的说明

browseNHANES(data_group = 'EXAM', nh_table = 'BPX_H')

4、下载数据

用nhanes()方法可直接在R中下载指定表格(这里以人口统计学数据为例)

demo <- nhanes('DEMO_H')

下载时如果出错,多重试几次,如果重试多次还是下载不了,也可以把官方的XPT文件下载到本地,然后用以下代码加载(这里以2013-2014的DEMO_H为例)

library(haven)
demo <- read_xpt(file ='DEMO_H.xpt')

5、选择相应变量

下载完成后,我们根据研究目的选择变量。本案例需要的性别、年龄、种族、婚姻状态以及weights、strata、psu都是在人口统计资料中,用以下代码从demo中选择这些变量

demo1 <- demo %>% select(SEQN, # 序列号
RIAGENDR, # 性别
RIDAGEYR, # 年龄
RIDRETH3, # 种族
DMDMARTL, # 婚姻状况
WTINT2YR,WTMEC2YR, # 权重
SDMVPSU, # psu
SDMVSTRA) # strata

6、翻译分类变量

直接下载下来的分类变量是以1、2等数字表示,如上图中的性别和种族等,用以下代码,将数字翻译成其所代表的含义

demo_vars <- names(demo1)
demo2 <- nhanesTranslate('DEMO_H', demo_vars, data=demo1)

在翻译过程中,可能会出现如下图所示警告,这是由于有些字段不是分类变量,不需要翻译,所以我们可以忽略这个警告

最后翻译完成的数据,如下图所示

7、下载EXAM分类中的数据

其中收缩压和舒张压数据位于BPX_H表格中

bpx <- nhanes('BPX_H')
bpx1 <- bpx %>% select(SEQN, # 序列号
BPXDI1, # 舒张压
BPXSY1) # 收缩压

8、下载存放表格未知的变量

对于一些不知道在哪个表格里的变量,可以在官网进行关键词搜索,链接如下

https://wwwn.cdc.gov/nchs/nhanes/search/default.aspx

以吸烟数据为例

可以看到有很多不同的数据集都包含了吸烟信息

然后我们根据描述,选取适合我们研究目的的变量,我们这里选择SMQ040: "你现在是否吸烟?"(也可以通过查看详细描述后再选择更加适合自己研究目的的变量)

进入2013-2014 Questionnaire页面后,我们会看到Q分类下所有的表格,再找到我们所需要的SMQ040字段所在的表SMQ_H,点击SMQ_H DOC可以查看该表格以及表中字段的具体信息

查到吸烟数据对应的表格和字段后,用以下代码下载表格并选取字段

smq <-  nhanes('SMQ_H')
smq1 <- smq %>% select(SEQN, # 序列号
SMQ040) # 你现在吸烟吗?# 用同样的方式查询并下载饮酒数据
alq <- nhanes('ALQ_H')
alq1 <- alq %>% select(SEQN, # 序列号
ALQ130) # 过去12个月每天饮酒量

9、 连表

此时我们有了以下4个表

  • 人口统计学资料表:demo2

  • 血压数据表:bpx1

  • 吸烟数据表:smq1

  • 饮酒数据表:alq1

根据序列号‘SEQN’将4个表连接成一个表,用来进行后续的分析(SEQN是NHANES数据库中被调查者的唯一标识)

# 方式1:逐张连表
data <- demo2 %>% full_join(bpx1, by = 'SEQN') %>% full_join(alq1, by = 'SEQN')
# 方式2:全部连表
data <- join_all(list(demo2, bpx1, alq1, smq1), by = 'SEQN', type = 'full')

至此生成的data就是研究目的所需要的所有数据了

需要注意的是由于NHANES中数据抽样方法的复杂性,这份数据不能够直接利用传统的统计方法进行分析。至于如何正确分析,我们将在后续的推文中跟大家介绍!


NHANES数据库数据下载相关推荐

  1. GEO数据库数据下载方法总结

    GEO数据下载 GEO是生信分析经常用到的数据库.经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的. 方法一:直接从 ...

  2. GEO数据库数据下载

    GEO(Gene Expression Ommius datasets): 该数据库搜集了大量表达谱,甲基化,lncRNA,miRNA,CNV等芯片数据 该数据信息包括了: GPL:GEO Platf ...

  3. NHANES数据库权重计算

    目录 1.复杂多阶段抽样调查 2.如何让你的软件知道抽样设计为复杂多阶段抽样? 3.如何正确选择并计算权重 (1)权重类型(只针对2001年后的数据) (2)权重选择 (3)结合周期计算权重 在讲权重 ...

  4. 从NCBI当中SRA数据库中下载高通量测序数据

    从NCBI当中SRA数据库中下载高通量测序数据 NCBI sra 数据下载 用迅雷替代官方的prefetch批量下载SRA测序数据,更快更稳定! 用别人的数据,发自己的文章 由于大多数杂志在文章发表前 ...

  5. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...

     本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    (三)SSIS的简介    (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...

  6. springboot+mybatis+sqlserver导出数据库数据并实现下载到excel

    springboot+mybatis+sqlserver导出数据库数据并实现下载到excel 1.准备工作 1.1 下载一个springboot框架demo 1.2 配置maven 1.3 引入需要的 ...

  7. tpcc mysql下载_TPCC安装和压测数据库数据表创建生成

    下载TPCC-mysql [root@cnbugs1 ~]# git clone https://github.com/Percona-Lab/tpcc-mysql.git 配置TPCC-mysql ...

  8. mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...

    DBexport是一款专业的数据库数据导出工具,支持多数据源导出,目前已测试Oracle,MySQL,SQL_SERVER无明显BUG,目前支持图片种的数据库,支持扩展功能,只要有对应的数据库jar和 ...

  9. GEO数据库学习一(简介 数据下载 芯片知识)

    目录 1.GEO数据库简介 2.从GEO数据库下载数据 2.1使用GEOquery包从GEO数据库下载数据 2.2了解下载函数返回的对象 2.3ExpressionSet对象简单讲解 3.芯片基础知识 ...

最新文章

  1. 245热图展示微生物组的物种和功能丰度或有无、距离矩阵
  2. HttpHandler在IIS中的部署问题(扩展名映射)
  3. how to find your partner
  4. 《Android UI基础教程》——2.1节创建一个应用
  5. 【Elasticsearch】es 脑裂
  6. RabbitMq的基本认识和配置(一)
  7. NYOJ458 - 小光棍数
  8. Python numpy中矩阵的用法总结
  9. 网络安全基础——破解系统密码
  10. NB-IoT、LoRa、eMTC、Zigbee、Sigfox、WiFi、蓝牙,谁能称霸物联网时代
  11. k8s dns 添加自定义域名解析
  12. funcode实验--海底世界(c++实现)
  13. linux学习之linux百问,不断更新
  14. 曲速未来 揭秘:以太坊区块链和ERC20代币的技术挑战
  15. 数学建模笔记 day-03
  16. 使用Python模拟武侠小说中两派人的一场遭遇战。
  17. kubeadm init 问题和解决问题记录
  18. 脂多糖(LPS) 来源于肠炎沙门氏菌, S-型解决方案
  19. 重复登录问题解决的方案汇总
  20. 软件分享——Bilibili缓存视频合并软件,m4s音视频合并工具

热门文章

  1. 微信小程序入坑: 写一个简化版知乎日报
  2. 软件测试-常见BUG分享
  3. CAD制图初学入门常见问题秘笈,助你摆脱节后综合症!(上)
  4. Mocha AE CC 6 简单工作流程
  5. 如何拆分PDF文件?简单几步轻松拆分
  6. “咖哥”变身数据侦探,手撕商业分析实战
  7. 120328 HP惠普电脑忽然变慢的原因
  8. 三菱5u 上位机mc协议_上位机读写三菱plc fx5u的内存数据示例
  9. 什么样的员工必须开除
  10. python3 爬虫相关学习7:使用 BeautifulSoup下载网页图片到本地文件夹