mapnhanespa maps physical activity summaries from a study sample onto
population-level quantiles estimated from NHANES accelerometer data.
You can install the development version of mapnhanespa from GitHub with:
# install.packages("pak")
# pak::pak("jhuwit/mapnhanespa")
install.packages("mapnhanespa", repos = c('https://jhuwit.r-universe.dev', 'https://cloud.r-project.org'))
Map one row per participant-measure observation with
map_nhanes_pa_quantiles():
library(mapnhanespa)
study_data <- data.frame(
id = c("P01", "P02", "P03"),
age = c(25, 62, 84),
sex = c("Female", "Male", "Female"),
measure = c("mims", "ssl_steps", "AC"),
value = c(15000, 7500, 1000000)
)
map_nhanes_pa_quantiles(study_data, id = "id")
#> id age sex measure value age_category_pa_map nhanes_quantile
#> 1 P01 25 Female mims 15000 [20,30) 0.5349443
#> 2 P02 62 Male ssl_steps 7500 [60,70) 0.3527381
#> 3 P03 84 Female AC 1000000 [80,85) 0.1322205
The returned age_category_pa_map column shows the NHANES age category
used to select each participant’s CDF. The following example covers all
nine supported summaries:
all_measures <- data.frame(
id = rep("P01", 9),
age = 25,
sex = "Female",
measure = c("total_activity_counts", "total_log10AC", "total_PAXMTSM",
"total_log10PAXMTSM", "total_scsslsteps", "total_scrfsteps",
"total_oaksteps", "total_vssteps", "total_vsrevsteps"),
value = c(2773035, 3039, 14653, 1043, 8694, 11421, 12055, 9505, 9631)
)
map_nhanes_pa_quantiles(all_measures, id = "id")
#> id age sex measure value age_category_pa_map
#> 1 P01 25 Female total_activity_counts 2773035 [20,30)
#> 2 P01 25 Female total_log10AC 3039 [20,30)
#> 3 P01 25 Female total_PAXMTSM 14653 [20,30)
#> 4 P01 25 Female total_log10PAXMTSM 1043 [20,30)
#> 5 P01 25 Female total_scsslsteps 8694 [20,30)
#> 6 P01 25 Female total_scrfsteps 11421 [20,30)
#> 7 P01 25 Female total_oaksteps 12055 [20,30)
#> 8 P01 25 Female total_vssteps 9505 [20,30)
#> 9 P01 25 Female total_vsrevsteps 9631 [20,30)
#> nhanes_quantile
#> 1 0.4852706
#> 2 0.5714842
#> 3 0.4873396
#> 4 0.5564848
#> 5 0.5872852
#> 6 0.4938108
#> 7 0.4892558
#> 8 0.5019565
#> 9 0.5158600
The complete list of accepted names and the summary used for each CDF is
available from nhanes_pa_measure_map(). Other names return NA with a
warning listing the unmapped measures. Each value should be calculated
using the summary named in the map and supplied on that summary’s scale.
nhanes_pa_measure_map()
#> measure summary
#> 1 AC AC
#> 2 activity_counts AC
#> 3 activitycounts AC
#> 4 counts AC
#> 5 total_AC AC
#> 6 total_activity_counts AC
#> 7 log10AC log10AC
#> 8 log10_activity_counts log10AC
#> 9 log10_counts log10AC
#> 10 total_log10AC log10AC
#> 11 PAXMTSM PAXMTSM
#> 12 mims PAXMTSM
#> 13 mims_unit PAXMTSM
#> 14 total_PAXMTSM PAXMTSM
#> 15 log10PAXMTSM log10PAXMTSM
#> 16 log10_mims log10PAXMTSM
#> 17 total_log10PAXMTSM log10PAXMTSM
#> 18 log10_mims_unit log10PAXMTSM
#> 19 scsslsteps scsslsteps
#> 20 ssl_steps scsslsteps
#> 21 sslstepcount scsslsteps
#> 22 sslstepcounts scsslsteps
#> 23 total_ssl_steps scsslsteps
#> 24 total_scsslsteps scsslsteps
#> 25 steps_stepcount_ssl scsslsteps
#> 26 steps_stepcounts_ssl scsslsteps
#> 27 scrfsteps scrfsteps
#> 28 rf_steps scrfsteps
#> 29 rfstepcount scrfsteps
#> 30 rfstepcounts scrfsteps
#> 31 total_rf_steps scrfsteps
#> 32 total_scrfsteps scrfsteps
#> 33 steps_stepcount_rf scrfsteps
#> 34 steps_stepcounts_rf scrfsteps
#> 35 oaksteps oaksteps
#> 36 foreststeps oaksteps
#> 37 steps_oak oaksteps
#> 38 steps_forest oaksteps
#> 39 nsteps_oak oaksteps
#> 40 nsteps_forest oaksteps
#> 41 total_oaksteps oaksteps
#> 42 steps_stepcount_forest oaksteps
#> 43 steps_stepcounts_forest oaksteps
#> 44 vssteps vssteps
#> 45 vssteps_original vssteps
#> 46 steps_vs_original vssteps
#> 47 total_vssteps vssteps
#> 48 vsrevsteps vsrevsteps
#> 49 vssteps_revised vsrevsteps
#> 50 steps_vs_revised vsrevsteps
#> 51 total_vsrevsteps vsrevsteps
The measure column accepts common aliases, including total_ac and
total_activity_counts for the AC CDF:
measures <- data.frame(
id = rep("P01", 4),
age = 25,
sex = "Female",
measure = c("mims", "PAXMTSM", "total_ac", "total_activity_counts"),
value = c(15000, 15000, 2773035, 2773035)
)
map_nhanes_pa_quantiles(measures, id = "id")
#> id age sex measure value age_category_pa_map
#> 1 P01 25 Female mims 15000 [20,30)
#> 2 P01 25 Female PAXMTSM 15000 [20,30)
#> 3 P01 25 Female total_ac 2773035 [20,30)
#> 4 P01 25 Female total_activity_counts 2773035 [20,30)
#> nhanes_quantile
#> 1 0.5349443
#> 2 0.5349443
#> 3 0.4852706
#> 4 0.4852706
# Select a CDF function directly for a supported measure and stratum.
nhanes_pa_measure_cdf("total_activity_counts", age = 25, sex = "Female")(2773035)
#> [1] 0.4852706
By default, quantiles are evaluated against the combined 2011-2012 and 2013-2014 NHANES waves:
map_nhanes_pa_quantiles(study_data, id = "id")
#> id age sex measure value age_category_pa_map nhanes_quantile
#> 1 P01 25 Female mims 15000 [20,30) 0.5349443
#> 2 P02 62 Male ssl_steps 7500 [60,70) 0.3527381
#> 3 P03 84 Female AC 1000000 [80,85) 0.1322205
To map against a specific NHANES wave, provide wave:
map_nhanes_pa_quantiles(study_data, id = "id", wave = "2013-2014")
#> id age sex measure value age_category_pa_map nhanes_quantile
#> 1 P01 25 Female mims 15000 [20,30) 0.4943653
#> 2 P02 62 Male ssl_steps 7500 [60,70) 0.3820584
#> 3 P03 84 Female AC 1000000 [80,85) 0.1181001
You can also map without sex or age stratification:
map_nhanes_pa_quantiles(study_data, id = "id", sex = NULL)
#> id age sex measure value age_category_pa_map nhanes_quantile
#> 1 P01 25 Female mims 15000 [20,30) 0.5688587
#> 2 P02 62 Male ssl_steps 7500 [60,70) 0.4164160
#> 3 P03 84 Female AC 1000000 [80,85) 0.1408881
map_nhanes_pa_quantiles(study_data, id = "id", age = NULL)
#> id age sex measure value age_category_pa_map nhanes_quantile
#> 1 P01 25 Female mims 15000 Overall 0.53548286
#> 2 P02 62 Male ssl_steps 7500 Overall 0.28321363
#> 3 P03 84 Female AC 1000000 Overall 0.01040967
For a single participant-measure value, use nhanes_pa_quantile():
nhanes_pa_quantile(
value = 15000,
age = 25,
sex = "Female",
measure = "mims"
)
#> [1] 0.5349443
If a study already has age categories, pass the column name through
age_category.
This work was supported by NIH P30AG021334 and the Johns Hopkins Older Americans Independence Center (OAIC) Pepper Center grant.