diff --git a/DESCRIPTION b/DESCRIPTION index 1946ff6..d59829c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: nhanesA -Version: 0.6.5.2 -Date: 2021-01-24 +Version: 0.6.5.3 +Date: 2021-01-30 Title: NHANES Data Retrieval Author: Christopher J. Endres Maintainer: Christopher J. Endres diff --git a/R/nhanes.R b/R/nhanes.R index 087229c..9af9fc4 100644 --- a/R/nhanes.R +++ b/R/nhanes.R @@ -56,6 +56,8 @@ nh_years['2017'] <- "2017-2018" nh_years['2018'] <- "2017-2018" nh_years['2019'] <- "2019-2020" nh_years['2020'] <- "2019-2020" +nh_years['2021'] <- "2021-2022" +nh_years['2022'] <- "2021-2022" # Continuous NHANES table names have a letter suffix that indicates the collection interval data_idx <- list() @@ -73,6 +75,7 @@ data_idx["H"] <- '2013-2014' data_idx["I"] <- '2015-2016' data_idx["J"] <- '2017-2018' data_idx["K"] <- '2019-2020' +data_idx["L"] <- '2021-2022' anomalytables2005 <- c('CHLMD_DR', 'SSUECD_R', 'HSV_DR') @@ -441,6 +444,10 @@ nhanesAttr <- function(nh_table) { nhanesSearch <- function(search_terms=NULL, exclude_terms=NULL, data_group=NULL, ignore.case=FALSE, ystart=NULL, ystop=NULL, includerdc=FALSE, nchar=100, namesonly=FALSE) { + if(is.null(search_terms)) { + stop("Search term is missing") + } + # Need to loop over url's df_initialized = FALSE @@ -457,7 +464,7 @@ nhanesSearch <- function(search_terms=NULL, exclude_terms=NULL, data_group=NULL, if(length(vnodes) > 0){ if(!df_initialized) { df <- t(sapply(lapply(vnodes,xml_children),xml_text)) %>% as.data.frame(stringsAsFactors=FALSE) - df_intialized = TRUE + df_initialized = TRUE } else { dfadd <- t(sapply(lapply(vnodes,xml_children),xml_text)) %>% as.data.frame(stringsAsFactors=FALSE) df <- rbind(df, dfadd) @@ -471,14 +478,19 @@ nhanesSearch <- function(search_terms=NULL, exclude_terms=NULL, data_group=NULL, } names(df) <- vmcols - if(!is.null(search_terms)) { - idx <- grep(paste(search_terms,collapse="|"), df[['Variable.Description']], ignore.case=ignore.case, value=FALSE) - if(length(idx) > 0) {df <- df[idx,]} - } - + # Remove rdc tables if desired if(includerdc == FALSE){ df <- df[(df$Use.Constraints != "RDC Only"),] } + + # + if(!is.null(search_terms)) { + idx <- grep(paste(search_terms,collapse="|"), df[['Variable.Description']], ignore.case=ignore.case, value=FALSE) + if(length(idx) > 0) {df <- df[idx,]} else { + message("No matches found") + return(NULL) + } + } if(!is.null(data_group)){ # Restrict search to specific data group(s) e.g. 'EXAM' or 'LAB' sgroups <- list() diff --git a/vignettes/Introducing_nhanesA.R b/vignettes/Introducing_nhanesA.R index 6f198a4..4ab8198 100644 --- a/vignettes/Introducing_nhanesA.R +++ b/vignettes/Introducing_nhanesA.R @@ -1,30 +1,31 @@ -## ----nhanestables-------------------------------------------------------- +## ----nhanestables------------------------------------------------------------- library(nhanesA) nhanesTables('EXAM', 2005) -## ----nhanestablevars----------------------------------------------------- +## ----nhanestablevars---------------------------------------------------------- nhanesTableVars('EXAM', 'BMX_D') -## ----nhanes-------------------------------------------------------------- +## ----nhanes------------------------------------------------------------------- bmx_d <- nhanes('BMX_D') demo_d <- nhanes('DEMO_D') -## ----bmx1---------------------------------------------------------------- +## ----bmx1--------------------------------------------------------------------- bmx_demo <- merge(demo_d, bmx_d) options(digits=4) -aggregate(cbind(BMXHT, BMXWT, BMXLEG, BMXCALF, BMXTHICR) ~ RIAGENDR, bmx_demo,mean) +select_cols <- c('RIAGENDR', 'BMXHT', 'BMXWT', 'BMXLEG', 'BMXCALF', 'BMXTHICR') +print(bmx_demo[5:8,select_cols], row.names=FALSE) -## ----nhanestranslate----------------------------------------------------- +## ----nhanestranslate---------------------------------------------------------- nhanesTranslate('DEMO_D', 'RIAGENDR') -## ----bmx2---------------------------------------------------------------- -levels(as.factor(demo_d$RIAGENDR)) +## ----bmx2--------------------------------------------------------------------- demo_d <- nhanesTranslate('DEMO_D', 'RIAGENDR', data=demo_d) -levels(demo_d$RIAGENDR) bmx_demo <- merge(demo_d, bmx_d) -aggregate(cbind(BMXHT, BMXWT, BMXLEG, BMXCALF, BMXTHICR)~RIAGENDR, bmx_demo, mean) -## ----nhanestranslate2---------------------------------------------------- +## ----bmx_final_result--------------------------------------------------------- +print(bmx_demo[5:8,select_cols], row.names=FALSE) + +## ----nhanestranslate2--------------------------------------------------------- bpx_d <- nhanes('BPX_D') head(bpx_d[,6:11]) bpx_d_vars <- nhanesTableVars('EXAM', 'BPX_D', namesonly=TRUE) @@ -32,12 +33,12 @@ bpx_d_vars <- nhanesTableVars('EXAM', 'BPX_D', namesonly=TRUE) bpx_d <- suppressWarnings(nhanesTranslate('BPX_D', bpx_d_vars, data=bpx_d)) head(bpx_d[,6:11]) -## ----nhaneslapplytables, eval=FALSE-------------------------------------- +## ----nhaneslapplytables, eval=FALSE------------------------------------------- # q2007names <- nhanesTables('Q', 2007, namesonly=TRUE) # q2007tables <- lapply(q2007names, nhanes) # names(q2007tables) <- q2007names -## ----nhanesdxa, eval=FALSE----------------------------------------------- +## ----nhanesdxa, eval=FALSE---------------------------------------------------- # #Import into R # dxx_b <- nhanesDXA(2001) # #Save to file @@ -48,7 +49,7 @@ head(bpx_d[,6:11]) # dxalist <- c('DXAEXSTS', 'DXITOT', 'DXIHE') # dxx_b <- nhanesTranslate(colnames=dxalist, data=dxx_b, dxa=TRUE) -## ----nhanessearch, eval=FALSE-------------------------------------------- +## ----nhanessearch, eval=FALSE------------------------------------------------- # # nhanesSearch use examples # # # # Search on the word bladder, restrict to the 2001-2008 surveys, @@ -70,13 +71,13 @@ head(bpx_d[,6:11]) # # Search for variables where the variable description begins with "Tooth" # nhanesSearch("^Tooth") -## ----nhanessearchvarname------------------------------------------------- +## ----nhanessearchvarname------------------------------------------------------ #nhanesSearchVarName use examples nhanesSearchVarName('BPXPULS') nhanesSearchVarName('CSQ260i', includerdc=TRUE, nchar=38, namesonly=FALSE) -## ----nhanessearchtablenames---------------------------------------------- +## ----nhanessearchtablenames--------------------------------------------------- # nhanesSearchTableNames use examples nhanesSearchTableNames('BMX') nhanesSearchTableNames('HPVS', includerdc=TRUE, nchar=42, details=TRUE) diff --git a/vignettes/Introducing_nhanesA.Rmd b/vignettes/Introducing_nhanesA.Rmd index f2ae1a8..d3566a2 100644 --- a/vignettes/Introducing_nhanesA.Rmd +++ b/vignettes/Introducing_nhanesA.Rmd @@ -59,11 +59,12 @@ bmx_d <- nhanes('BMX_D') demo_d <- nhanes('DEMO_D') ``` -We then merge the tables and compute average values by gender for several variables: +We merge the tables and display several variables: ```{r bmx1} bmx_demo <- merge(demo_d, bmx_d) options(digits=4) -aggregate(cbind(BMXHT, BMXWT, BMXLEG, BMXCALF, BMXTHICR) ~ RIAGENDR, bmx_demo,mean) +select_cols <- c('RIAGENDR', 'BMXHT', 'BMXWT', 'BMXLEG', 'BMXCALF', 'BMXTHICR') +print(bmx_demo[5:8,select_cols], row.names=FALSE) ``` ### Translation of Coded Values @@ -73,13 +74,15 @@ NHANES uses coded values for many fields. In the preceding example, gender is co nhanesTranslate('DEMO_D', 'RIAGENDR') ``` -If desired, we can use nhanesTranslate to apply the code translation to demo\_d directly by assigning data=demo\_d. +If desired, we can use nhanesTranslate to apply the code translation to demo\_d directly by assigning data=demo\_d. ```{r bmx2} -levels(as.factor(demo_d$RIAGENDR)) demo_d <- nhanesTranslate('DEMO_D', 'RIAGENDR', data=demo_d) -levels(demo_d$RIAGENDR) bmx_demo <- merge(demo_d, bmx_d) -aggregate(cbind(BMXHT, BMXWT, BMXLEG, BMXCALF, BMXTHICR)~RIAGENDR, bmx_demo, mean) +``` + +The RIAGENDR field is now recoded as Male, Female instead of 1,2. +```{r bmx_final_result} +print(bmx_demo[5:8,select_cols], row.names=FALSE) ``` ### Apply All Possible Code Translations to a Table diff --git a/vignettes/Introducing_nhanesA.html b/vignettes/Introducing_nhanesA.html index 56c1cdc..9a04c90 100644 --- a/vignettes/Introducing_nhanesA.html +++ b/vignettes/Introducing_nhanesA.html @@ -1,45 +1,56 @@ - + - + - + - + Introducing nhanesA + + + + + @@ -303,7 +133,7 @@

Introducing nhanesA

Christopher J. Endres

-

2019-06-21

+

2021-01-30

@@ -321,8 +151,8 @@

NHANES Data

List NHANES Tables

To quickly get familiar with NHANES data, it is helpful to display a listing of tables. Use nhanesTables to get information on tables that are available for a given category for a given year.

- +
library(nhanesA)
+nhanesTables('EXAM', 2005)
##    Data.File.Name                             Data.File.Description
 ## 1           BPX_D                                    Blood Pressure
 ## 2           BMX_D                                     Body Measures
@@ -336,14 +166,13 @@ 

List NHANES Tables

## 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 -## 14 DXX_D Dual-Energy X-ray Absorptiometry - Whole Body
+## 13 DXXSPN_D Dual Energy X-ray Absorptiometry - Spine

Note that the two-year survey intervals begin with the odd year. For convenience, only a single 4-digit year is entered such that nhanesTables('EXAM', 2005) and nhanesTables('EXAM', 2006) yield identical output.

List Variables in an NHANES Table

After viewing the output, we decide we are interested in table ‘BMX_D’ that contains body measures data. To better determine if that table is of interest, we can display detailed information on the table contents using nhanesTableVars.

- +
nhanesTableVars('EXAM', 'BMX_D')
##    Variable.Name                Variable.Description
 ## 1       BMDSTATS Body Measures Component status Code
 ## 2        BMIARMC           Arm Circumference Comment
@@ -377,46 +206,48 @@ 

List Variables in an NHANES Table

Import NHANES Tables

We now import BMX_D along with the demographics table DEMO_D.

- +
bmx_d  <- nhanes('BMX_D')
## Processing SAS dataset BMX_D      ..
- +
demo_d <- nhanes('DEMO_D')
## Processing SAS dataset DEMO_D     ..
-

We then merge the tables and compute average values by gender for several variables:

- -
##   RIAGENDR BMXHT BMXWT BMXLEG BMXCALF BMXTHICR
-## 1        1 170.0 76.91  40.50   37.48    51.46
-## 2        2 158.9 68.18  37.19   36.89    51.09
+

We merge the tables and display several variables:

+
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
+##         2 156.0  75.2   38.0    36.6     53.7
+##         1 167.6  69.5   40.4    35.6     48.0
+##         2 163.7  45.0   39.2    31.7     41.3
+##         1 182.4 101.9   41.5    42.6     50.5

Translation of Coded Values

NHANES uses coded values for many fields. In the preceding example, gender is coded as 1 or 2. To determine what the values mean, we can list the code translations for the gender field RIAGENDR in table DEMO_D

- +
nhanesTranslate('DEMO_D', 'RIAGENDR')
## $RIAGENDR
 ##   Code.or.Value Value.Description
 ## 1             1              Male
 ## 2             2            Female
 ## 3             .           Missing
-

If desired, we can use nhanesTranslate to apply the code translation to demo_d directly by assigning data=demo_d. 

- -
## [1] "1" "2"
- +

If desired, we can use nhanesTranslate to apply the code translation to demo_d directly by assigning data=demo_d.

+
demo_d <- nhanesTranslate('DEMO_D', 'RIAGENDR', data=demo_d)
## Translated columns: RIAGENDR
- -
## [1] "Male"   "Female"
- -
##   RIAGENDR BMXHT BMXWT BMXLEG BMXCALF BMXTHICR
-## 1     Male 170.0 76.91  40.50   37.48    51.46
-## 2   Female 158.9 68.18  37.19   36.89    51.09
+
bmx_demo <- merge(demo_d, bmx_d)
+

The RIAGENDR field is now recoded as Male, Female instead of 1,2.

+
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

Apply All Possible Code Translations to a Table

An NHANES table may have dozens of columns with coded values. Translating all possible columns is a three step process. 1: Download the table 2: Save a list of table variables 3: Pass the table and variable list to nhanesTranslate

- +
bpx_d <- nhanes('BPX_D')
## Processing SAS dataset BPX_D      ..
- +
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
@@ -424,11 +255,11 @@ 

Apply All Possible Code Translations to a Table

## 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 <- suppressWarnings(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)
@@ -441,56 +272,57 @@ 

Apply All Possible Code Translations to a Table

Downloading a Complete Survey

The primary goal of nhanesA is to enable fully customizable processing of select NHANES tables. However, it is quite easy to download entire surveys using nhanesA functions. Say we want to download every questionnaire in the 2007-2008 survey. We first get a list of the table names by using nhanesTables with namesonly = TRUE. The tables can then be downloaded using nhanes with lapply.

- +
q2007names  <- nhanesTables('Q', 2007, namesonly=TRUE)
+q2007tables <- lapply(q2007names, nhanes)
+names(q2007tables) <- q2007names

Import Dual X-Ray Absorptiometry Data

Dual X-Ray Absorptiometry (DXA) data were acquired from 1999-2006. More information may be found at https://wwwn.cdc.gov/nchs/nhanes/dxa/dxa.aspx. By default the DXA data are imported into the R environment, however, because the tables are quite large it may be desirable to save the data to a local file then import to R as needed. When nhanesTranslate is applied to DXA data, only the 2005-2006 translation tables are used as those are the only DXA codes that are currently available in html format.

- +
#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', 'DXITOT', 'DXIHE')
+dxx_b <- nhanesTranslate(colnames=dxalist, data=dxx_b, dxa=TRUE)

If you are interested in working with accelerometer data from 2003-2006 then please see packages nhanesaccel https://r-forge.r-project.org/R/?group_id=1733 and accelerometry https://cran.r-project.org/package=accelerometry.

Searching across the comprehensive list of NHANES variables

The NHANES repository is extensive, thus it is helpful to perform a targeted search to identify relevant tables and variables. Comprehensive lists of NHANES variables are maintained for each data group. For example, the demographics variables are available at https://wwwn.cdc.gov/nchs/nhanes/search/variablelist.aspx?Component=Demographics. The nhanesSearch function allows the investigator to input search terms, match against the comprehensive variable descriptions, and retrieve the list of matching variables. Matching search terms (variable descriptions must contain one of the terms) and exclusive search terms (variable descriptions must NOT contain any exclusive terms) may be provided. The search can be restricted to a specific survey range as well as specific data groups.

- +
# 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")

Searching for tables that contain a specific variable

nhanesSearch is a versatile search function as it imports the comprehensive variable lists to a data frame. That allows for detailed conditional extraction of the variables. However, each call to nhanesSearch takes up to a minute or more to process. Faster processing can be achieved when we know the name of a specific variable of interest and we look only for exact matches to the variable name. Function nhanesSearchVarName matches a given variable name in the html directly, then only the matching elements are converted to a data frame. Consequently, a call to nhanesSearchVarName executes much faster than nhanesSearch; typically under 30s. nhanesSearchVarName is useful for finding all data tables that contain a given variable.

- -
## [1] "BPX_D" "BPX_E" "BPX"   "BPX_C" "BPX_B" "BPX_F" "BPX_G" "BPX_H" "BPX_I"
- +
#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
@@ -501,48 +333,49 @@ 

Searching for tables that contain a specific variable

Searching for tables by name pattern

In order to group data across surveys, it is useful to list all available tables that follow a given naming pattern. Function nhanesSearchTableNames is used for such pattern matching. For example, if we want to work with all available body measures data we can retrieve the full list of available tables with nhanesSearchTableNames(‘BMX’). The search is conducted over the comprehensive table list, which is much smaller than the comprehensive variable list, such that a call to nhanesSearchTableNames takes only a few seconds.

- -
## [1] "BMX_D" "BMX"   "BMX_E" "BMX_C" "BMX_B" "BMX_F" "BMX_H" "BMX_G" "BMX_I"
- +
# 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"
+
nhanesSearchTableNames('HPVS', includerdc=TRUE, nchar=42, details=TRUE)
##        Years                             Data.File.Name     Doc.File
-## 1  2005-2006 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_D Doc
-## 2  2009-2010 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_F Doc
-## 3  2005-2006 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVS_D_R Doc
-## 4  2007-2008 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_E Doc
-## 5  2005-2006 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_D Doc
-## 6  2005-2006 Human Papillomavirus (HPV) - Multiplexed 6 HPVSRM_D Doc
-## 7  2005-2006 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_D Doc
-## 8  2007-2008 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_E Doc
-## 9  2009-2010 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_F Doc
-## 10 2009-2010 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_F_R Doc
-## 11 2011-2012 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_G_R Doc
-## 12 2011-2012 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_G Doc
-## 13 2005-2006 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_D Doc
-## 14 2013-2014 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_H Doc
-## 15 2013-2014 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_H_R Doc
-## 16 2015-2016 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWC_I Doc
-## 17 2015-2016 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_I Doc
-## 18 2015-2016 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_I_R Doc
+## 1  2009-2010 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_F Doc
+## 2  2005-2006 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVS_D_R Doc
+## 3  2007-2008 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_E Doc
+## 4  2005-2006 Human Papillomavirus (HPV) - 6, 11, 16 & 1 HPVSER_D Doc
+## 5  2005-2006 Human Papillomavirus (HPV) - Multiplexed 6 HPVSRM_D Doc
+## 6  2005-2006 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_D Doc
+## 7  2007-2008 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_E Doc
+## 8  2009-2010 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_F Doc
+## 9  2011-2012 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_G Doc
+## 10 2005-2006 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_D Doc
+## 11 2009-2010 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_F_R Doc
+## 12 2011-2012 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_G_R Doc
+## 13 2013-2014 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_H Doc
+## 14 2013-2014 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_H_R Doc
+## 15 2015-2016 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWC_I Doc
+## 16 2015-2016 Human Papillomavirus (HPV) DNA - Vaginal S HPVSWR_I Doc
+## 17 2015-2016 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_I_R Doc
+## 18 2017-2018 Human Papillomavirus (HPV) DNA - Vaginal S HPVS_J_R Doc
 ##                         Data.File        Date.Published
-## 1  HPVSER_D Data [XPT - 151.6 KB]             July 2013
-## 2  HPVSER_F Data [XPT - 171.6 KB]         November 2013
-## 3                        RDC Only             July 2013
-## 4  HPVSER_E Data [XPT - 155.7 KB]         November 2013
-## 5  HPVSER_D Data [XPT - 151.6 KB]             July 2013
-## 6  HPVSRM_D Data [XPT - 302.6 KB]          January 2015
-## 7    HPVSWR_D Data [XPT - 662 KB]         November 2010
-## 8  HPVSWR_E Data [XPT - 677.9 KB]           August 2012
-## 9  HPVSWR_F Data [XPT - 725.2 KB]           August 2012
-## 10                       RDC Only           August 2012
-## 11                       RDC Only            March 2015
-## 12 HPVSWR_G Data [XPT - 661.1 KB]            March 2015
-## 13 HPVSWR_D Data [XPT - 694.4 KB] Updated November 2018
-## 14 HPVSWR_H Data [XPT - 716.6 KB]         December 2016
-## 15                       RDC Only         December 2016
-## 16  HPVSWC_I Data [XPT - 33.3 KB]         November 2018
-## 17 HPVSWR_I Data [XPT - 667.5 KB]         November 2018
-## 18                       RDC Only         November 2018
+## 1 HPVSER_F Data [XPT - 171.6 KB] November 2013 +## 2 RDC Only July 2013 +## 3 HPVSER_E Data [XPT - 155.7 KB] November 2013 +## 4 HPVSER_D Data [XPT - 151.6 KB] July 2013 +## 5 HPVSRM_D Data [XPT - 302.6 KB] January 2015 +## 6 HPVSWR_D Data [XPT - 694.4 KB] November 2010 +## 7 HPVSWR_E Data [XPT - 677.9 KB] August 2012 +## 8 HPVSWR_F Data [XPT - 725.2 KB] August 2012 +## 9 HPVSWR_G Data [XPT - 661.1 KB] March 2015 +## 10 HPVSWR_D Data [XPT - 694.4 KB] Updated November 2018 +## 11 RDC Only August 2012 +## 12 RDC Only March 2015 +## 13 HPVSWR_H Data [XPT - 716.6 KB] December 2016 +## 14 RDC Only December 2016 +## 15 HPVSWC_I Data [XPT - 33.3 KB] November 2018 +## 16 HPVSWR_I Data [XPT - 667.5 KB] November 2018 +## 17 RDC Only November 2018 +## 18 RDC Only December 2020

Please send any feedback or requests to . Hope you enjoy your experience with nhanesA!

Sincerely,
@@ -553,6 +386,9 @@

Please send any feedback or requests to + +