--- title: "Example Usage" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Example Usage} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup, message=FALSE} library(airPb) library(dplyr) library(tidyr) library(purrr) ``` ### Example 1: Using `calculate_airPb()` and `calculate_scaling_factors()` and manually applying scaling factors to air lead estimates. ```{r} d <- tibble::tribble( ~id, ~lon, ~lat, 809089L, -84.69127387, 39.24710734, 813233L, -84.47798287, 39.12005904, 814881L, -84.47123583, 39.2631309, 799697L, -84.41741798, 39.18541228, 799698L, -84.41395064, 39.18322447 ) my_dates <- data.frame(start_date = as.Date(c("2010-01-08", "2012-06-08", "2010-01-09", "2015-04-09", "2010-01-10")), end_date = as.Date(c("2010-02-08", "2012-07-08", "2010-02-09", "2015-05-09", "2010-02-10"))) d %>% mutate(airPb = calculate_airPb(. , return.LU.vars = FALSE), scaling_factors = calculate_scaling_factors(my_dates), scaled_airPb = airPb * scaling_factors) ``` ### Example 2: Using the `add_scaled_airPb()` wrapper function to automatically apply scaling factors to air lead estimates. A common use case is calculating monthly exposures. For example, we may have a pair of coordinates recorded annually for each participant. In the data below, we have 2 unique ids, with lat/lon recorded once per year. ```{r} d <- tibble::tribble( ~id, ~lon, ~lat, ~date, 809089L, -84.69127387, 39.24710734, as.Date("2010-01-08"), 809089L, -84.69127387, 39.24710734, as.Date("2011-01-08"), 809089L, -84.69127387, 39.24710734, as.Date("2012-01-08"), 799697L, -84.41741798, 39.18541228, as.Date("2011-01-10"), 799697L, -84.41741798, 39.18541228, as.Date("2012-02-10") ) ``` We want to scale the air lead measurements to monthly exposures between these dates, but we need `start_date` and `end_date` columns that represent the monthy time periods we want to average over. ```{r} d <- d %>% mutate(from = date, to = from + lubridate::years(1)) %>% group_by(id, date) %>% nest() %>% mutate(dates = map(data, ~seq.Date(from = .x$from, to = .x$to, by = '3 months'))) %>% unnest(cols=c('data', 'dates')) %>% dplyr::select(-from, -to) %>% rename(start_date = dates) %>% mutate(end_date = lead(start_date)) %>% filter(!is.na(end_date)) %>% ungroup() d %>% mutate(scaled_airPb = add_scaled_airPb(.)) ```