背景
nhanesA R 軟件包的開發(fā)是為了讓研究人員能夠輕松地 從國家健康與營養(yǎng)中探索和檢索數(shù)據(jù) 檢查調(diào)查 (NHANES)恐锣。該調(diào)查評估了整體健康狀況和 在美國對成人和兒童進行營養(yǎng)者填,并進行 由國家衛(wèi)生統(tǒng)計中心(NCHS)提供。NHANES數(shù)據(jù)是 公開提供于:https://www.cdc.gov/nchs/nhanes.htm吁恍,并在 每年有數(shù)以千計的同行評審期刊出版物挫鸽。
NHANES數(shù)據(jù)
自1999年以來缠捌,NHANES調(diào)查一直在持續(xù)進行睬罗,并且 在此期間的調(diào)查被稱為“連續(xù)的NHANES” 與之前的幾項調(diào)查區(qū)分開來。持續(xù)的 NHANES 調(diào)查是 以兩年為間隔分組鲁僚,第一個間隔為 1999-2000.
大多數(shù)NHANES數(shù)據(jù)采用SAS“XPT”格式的表格形式扰魂。這 調(diào)查分為五個公開可用的數(shù)據(jù)類別, 以及需要 訪問前的書面理由和事先批準蕴茴。封裝 nhanesA 主要用于公開可用的數(shù)據(jù)劝评,但有些 與受限訪問數(shù)據(jù)有關(guān)的信息也可以是 檢索。
五個公開可用的數(shù)據(jù)類別是: - 人口統(tǒng)計 (演示) - 飲食 (DIET) - 檢查 (EXAM) - 實驗室 (LAB) - 問卷調(diào)查 (Q)倦淀。括號中的縮寫形式可以是 替換了 nhanesA 命令中的長格式蒋畜。
對于受限訪問數(shù)據(jù),可用表和變量名稱可以 列出撞叽,但無法直接下載數(shù)據(jù)姻成。指示 nhanes中的有限訪問數(shù)據(jù)功能,使用: - Limited (LTD)
列出 NHANES 表
為了快速熟悉 NHANES 數(shù)據(jù)愿棋,顯示 表列表科展。使用 nhanesTables 獲取有關(guān)以下表的信息 適用于給定年份的給定類別。
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
請注意糠雨,兩年調(diào)查間隔從奇數(shù)年開始才睹。為 為方便起見,只需輸入一個 4 位數(shù)的年份,即可產(chǎn)生相同的輸出琅攘。nhanesTables('EXAM', 2005)``nhanesTables('EXAM', 2006)
列出 NHANES 表中的變量
查看輸出后垮庐,我們決定對表感興趣 “BMX_D”,包含身體測量數(shù)據(jù)坞琴。為了更好地確定是否 表是感興趣的哨查,我們可以在表上顯示詳細信息 使用 nhanesTableVars 的內(nèi)容。
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 是一個主題 用于聯(lián)接跨表的信息的標(biāo)識符寒亥。
導(dǎo)入 NHANES 表
現(xiàn)在,我們將BMX_D與人口統(tǒng)計表一起導(dǎo)入DEMO_D荧关。
bmx_d <- nhanes('BMX_D')
demo_d <- nhanes('DEMO_D')
我們合并表格并顯示幾個變量溉奕。請注意, 與大多數(shù)分類變量一樣羞酗,RIAGENDR 是一個編碼字段腐宋。默認情況下紊服, 原始編碼值 (1,2) 轉(zhuǎn)換為 (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
應(yīng)用代碼翻譯
默認情況下,nhanes 函數(shù)將轉(zhuǎn)換編碼值吆玖。自 確保變量的正確解釋筒溃,建議始終 與默認選項 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掷匠,但可以 設(shè)置高達1024滥崩。此外,至少具有兩個類別的列 (例如 Male讹语、Female)將被翻譯钙皮,但 mincategories 可以設(shè)置為 1 執(zhí)行翻譯,即使只有一個類別 目前。
下載完整的調(diào)查問卷
nhanesA 的主要目標(biāo)是實現(xiàn)完全可定制 處理選定的 NHANES 表株灸。但是崇摄,這很容易 使用 nhanesA 函數(shù)下載整個調(diào)查。假設(shè)我們想下載 2007-2008年調(diào)查中的每份問卷慌烧。我們首先得到一個列表 使用 namesonly = TRUE 的 nhanesTables 來命名表逐抑。這些表可以 然后使用 NHANES 和 Lapply 下載。
q2007names <- nhanesTables('Q', 2007, namesonly=TRUE)
q2007tables <- lapply(q2007names, nhanes)
names(q2007tables) <- q2007names
特殊情況
某些 NHANES 測量需要特殊處理屹蚊,例如由于 統(tǒng)計注意事項厕氨。此外,還進行了調(diào)查 在連續(xù)調(diào)查范圍之外汹粤,但在 類似的格式命斧,使得 nhanesA 可以很容易地適應(yīng)檢索 他們的數(shù)據(jù)。請注意嘱兼,nhanesA 不能用于處理加速度計 2003-2006年的數(shù)據(jù)国葬。有關(guān)這些數(shù)據(jù),請參閱軟件包加速計芹壕。
大流行前的數(shù)據(jù)
由于新冠疫情汇四,2019-2020 年周期的數(shù)據(jù)收集沒有 完成。為了更好地利用收集到的數(shù)據(jù)踢涌,數(shù)據(jù) 從2017-2018年的調(diào)查中納入了具有代表性的樣本 2017 年至 2020 年 3 月大流行前的數(shù)據(jù)通孽。表結(jié)構(gòu)和變量 大流行前表格的格式與標(biāo)準基本相同 連續(xù)的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) 數(shù)據(jù)從 1999-2006年潘明。 發(fā)現(xiàn)這些數(shù)據(jù)包含更多的缺失 值比平時值高行剂,并應(yīng)用多重插補過程來填充 在缺失和無效值中。更多信息可以在 https://wwwn.cdc.gov/nchs/nhanes/dxa/dxa.aspx 上找到钳降。由 默認情況下厚宰,DXA 數(shù)據(jù)將導(dǎo)入到 R 環(huán)境中,但是牲阁, 由于表非常大固阁,因此可能需要保存數(shù)據(jù) 添加到本地文件,然后根據(jù)需要導(dǎo)入到 R城菊。當(dāng) nhanesTranslate 是 應(yīng)用于 DXA 數(shù)據(jù)备燃,僅將 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 全國青年健身調(diào)查 (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 存儲庫非常廣泛测垛,因此執(zhí)行 有針對性的搜索捏膨,以識別相關(guān)的表和變量。有 幾個nhanesA函數(shù)食侮,允許用戶使用不同的搜索 條件号涯,包括變量描述、變量名稱和表 名稱模式锯七。
搜索 NHANES 變量的完整列表
為每個數(shù)據(jù)維護 NHANES 變量的綜合列表 群链快。例如,人口統(tǒng)計變量可在 https://wwwn.cdc.gov/nchs/nhanes/search/variablelist.aspx?Component=Demographics 上獲得眉尸。 nhanesSearch 功能允許調(diào)查員輸入搜索詞域蜗, 與綜合變量描述匹配,并檢索 匹配變量的列表噪猾。匹配搜索詞(變量描述 必須包含其中一個字詞)和獨占搜索字詞(可變 描述不得包含任何排他性條款)可能會提供霉祸。這 搜索可以限制在特定的調(diào)查范圍以及特定的 數(shù)據(jù)組。
# 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 是一個通用的搜索函數(shù)畏妖,因為它導(dǎo)入了 綜合變量列表到數(shù)據(jù)框脉执。這允許詳細 變量的條件提取疼阔。但是戒劫,每次調(diào)用 nhanesSearch 最多需要一分鐘或更長時間來處理。更快的處理速度 當(dāng)我們知道感興趣的特定變量的名稱時婆廊,可以實現(xiàn) 我們只尋找與變量名稱完全匹配的變量迅细。功能 nhanesSearchVarName 直接匹配 html 中的給定變量名稱, 然后淘邻,只有匹配的元素才會轉(zhuǎn)換為數(shù)據(jù)框茵典。 因此,對 nhanesSearchVarName 的調(diào)用執(zhí)行速度比 nhanes搜索;通常在 30 歲以下宾舅。 nhanesSearchVarName 可用于 查找包含給定變量的所有數(shù)據(jù)表统阿。
#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
按名稱模式搜索表
為了對調(diào)查中的數(shù)據(jù)進行分組,列出所有數(shù)據(jù)很有用 遵循給定命名模式的可用表筹我。功能 nhanesSearchTableNames 用于此類模式匹配扶平。例如 如果我們想使用所有可用的身體測量數(shù)據(jù),我們可以檢索 具有 nhanesSearchTableNames('BMX') 的可用表的完整列表蔬蕊。 搜索是在綜合表列表上進行的结澄,這要多 小于綜合變量列表,使得調(diào)用 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