NHANES数据库数据下载
今天跟大家分享一下如何用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数据库数据下载相关推荐
- GEO数据库数据下载方法总结
GEO数据下载 GEO是生信分析经常用到的数据库.经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的. 方法一:直接从 ...
- GEO数据库数据下载
GEO(Gene Expression Ommius datasets): 该数据库搜集了大量表达谱,甲基化,lncRNA,miRNA,CNV等芯片数据 该数据信息包括了: GPL:GEO Platf ...
- NHANES数据库权重计算
目录 1.复杂多阶段抽样调查 2.如何让你的软件知道抽样设计为复杂多阶段抽样? 3.如何正确选择并计算权重 (1)权重类型(只针对2001年后的数据) (2)权重选择 (3)结合周期计算权重 在讲权重 ...
- 从NCBI当中SRA数据库中下载高通量测序数据
从NCBI当中SRA数据库中下载高通量测序数据 NCBI sra 数据下载 用迅雷替代官方的prefetch批量下载SRA测序数据,更快更稳定! 用别人的数据,发自己的文章 由于大多数杂志在文章发表前 ...
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较 (三)SSIS的简介 (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...
- springboot+mybatis+sqlserver导出数据库数据并实现下载到excel
springboot+mybatis+sqlserver导出数据库数据并实现下载到excel 1.准备工作 1.1 下载一个springboot框架demo 1.2 配置maven 1.3 引入需要的 ...
- tpcc mysql下载_TPCC安装和压测数据库数据表创建生成
下载TPCC-mysql [root@cnbugs1 ~]# git clone https://github.com/Percona-Lab/tpcc-mysql.git 配置TPCC-mysql ...
- mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...
DBexport是一款专业的数据库数据导出工具,支持多数据源导出,目前已测试Oracle,MySQL,SQL_SERVER无明显BUG,目前支持图片种的数据库,支持扩展功能,只要有对应的数据库jar和 ...
- GEO数据库学习一(简介 数据下载 芯片知识)
目录 1.GEO数据库简介 2.从GEO数据库下载数据 2.1使用GEOquery包从GEO数据库下载数据 2.2了解下载函数返回的对象 2.3ExpressionSet对象简单讲解 3.芯片基础知识 ...
最新文章
- 245热图展示微生物组的物种和功能丰度或有无、距离矩阵
- HttpHandler在IIS中的部署问题(扩展名映射)
- how to find your partner
- 《Android UI基础教程》——2.1节创建一个应用
- 【Elasticsearch】es 脑裂
- RabbitMq的基本认识和配置(一)
- NYOJ458 - 小光棍数
- Python numpy中矩阵的用法总结
- 网络安全基础——破解系统密码
- NB-IoT、LoRa、eMTC、Zigbee、Sigfox、WiFi、蓝牙,谁能称霸物联网时代
- k8s dns 添加自定义域名解析
- funcode实验--海底世界(c++实现)
- linux学习之linux百问,不断更新
- 曲速未来 揭秘:以太坊区块链和ERC20代币的技术挑战
- 数学建模笔记 day-03
- 使用Python模拟武侠小说中两派人的一场遭遇战。
- kubeadm init 问题和解决问题记录
- 脂多糖(LPS) 来源于肠炎沙门氏菌, S-型解决方案
- 重复登录问题解决的方案汇总
- 软件分享——Bilibili缓存视频合并软件,m4s音视频合并工具