nhanes数据库R包nhanesA
背景
nhanesA R 软件包的开发是为了让研究人员能够轻松地 从国家健康与营养中探索和检索数据 检查调查 (NHANES)。该调查评估了整体健康状况和 在美国对成人和儿童进行营养,并进行 由国家卫生统计中心(NCHS)提供。NHANES数据是 公开提供于:https://www.cdc.gov/nchs/nhanes.htm,并在 每年有数以千计的同行评审期刊出版物。
NHANES数据
自1999年以来,NHANES调查一直在持续进行,并且 在此期间的调查被称为“连续的NHANES” 与之前的几项调查区分开来。持续的 NHANES 调查是 以两年为间隔分组,第一个间隔为 1999-2000.
大多数NHANES数据采用SAS“XPT”格式的表格形式。这 调查分为五个公开可用的数据类别, 以及需要 访问前的书面理由和事先批准。封装 nhanesA 主要用于公开可用的数据,但有些 与受限访问数据有关的信息也可以是 检索。
五个公开可用的数据类别是: - 人口统计 (演示) - 饮食 (DIET) - 检查 (EXAM) - 实验室 (LAB) - 问卷调查 (Q)。括号中的缩写形式可以是 替换了 nhanesA 命令中的长格式。
对于受限访问数据,可用表和变量名称可以 列出,但无法直接下载数据。指示 nhanes中的有限访问数据功能,使用: - Limited (LTD)
列出 NHANES 表
为了快速熟悉 NHANES 数据,显示 表列表。使用 nhanesTables 获取有关以下表的信息 适用于给定年份的给定类别。
library(nhanesA)
nhanesTables('EXAM', 2005)
## Data.File.Name Data.File.Description
## 1 BPX_D Blood Pressure
## 2 BMX_D Body Measures
## 3 AUX_D Audiometry
## 4 AUXTYM_D Audiometry - Tympanometry
## 5 DXXFEM_D Dual Energy X-ray Absorptiometry - Femur
## 6 OPXFDT_D Ophthalmology - Frequency Doubling Technology
## 7 OHX_D Oral Health
## 8 PAXRAW_D Physical Activity Monitor
## 9 VIX_D Vision
## 10 DXXAG_D Dual Energy X-ray Absorptiometry - Android/Gynoid
## 11 AUXAR_D Audiometry - Acoustic Reflex
## 12 OPXRET_D Ophthalmology - Retinal Imaging
## 13 DXXSPN_D Dual Energy X-ray Absorptiometry - Spine
请注意,两年调查间隔从奇数年开始。为 为方便起见,只需输入一个 4 位数的年份,即可产生相同的输出。nhanesTables('EXAM', 2005)``nhanesTables('EXAM', 2006)
列出 NHANES 表中的变量
查看输出后,我们决定对表感兴趣 “BMX_D”,包含身体测量数据。为了更好地确定是否 表是感兴趣的,我们可以在表上显示详细信息 使用 nhanesTableVars 的内容。
nhanesTableVars('EXAM', 'BMX_D')
## Variable.Name Variable.Description
## 1 BMDSTATS Body Measures Component status Code
## 2 BMIARMC Arm Circumference Comment
## 3 BMIARML Upper Arm Length Comment
## 4 BMICALF Maximal Calf Comment
## 5 BMIHEAD Head Circumference Comment
## 6 BMIHT Standing Height Comment
## 7 BMILEG Upper Leg Length Comment
## 8 BMIRECUM Recumbent Length Comment
## 9 BMISUB Subscapular Skinfold Comment
## 10 BMITHICR Thigh Circumference Comment
## 11 BMITRI Triceps Skinfold Comment
## 12 BMIWAIST Waist Circumference Comment
## 13 BMIWT Weight Comment
## 14 BMXARMC Arm Circumference (cm)
## 15 BMXARML Upper Arm Length (cm)
## 16 BMXBMI Body Mass Index (kg/m**2)
## 17 BMXCALF Maximal Calf Circumference (cm)
## 18 BMXHEAD Head Circumference (cm)
## 19 BMXHT Standing Height (cm)
## 20 BMXLEG Upper Leg Length (cm)
## 21 BMXRECUM Recumbent Length (cm)
## 22 BMXSUB Subscapular Skinfold (mm)
## 23 BMXTHICR Thigh Circumference (cm)
## 24 BMXTRI Triceps Skinfold (mm)
## 25 BMXWAIST Waist Circumference (cm)
## 26 BMXWT Weight (kg)
## 27 SEQN Respondent sequence number.
我们看到表 BMX_D 中有 27 列。 SEQN 是一个主题 用于联接跨表的信息的标识符。
导入 NHANES 表
现在,我们将BMX_D与人口统计表一起导入DEMO_D。
bmx_d <- nhanes('BMX_D')
demo_d <- nhanes('DEMO_D')
我们合并表格并显示几个变量。请注意, 与大多数分类变量一样,RIAGENDR 是一个编码字段。默认情况下, 原始编码值 (1,2) 转换为 (Male, Female)。
bmx_demo <- merge(demo_d, bmx_d)
options(digits=4)
select_cols <- c('RIAGENDR', 'BMXHT', 'BMXWT', 'BMXLEG', 'BMXCALF', 'BMXTHICR')
print(bmx_demo[5:8,select_cols], row.names=FALSE)
## RIAGENDR BMXHT BMXWT BMXLEG BMXCALF BMXTHICR
## Female 156.0 75.2 38.0 36.6 53.7
## Male 167.6 69.5 40.4 35.6 48.0
## Female 163.7 45.0 39.2 31.7 41.3
## Male 182.4 101.9 41.5 42.6 50.5
显示代码本
对于每个变量,NHANES 都提供了一个代码本,这是一个基本的 变量的描述,还包括分布或范围 的值。我们可以使用 nhanesCodebook 列出 表DEMO_D中的性别字段RIAGENDR。
nhanesCodebook('DEMO_D', 'RIAGENDR')
## $`Variable Name`
## [1] "RIAGENDR"
##
## $`SAS Label`
## [1] "Gender"
##
## $`English Text`
## [1] "Gender of the sample person"
##
## $Target
## [1] "Both males and females 0 YEARS -\r 150 YEARS"
##
## $RIAGENDR
## Code.or.Value Value.Description Count Cumulative Skip to Item
## 1 1 Male 5080 5080 NA
## 2 2 Female 5268 10348 NA
## 3 . Missing 0 10348 NA
应用代码翻译
默认情况下,nhanes 函数将转换编码值。自 确保变量的正确解释,建议始终 与默认选项 translate = TRUE 一起使用。 但是,您也可以手动自定义编码字段的翻译 使用 nhanesTranslate。编码字段的自定义翻译是三个 步骤过程。1:使用 nhanes 下载表,translate = FALSE 2:选择要翻译的表变量 3:传递表和 变量列表到 nhanes翻译nhanes
bpx_d <- nhanes('BPX_D', translate=FALSE)
head(bpx_d[,6:11])
## BPQ150A BPQ150B BPQ150C BPQ150D BPAARM BPACSZ
## 1 NA NA NA NA NA NA
## 2 2 2 2 2 1 3
## 3 1 2 2 2 1 4
## 4 2 2 2 2 1 3
## 5 2 2 2 2 1 4
## 6 2 2 2 2 1 4
bpx_d_vars <- nhanesTableVars('EXAM', 'BPX_D', namesonly=TRUE)
#Alternatively may use bpx_d_vars = names(bpx_d)
bpx_d <- nhanesTranslate('BPX_D', bpx_d_vars, data=bpx_d)
## Translated columns: BPAARM BPACSZ BPAEN2 BPAEN3 BPAEN4 BPQ150A BPQ150B BPQ150C BPQ150D BPXPTY BPXPULS PEASCCT1 PEASCST1
head(bpx_d[,6:11])
## BPQ150A BPQ150B BPQ150C BPQ150D BPAARM BPACSZ
## 1 <NA> <NA> <NA> <NA> <NA> <NA>
## 2 No No No No Right Adult (12X22)
## 3 Yes No No No Right Large (15X32)
## 4 No No No No Right Adult (12X22)
## 5 No No No No Right Large (15X32)
## 6 No No No No Right Large (15X32)
在将编码列翻译为 代码翻译可能很长。为了提高可读性, 翻译字符串的默认长度限制为 128,但可以 设置高达1024。此外,至少具有两个类别的列 (例如 Male、Female)将被翻译,但 mincategories 可以设置为 1 执行翻译,即使只有一个类别 目前。
下载完整的调查问卷
nhanesA 的主要目标是实现完全可定制 处理选定的 NHANES 表。但是,这很容易 使用 nhanesA 函数下载整个调查。假设我们想下载 2007-2008年调查中的每份问卷。我们首先得到一个列表 使用 namesonly = TRUE 的 nhanesTables 来命名表。这些表可以 然后使用 NHANES 和 Lapply 下载。
q2007names <- nhanesTables('Q', 2007, namesonly=TRUE)
q2007tables <- lapply(q2007names, nhanes)
names(q2007tables) <- q2007names
特殊情况
某些 NHANES 测量需要特殊处理,例如由于 统计注意事项。此外,还进行了调查 在连续调查范围之外,但在 类似的格式,使得 nhanesA 可以很容易地适应检索 他们的数据。请注意,nhanesA 不能用于处理加速度计 2003-2006年的数据。有关这些数据,请参阅软件包加速计。
大流行前的数据
由于新冠疫情,2019-2020 年周期的数据收集没有 完成。为了更好地利用收集到的数据,数据 从2017-2018年的调查中纳入了具有代表性的样本 2017 年至 2020 年 3 月大流行前的数据。表结构和变量 大流行前表格的格式与标准基本相同 连续的NHANES。表名称包括前缀“P_”。要列出 大流行前的表格,使用“P”或“p”作为年份。
#List all pre-pandemic tables
nhanesSearchTableNames('^P_')
#List table variables
nhanesTableVars('EXAM', 'P_AUX', namesonly=TRUE)
#List pre-pandemic EXAM tables
nhanesTables('EXAM', 'P')
#Table import, variable translation, and codebook display operate as usual
p_dxxfem <- nhanes('P_DXXFEM')
nhanesTranslate('P_BMX', 'BMDSTATS')
nhanesCodebook('P_INS', 'LBDINSI')
双能 X 射线吸收测定法
双能 X 射线吸收测定法 (DXA) 数据从 1999-2006年。 发现这些数据包含更多的缺失 值比平时值高,并应用多重插补过程来填充 在缺失和无效值中。更多信息可以在 https://wwwn.cdc.gov/nchs/nhanes/dxa/dxa.aspx 上找到。由 默认情况下,DXA 数据将导入到 R 环境中,但是, 由于表非常大,因此可能需要保存数据 添加到本地文件,然后根据需要导入到 R。当 nhanesTranslate 是 应用于 DXA 数据,仅将 2005-2006 年换算表用作 这些是目前 html 中唯一可用的 DXA 代码 格式。
#Import into R
dxx_b <- nhanesDXA(2001)
#Save to file
nhanesDXA(2001, destfile="dxx_b.xpt")
#Import supplemental data
dxx_c_s <- nhanesDXA(2003, suppl=TRUE)
#Apply code translations
dxalist <- c('DXAEXSTS', 'DXIHE')
dxx_b <- nhanesTranslate("dxxb",colnames=dxalist, data=dxx_b, dxa=TRUE)
NHANES 全国青年健身调查 (NNYFS)
NNYFS 是 2012 年的一项辅助研究,旨在评估身体活动 以及 3-15 岁儿童和青少年的健身水平。本研究 由问卷和基本测量组成。没有实验室 表。NNYFS 表名包含前缀“Y_”。要列出表,请使用 “Y”或“y”作为年份。
#List NNYFS EXAM tables
nhanesTables('EXAM', 'Y')
#Table import and variable translation operate as usual
y_cvx <- nhanes('Y_CVX')
nhanesTranslate('Y_CVX','CVXPARC')
搜索表和变量
NHANES 存储库非常广泛,因此执行 有针对性的搜索,以识别相关的表和变量。有 几个nhanesA函数,允许用户使用不同的搜索 条件,包括变量描述、变量名称和表 名称模式。
搜索 NHANES 变量的完整列表
为每个数据维护 NHANES 变量的综合列表 群。例如,人口统计变量可在 https://wwwn.cdc.gov/nchs/nhanes/search/variablelist.aspx?Component=Demographics 上获得。 nhanesSearch 功能允许调查员输入搜索词, 与综合变量描述匹配,并检索 匹配变量的列表。匹配搜索词(变量描述 必须包含其中一个字词)和独占搜索字词(可变 描述不得包含任何排他性条款)可能会提供。这 搜索可以限制在特定的调查范围以及特定的 数据组。
# nhanesSearch use examples
#
# Search on the word bladder, restrict to the 2001-2008 surveys,
# print out 50 characters of the variable description
nhanesSearch("bladder", ystart=2001, ystop=2008, nchar=50)
#
# Search on "urin" (will match urine, urinary, etc), from 1999-2010, return table names only
nhanesSearch("urin", ignore.case=TRUE, ystop=2010, namesonly=TRUE)
#
# Search on "urin", exclude "During", search surveys from 1999-2010, return table names only
nhanesSearch("urin", exclude_terms="during", ignore.case=TRUE, ystop=2010, namesonly=TRUE)
#
# Restrict search to 'EXAM' and 'LAB' data groups. Explicitly list matching and exclude terms, leave ignore.case set to default value of FALSE. Search surveys from 2009 to present.
nhanesSearch(c("urin", "Urin"), exclude_terms=c("During", "eaten during", "do during"), data_group=c('EXAM', 'LAB'), ystart=2009)
#
# Search on "tooth" or "teeth", all years
nhanesSearch(c("tooth", "teeth"), ignore.case=TRUE)
#
# Search for variables where the variable description begins with "Tooth"
nhanesSearch("^Tooth")
搜索包含特定变量的表
nhanesSearch 是一个通用的搜索函数,因为它导入了 综合变量列表到数据框。这允许详细 变量的条件提取。但是,每次调用 nhanesSearch 最多需要一分钟或更长时间来处理。更快的处理速度 当我们知道感兴趣的特定变量的名称时,可以实现 我们只寻找与变量名称完全匹配的变量。功能 nhanesSearchVarName 直接匹配 html 中的给定变量名称, 然后,只有匹配的元素才会转换为数据框。 因此,对 nhanesSearchVarName 的调用执行速度比 nhanes搜索;通常在 30 岁以下。 nhanesSearchVarName 可用于 查找包含给定变量的所有数据表。
#nhanesSearchVarName use examples
nhanesSearchVarName('BPXPULS')
## [1] "BPX_D" "BPX_E" "BPX" "BPX_C" "BPX_B" "BPX_F" "BPX_G" "BPX_H" "BPX_I"
## [10] "BPX_J"
nhanesSearchVarName('CSQ260i', includerdc=TRUE, nchar=38, namesonly=FALSE)
## Variable.Name Variable.Description Data.File.Name
## 1 CSQ260i Do you now have any of the following p CSX_G_R
## 2 CSQ260i Do you now have any of the following p CSX_H
## Data.File.Description Begin.Year EndYear Component Use.Constraints
## 1 Taste & Smell 2012 2012 Examination RDC Only
## 2 Taste & Smell 2013 2014 Examination None
按名称模式搜索表
为了对调查中的数据进行分组,列出所有数据很有用 遵循给定命名模式的可用表。功能 nhanesSearchTableNames 用于此类模式匹配。例如 如果我们想使用所有可用的身体测量数据,我们可以检索 具有 nhanesSearchTableNames('BMX') 的可用表的完整列表。 搜索是在综合表列表上进行的,这要多 小于综合变量列表,使得调用 nhanesSearchTableNames 只需几秒钟。
# nhanesSearchTableNames use examples
nhanesSearchTableNames('BMX')
## [1] "BMX_D" "BMX" "BMX_E" "BMX_C" "BMX_B" "BMX_F" "BMX_H" "BMX_G" "BMX_I"
## [10] "BMX_J" "P_BMX"
nhanesSearchTableNames('HPVS', includerdc=TRUE, nchar=42, details=TRUE)
## Years Doc.File Data.File Date.Published
## 1 2009-2010 HPVSER_F Doc HPVSER_F Data [XPT - 171.6 KB] November 2013
## 2 2007-2008 HPVSER_E Doc HPVSER_E Data [XPT - 155.7 KB] November 2013
## 3 2005-2006 HPVSER_D Doc HPVSER_D Data [XPT - 151.6 KB] July 2013
## 4 2005-2006 HPVSRM_D Doc HPVSRM_D Data [XPT - 302.6 KB] January 2015
## 5 2007-2008 HPVSWR_E Doc HPVSWR_E Data [XPT - 677.9 KB] August 2012
## 6 2009-2010 HPVSWR_F Doc HPVSWR_F Data [XPT - 725.2 KB] August 2012
## 7 2011-2012 HPVSWR_G Doc HPVSWR_G Data [XPT - 661.1 KB] March 2015
## 8 2005-2006 HPVSWR_D Doc HPVSWR_D Data [XPT - 694.4 KB] Updated November 2018
## 9 2013-2014 HPVSWR_H Doc HPVSWR_H Data [XPT - 716.6 KB] December 2016
## 10 2015-2016 HPVSWC_I Doc HPVSWC_I Data [XPT - 33.3 KB] November 2018
## 11 2015-2016 HPVSWR_I Doc HPVSWR_I Data [XPT - 667.5 KB] November 2018
## 12 2005-2006 HPVS_D_R Doc RDC Only July 2013
## 13 2009-2010 HPVS_F_R Doc RDC Only August 2012
## 14 2011-2012 HPVS_G_R Doc RDC Only March 2015
## 15 2013-2014 HPVS_H_R Doc RDC Only December 2016
## 16 2015-2016 HPVS_I_R Doc RDC Only November 2018
## 17 2017-2018 HPVS_J_R Doc RDC Only December 2020