From 15d8c6b172d0bff08cfbbeb4e0358f6939946ada Mon Sep 17 00:00:00 2001 From: DavisVaughan Date: Thu, 15 Dec 2022 15:52:32 -0500 Subject: [PATCH 01/23] Fix faulty join args --- R/powell_wiley.R | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/powell_wiley.R b/R/powell_wiley.R index 9c614df..6c6e2db 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -249,7 +249,7 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, ndi_vars_NA <- ndi_vars[complete.cases(ndi_vars_scrs), ] ndi_vars_NA$NDI <- c(scrs) - ndi_vars_NDI <- dplyr::left_join(ndi_vars[ , c("GEOID", "TotalPop")], ndi_vars_NA[ , c("GEOID", "NDI")], by = "GEOID", all.x = TRUE) + ndi_vars_NDI <- dplyr::left_join(ndi_vars[ , c("GEOID", "TotalPop")], ndi_vars_NA[ , c("GEOID", "NDI")], by = "GEOID") # Calculate Cronbach's alpha correlation coefficient among the factors and verify values are above 0.7. if (nfa == 1) { diff --git a/README.md b/README.md index 7cbffde..8b55bff 100644 --- a/README.md +++ b/README.md @@ -312,7 +312,7 @@ ggplot2::ggplot() + # --------------------------- # # Merge the two NDI metrics (Messer and Powell-Wiley, imputed) -ndi2020DC <- dplyr::left_join(messer2020DC$ndi, powell_wiley2020DCi$ndi, by = "GEOID", suffixes = c(".messer", ".powell_wiley")) +ndi2020DC <- dplyr::left_join(messer2020DC$ndi, powell_wiley2020DCi$ndi, by = "GEOID", suffix = c(".messer", ".powell_wiley")) # Check the correlation the two NDI metrics (Messer and Powell-Wiley, imputed) as continuous values cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = "complete.obs") # Pearsons r = 0.975 From 3bb6a0b8930588908d9807ce8b8afdd31ba4cc85 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Thu, 19 Jan 2023 11:00:47 -0500 Subject: [PATCH 02/23] Initial commit for branch "dev_bell_white" (ndi v0.1.4.9002) * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) --- DESCRIPTION | 32 ++- NAMESPACE | 2 + NEWS.md | 18 +- R/bell.R | 259 ++++++++++++++++++ R/globals.R | 2 +- R/package.R | 10 +- R/utils.R | 26 ++ R/white.R | 241 +++++++++++++++++ README.md | 145 +++++++--- cran-comments.md | 7 +- inst/CITATION | 81 +++++- man/bell.Rd | 94 +++++++ man/figures/ii.png | Bin 0 -> 381640 bytes man/figures/v.png | Bin 0 -> 383068 bytes man/ndi-package.Rd | 10 +- man/white.Rd | 91 +++++++ tests/testthat/test-bell.R | 48 ++++ tests/testthat/test-white.R | 46 ++++ vignettes/vignette.Rmd | 166 ++++++++++-- vignettes/vignette.html | 518 +++++++++++++++++++++++++++++------- 20 files changed, 1605 insertions(+), 191 deletions(-) create mode 100644 R/bell.R create mode 100644 R/white.R create mode 100644 man/bell.Rd create mode 100644 man/figures/ii.png create mode 100644 man/figures/v.png create mode 100644 man/white.Rd create mode 100644 tests/testthat/test-bell.R create mode 100644 tests/testthat/test-white.R diff --git a/DESCRIPTION b/DESCRIPTION index 6e84f7b..cf09a49 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: ndi Title: Neighborhood Deprivation Indices -Version: 0.1.4.9001 +Version: 0.1.4.9002 Date: 2023-01-18 Authors@R: c(person(given = "Ian D.", @@ -21,20 +21,24 @@ Description: Computes various metrics of socio-economic deprivation and disparit and (2) based on Andrews et al. (2020) and Slotman et al. (2022) who use variables chosen by Roux and Mair (2010) - . Both are a decomposition - of multiple demographic characteristics from the U.S. Census Bureau - American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data - from the ACS-5 (2005-2009 onward), the package can also (1) compute the spatial - Racial Isolation Index (RI) based on Anthopolos et al. (2011) - , (2) compute the spatial Educational Isolation - Index (EI) based on Bravo et al. (2021) , - (3) compute the aspatial Index of Concentration at the Extremes (ICE) based on - Feldman et al. (2015) and Krieger et al. - (2016) , (4) compute the aspatial racial/ethnic + . Both are a decomposition of multiple + demographic characteristics from the U.S. Census Bureau American Community + Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 + (2005-2009 onward), the package can also (1) compute the spatial Racial Isolation + Index (RI) based on Anthopolos et al. (2011) , + (2) compute the spatial Educational Isolation Index (EI) based on Bravo et al. + (2021) , (3) compute the aspatial Index of + Concentration at the Extremes (ICE) based on Feldman et al. (2015) + and Krieger et al. (2016) + , (4) compute the aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) , (5) - compute the aspatial Atkinson Index based on Atkinson (1970) - , and (6) retrieve the aspatial Gini Index - based on Gini (1921) . + compute the aspatial income or racial/ethnic Atkinson Index based on Atkinson + (1970) , (6) aspatial racial/ethnic Isolation + Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell + (1954) , and (7) aspatial racial/ethnic Correlation Ratio + based on Bell (1954) and White (1986) . + Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the + aspatial Gini Index based Gini (1921) . License: Apache License (>= 2.0) Encoding: UTF-8 LazyData: true diff --git a/NAMESPACE b/NAMESPACE index ef49f1f..033364f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,12 +2,14 @@ export(anthopolos) export(atkinson) +export(bell) export(bravo) export(duncan) export(gini) export(krieger) export(messer) export(powell_wiley) +export(white) import(dplyr) importFrom(MASS,ginv) importFrom(Matrix,sparseMatrix) diff --git a/NEWS.md b/NEWS.md index bb3632e..eeafe10 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,9 +1,11 @@ # ndi (development version) -# ndi v0.1.4.9001 +# ndi v0.1.4.9002 ### New Features -* Added `atkinson()` function to compute the Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward +* Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward +* Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) +* Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) ### Updates * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing @@ -36,12 +38,12 @@ # ndi v0.1.2 ### New Features -* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://www.doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://www.doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward +* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward * Thank you for the feature suggestion, [David Berrigan](https://orcid.org/0000-0002-5333-179X) -* Added `df` argument for the `messer()` and `powell_wiley()` functions to specify a pre-formatted dataset input for the NDI computation +* Added `df` argument for the `messer()` and `powell_wiley()` functions to specify a pre-formatted data set input for the NDI computation * Added `round_output` argument for the `messer()` and `powell_wiley()` functions to provide raw output as the default and rounded output as optional. * Thank you for the suggested enhancements, [Chris Prener](https://github.com/chris-prener) -* Added `DCtracts2020` a testing dataset for the `ndi` package and its documentation +* Added `DCtracts2020` a testing data set for the `ndi` package and its documentation ### Updates * Fixed bug in `powell_wiley()` function where the internal PCA will now run properly if only one factor has an eigenvalue above 1 @@ -62,9 +64,9 @@ # ndi v0.1.1 ### New Features -* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos et al. (2011)](https://www.doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward -* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo et al. (2021)](https://www.doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward -* Added `gini()` function to retrieve the Gini Index based on [Gini (1921)](https://www.doi.org/10.2307/2223319) for specified counties/tracts 2009 onward +* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward +* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward +* Added `gini()` function to retrieve the Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319) for specified counties/tracts 2009 onward * Thank you for the feature suggestions, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) ### Updates diff --git a/R/bell.R b/R/bell.R new file mode 100644 index 0000000..ccdffcf --- /dev/null +++ b/R/bell.R @@ -0,0 +1,259 @@ +#' Isolation Index based on Shevky & Williams (1949) and Bell (1954) +#' +#' Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. +#' @param subgroup_ixn Character string specifying the racial/ethnic subgroup(s) as the interaction population. If the same as \code{subgroup}, will compute the simple isolation of the group. See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute the aspatial Isolation Index (II) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of II for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} +#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +#' \item{B03002_012: }{Hispanic or Latino "HoL"} +#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. +#' +#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and II at specified larger census geographies.} +#' \item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute II.} +#' } +#' +#' @import dplyr +#' @importFrom sf st_drop_geometry +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Isolation of non-Hispanic Black and non-Hispanic white populations +#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' bell(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, +#' subgroup = "NHoLB", subgroup_ixn = "NHoLW") +#' +#' } +#' +bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, subgroup_ixn, omit_NAs = TRUE, quiet = FALSE, ...) { + + # Check arguments + match.arg(geo_large, choices = c("state", "county", "tract")) + match.arg(geo_small, choices = c("county", "tract", "block group")) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg(subgroup, several.ok = TRUE, + choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", + "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", + "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", + "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + match.arg(subgroup_ixn, several.ok = TRUE, + choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", + "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", + "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", + "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + + # Select census variables + vars <- c(TotalPop = "B03002_001", + NHoL = "B03002_002", + NHoLW = "B03002_003", + NHoLB = "B03002_004", + NHoLAIAN = "B03002_005", + NHoLA = "B03002_006", + NHoLNHOPI = "B03002_007", + NHoLSOR = "B03002_008", + NHoLTOMR = "B03002_009", + NHoLTRiSOR = "B03002_010", + NHoLTReSOR = "B03002_011", + HoL = "B03002_012", + HoLW = "B03002_013", + HoLB = "B03002_014", + HoLAIAN = "B03002_015", + HoLA = "B03002_016", + HoLNHOPI = "B03002_017", + HoLSOR = "B03002_018", + HoLTOMR = "B03002_019", + HoLTRiSOR = "B03002_020", + HoLTReSOR = "B03002_021") + + selected_vars <- vars[c("TotalPop", subgroup, subgroup_ixn)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, "E", sep = "") + in_subgroup_ixn <- paste(subgroup_ixn, "E", sep = "") + + # Acquire II variables and sf geometries + ii_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, + year = year, + output = "wide", + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, ...))) + + # Format output + if (geo_small == "county") { + ii_data <- sf::st_drop_geometry(ii_data) %>% + tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") + } + if (geo_small == "tract") { + ii_data <- sf::st_drop_geometry(ii_data) %>% + tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) + } + if (geo_small == "block group") { + ii_data <- sf::st_drop_geometry(ii_data) %>% + tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), + block.group = gsub("[^0-9\\.]", "", block.group)) + } + + # Grouping IDs for II computation + if (geo_large == "tract") { + ii_vars <- ii_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "county") { + ii_vars <- ii_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "state") { + ii_vars <- ii_data %>% + dplyr::mutate(oid = .$STATEFP, + state = stringr::str_trim(state)) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + ii_vars <- ii_vars %>% + dplyr::mutate(subgroup = .[ , in_subgroup]) + } else { + ii_vars <- ii_vars %>% + dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + } + ## Count of racial/ethnic interaction subgroup population + if (length(in_subgroup_ixn) == 1) { + ii_vars <- ii_vars %>% + dplyr::mutate(subgroup_ixn = .[ , in_subgroup_ixn]) + } else { + ii_vars <- ii_vars %>% + dplyr::mutate(subgroup_ixn = rowSums(.[ , in_subgroup_ixn])) + } + + # Compute II + ## From Bell (1954) https://doi.org/10.2307/2574118 + ## _{x}P_{y}^* = \sum_{i=1}^{k} \left ( \frac{x_{i}}{X}\right )\left ( \frac{y_{i}}{n_{i}}\right ) + ## Where for k geographical units i: + ## X denotes the total number of subgroup population in study (reference) area + ## x_{i} denotes the number of subgroup population X in geographical unit i + ## y_{i} denotes the number of subgroup population Y in geographical unit i + ## n_{i} denotes the total population of geographical unit i + ## If x_{i} = y_{i}, then computes the average isolation experienced by members of subgroup population X + + ## Compute + IItmp <- ii_vars %>% + split(., f = list(ii_vars$oid)) %>% + lapply(., FUN = ii_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate(II = values, + oid = ind) %>% + dplyr::select(II, oid) + + # Warning for missingness of census characteristics + missingYN <- ii_vars[ , c("TotalPopE", in_subgroup, in_subgroup_ixn)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer(cols = dplyr::everything(), + names_to = "variable", + values_to = "val") %>% + dplyr::group_by(variable) %>% + dplyr::summarise(total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message("Warning: Missing census data") + } + } + + # Format output + if (geo_large == "state") { + ii <- merge(ii_vars, IItmp) %>% + dplyr::select(oid, state, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, II) %>% + .[.$GEOID != "NANA", ] + } + if (geo_large == "county") { + ii <- merge(ii_vars, IItmp) %>% + dplyr::select(oid, state, county, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, II) %>% + .[.$GEOID != "NANA", ] + } + if (geo_large == "tract") { + ii <- merge(ii_vars, IItmp) %>% + dplyr::select(oid, state, county, tract, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, II) %>% + .[.$GEOID != "NANA", ] + } + + ii <- ii %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + ii_data <- ii_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(ii = ii, + ii_data = ii_data, + missing = missingYN) + + return(out) +} diff --git a/R/globals.R b/R/globals.R index f533fea..93c8545 100644 --- a/R/globals.R +++ b/R/globals.R @@ -40,4 +40,4 @@ globalVariables(c("CWD", "EDU", "EMP", "FHH", "GEOID", "MedHHInc", "MedHHIncE", "O25MNSCE", "O25MNt4G", "O25MNt4GE", "O25MPSD", "O25MPSDE", "P_edu", "P_inc", "P_wbinc", "P_wpcinc", "TotalPop_edu", "TotalPop_inc", "TotalPop_re", "TotalPopeduE", "TotalPopiE", "TotalPopreE", "U10bih", "U10bihE", "U10i", "U10iE", "U10nhw", "U10nhwE", "NAME.y", - ".", "values", "ind", "oid", "block.group", "DI", "AI")) + ".", "values", "ind", "oid", "block.group", "DI", "AI", "II", "V")) diff --git a/R/package.R b/R/package.R index 4f17aa9..207a43b 100644 --- a/R/package.R +++ b/R/package.R @@ -2,7 +2,7 @@ #' #' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. #' -#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also (1) compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) compute the aspatial Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (5) compute the aspatial Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, and (6) retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, and (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. #' #' Key content of the 'ndi' package include:\cr #' @@ -10,11 +10,13 @@ #' #' \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (RI) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. #' -#' \code{\link{atkinson}} Computes the aspatial Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +#' +#' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. #' #' \code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. #' -#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}. +#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. #' #' \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. #' @@ -24,6 +26,8 @@ #' #' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. #' +#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. +#' #' \bold{Pre-formatted U.S. Census Data} #' #' \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. diff --git a/R/utils.R b/R/utils.R index e51311f..10417fe 100644 --- a/R/utils.R +++ b/R/utils.R @@ -30,3 +30,29 @@ ai_fun <- function(x, epsilon, omit_NAs) { } } } + +# Internal function for aspatial Racial Isolation Index (Bell 1954) +## Returns NA value if only one smaller geography in a larger geography +ii_fun <- function(x, omit_NAs) { + xx <- x[ , c("TotalPopE", "subgroup", "subgroup_ixn")] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } + if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { + NA + } else { + sum((xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup_ixn / xx$TotalPopE)) + } +} + +# Internal function for aspatial Correlation Ratio (White 1986) +## Returns NA value if only one smaller geography in a larger geography +v_fun <- function(x, omit_NAs) { + xx <- x[ , c("TotalPopE", "subgroup")] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } + if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { + NA + } else { + xxx <- sum((xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup / xx$TotalPopE)) + px <- sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) + (xxx - px) / (1 - px) + } +} diff --git a/R/white.R b/R/white.R new file mode 100644 index 0000000..e745427 --- /dev/null +++ b/R/white.R @@ -0,0 +1,241 @@ +#' Correlation Ratio based on Bell (1954) and White (1986) +#' +#' Compute the aspatial Correlation Ratio (White) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute the aspatial Correlation Ratio (V or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of V for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} +#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +#' \item{B03002_012: }{Hispanic or Latino "HoL"} +#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from 0 to 1. +#' +#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{v}}{An object of class 'tbl' for the GEOID, name, and V at specified larger census geographies.} +#' \item{\code{v_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute V} +#' } +#' +#' @import dplyr +#' @importFrom sf st_drop_geometry +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Isolation of non-Hispanic Black and non-Hispanic white populations +#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' white(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, +#' subgroup = "NHoLB") +#' +#' } +#' +white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, omit_NAs = TRUE, quiet = FALSE, ...) { + + # Check arguments + match.arg(geo_large, choices = c("state", "county", "tract")) + match.arg(geo_small, choices = c("county", "tract", "block group")) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg(subgroup, several.ok = TRUE, + choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", + "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", + "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", + "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + + # Select census variables + vars <- c(TotalPop = "B03002_001", + NHoL = "B03002_002", + NHoLW = "B03002_003", + NHoLB = "B03002_004", + NHoLAIAN = "B03002_005", + NHoLA = "B03002_006", + NHoLNHOPI = "B03002_007", + NHoLSOR = "B03002_008", + NHoLTOMR = "B03002_009", + NHoLTRiSOR = "B03002_010", + NHoLTReSOR = "B03002_011", + HoL = "B03002_012", + HoLW = "B03002_013", + HoLB = "B03002_014", + HoLAIAN = "B03002_015", + HoLA = "B03002_016", + HoLNHOPI = "B03002_017", + HoLSOR = "B03002_018", + HoLTOMR = "B03002_019", + HoLTRiSOR = "B03002_020", + HoLTReSOR = "B03002_021") + + selected_vars <- vars[c("TotalPop", subgroup)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, "E", sep = "") + + # Acquire V variables and sf geometries + v_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, + year = year, + output = "wide", + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, ...))) + + # Format output + if (geo_small == "county") { + v_data <- sf::st_drop_geometry(v_data) %>% + tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") + } + if (geo_small == "tract") { + v_data <- sf::st_drop_geometry(v_data) %>% + tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) + } + if (geo_small == "block group") { + v_data <- sf::st_drop_geometry(v_data) %>% + tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), + block.group = gsub("[^0-9\\.]", "", block.group)) + } + + # Grouping IDs for R computation + if (geo_large == "tract") { + v_vars <- v_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "county") { + v_vars <- v_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "state") { + v_vars <- v_data %>% + dplyr::mutate(oid = .$STATEFP, + state = stringr::str_trim(state)) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + v_vars <- v_vars %>% + dplyr::mutate(subgroup = .[ , in_subgroup]) + } else { + v_vars <- v_vars %>% + dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + } + + # Compute V or \mathit{Eta}^{2} + ## From White (1986) https://doi.org/10.2307/3644339 + ## V = \mathit{Eta}^2 = [(_{x}P_{x}^* - P) / (1 - P)] + ## Where: + ## _{x}P_{x}^* denotes the Isolation Index (Bell) of subgroup x + ## P denotes the proportion of subgroup x of study (reference) area + + ## Compute + Vtmp <- v_vars %>% + split(., f = list(v_vars$oid)) %>% + lapply(., FUN = v_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate(V = values, + oid = ind) %>% + dplyr::select(V, oid) + + # Warning for missingness of census characteristics + missingYN <- v_vars[ , c("TotalPopE", in_subgroup)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer(cols = dplyr::everything(), + names_to = "variable", + values_to = "val") %>% + dplyr::group_by(variable) %>% + dplyr::summarise(total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message("Warning: Missing census data") + } + } + + # Format output + if (geo_large == "state") { + v <- merge(v_vars, Vtmp) %>% + dplyr::select(oid, state, V) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, V) %>% + .[.$GEOID != "NANA", ] + } + if (geo_large == "county") { + v <- merge(v_vars, Vtmp) %>% + dplyr::select(oid, state, county, V) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, V) %>% + .[.$GEOID != "NANA", ] + } + if (geo_large == "tract") { + v <- merge(v_vars, Vtmp) %>% + dplyr::select(oid, state, county, tract, V) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, V) %>% + .[.$GEOID != "NANA", ] + } + + v <- v %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + v_data <- v_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(v = v, + v_data = v_data, + missing = missingYN) + + return(out) +} diff --git a/README.md b/README.md index 70032f0..f33c4c1 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,20 @@ ndi: Neighborhood Deprivation Indices [![R-CMD-check](https://github.com/idblr/ndi/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/idblr/ndi/actions/workflows/R-CMD-check.yaml) -[![CRAN status](http://www.r-pkg.org/badges/version/ndi)](https://cran.r-project.org/package=ndi) -[![CRAN version](https://www.r-pkg.org/badges/version-ago/ndi)](https://cran.r-project.org/package=ndi) +[![CRAN status](http://r-pkg.org/badges/version/ndi)](https://cran.r-project.org/package=ndi) +[![CRAN version](https://r-pkg.org/badges/version-ago/ndi)](https://cran.r-project.org/package=ndi) [![CRAN RStudio mirror downloads total](https://cranlogs.r-pkg.org/badges/grand-total/ndi?color=blue)](https://r-pkg.org/pkg/ndi) -[![CRAN RStudio mirror downloads monthly ](http://cranlogs.r-pkg.org/badges/ndi)](https://www.r-pkg.org:443/pkg/ndi) +[![CRAN RStudio mirror downloads monthly ](http://cranlogs.r-pkg.org/badges/ndi)](https://r-pkg.org:443/pkg/ndi) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) ![GitHub last commit](https://img.shields.io/github/last-commit/idblr/ndi) [![DOI](https://zenodo.org/badge/521439746.svg)](https://zenodo.org/badge/latestdoi/521439746) -**Date repository last updated**: December 15, 2022 +**Date repository last updated**: January 19, 2022 ### Overview -The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also (1) compute the spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://www.doi.org/10.1016/j.sste.2011.06.002), (2) compute the spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://www.doi.org/10.3390/ijerph18179384), (3) compute the aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://www.doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://www.doi.org/10.2105/AJPH.2015.302955), (4) compute the aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) compute the aspatial Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), and (6) retrieve the aspatial Gini Index based on [Gini (1921)](https://www.doi.org/10.2307/2223319). +The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), and (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -32,8 +32,8 @@ To install the development version from GitHub: --++ @@ -43,28 +43,34 @@ To install the development version from GitHub: - + + + + - + - + - + - + - + + + +
anthopolosCompute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011)Compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011)
atkinson Compute the aspatial Atkinson Index (AI) based on Atkinson (1970)
bellCompute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954)
bravoCompute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021)Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021)
duncan Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955)
giniRetrieve the aspatial Gini Index based on Gini (1921)Retrieve the aspatial Gini Index based on Gini (1921)
kriegerCompute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016)Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016)
messerCompute the aspatial Neighboorhood Deprivation Index (NDI) based on Messer et al. (2006)Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006)
powell_wileyCompute the aspatial Neighboorhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010)Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010)
whiteCompute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986)
@@ -79,8 +85,8 @@ The repository also includes the code to create the project hexagon sticker.
--++ @@ -90,7 +96,7 @@ The repository also includes the code to create the project hexagon sticker. - +
DCtracts2020A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the tidycensus package and formatted for the messer() and powell_wiley() functions input.A sample data set containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the tidycensus package and formatted for the messer() and powell_wiley() functions input.
@@ -116,7 +122,7 @@ Thank you to those who suggested additional metrics, including: ### Getting Started * Step 1: Obtain a unique access key from the U.S. Census Bureau. Follow [this link](http://api.census.gov/data/key_signup.html) to obtain one. -* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, or `powell_wiley()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, or `powell_wiley()` functions (see an example below). +* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bell()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, or `white()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bell()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, or `white()` functions (see an example below). ### Usage @@ -176,7 +182,7 @@ ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020messer, ggplot2::aes(fill = NDI), color = "white") + - ggplot2::theme_bw() + + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + ggplot2::labs(fill = "Index (Continuous)", caption = "Source: U.S. Census ACS 2016-2020 estimates")+ @@ -327,9 +333,9 @@ table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) ``` ``` r -# ------------------- # -# Retrieve Gini Index # -# ------------------- # +# ---------------------------- # +# Retrieve aspatial Gini Index # +# ---------------------------- # # Gini Index based on Gini (1921) from the ACS-5 gini2020DC <- gini(state = "DC", year = 2020) @@ -355,9 +361,9 @@ ggplot2::ggplot() + ![](man/figures/gini.png) ``` r -# -------------------------------------------- # -# Compute Racial Isoliation Index (Anthopolos) # -# -------------------------------------------- # +# ---------------------------------------------------- # +# Compute spatial Racial Isoliation Index (Anthopolos) # +# ---------------------------------------------------- # # Racial Isolation Index based on Anthopolos et al. (2011) ## Selected subgroup: Not Hispanic or Latino, Black or African American alone @@ -384,9 +390,9 @@ ggplot2::ggplot() + ![](man/figures/ri.png) ``` r -# -------------------------------------------- # -# Compute Educational Isoliation Index (Bravo) # -# -------------------------------------------- # +# ---------------------------------------------------- # +# Compute spatial Educational Isoliation Index (Bravo) # +# ---------------------------------------------------- # # Educational Isolation Index based on Bravo et al. (2021) ## Selected subgroup: without four-year college degree @@ -413,9 +419,9 @@ ggplot2::ggplot() + ![](man/figures/ei.png) ``` r -# ------------------------------------------------ # -# Index of Concentration at the Extremes (Krieger) # -# ------------------------------------------------ # +# ----------------------------------------------------------------- # +# Compute aspatial Index of Concentration at the Extremes (Krieger) # +# ----------------------------------------------------------------- # # Five Indices of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016) @@ -509,9 +515,9 @@ ggplot2::ggplot() + ![](man/figures/ice5.png) ```r -# -------------------------------------------------- # -# Compute racial/ethnic Dissimilarity Index (Duncan) # -# -------------------------------------------------- # +# ----------------------------------------------------------- # +# Compute aspatial racial/ethnic Dissimilarity Index (Duncan) # +# ----------------------------------------------------------- # # Dissimilarity Index based on Duncan & Duncan (1955) ## Selected subgroup comparison: Not Hispanic or Latino, Black or African American alone @@ -543,9 +549,9 @@ ggplot2::ggplot() + ![](man/figures/di.png) ```r -# ----------------------------------------------- # -# Compute racial/ethnic Atkinson Index (Atkinson) # -# ----------------------------------------------- # +# -------------------------------------------------------- # +# Compute aspatial racial/ethnic Atkinson Index (Atkinson) # +# -------------------------------------------------------- # # Atkinson Index based on Atkinson (1970) ## Selected subgroup: Not Hispanic or Latino, Black or African American alone @@ -575,9 +581,74 @@ ggplot2::ggplot() + ![](man/figures/ai.png) +```r +# ----------------------------------------------------- # +# Compute aspatial racial/ethnic Isolation Index (Bell) # +# ----------------------------------------------------- # + +# Isolation Index based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: census tract +## Selected small geography: census block group +ii2020DC <- bell(geo_large = "tract", geo_small = "block group", + state = "DC", year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") + +# Obtain the 2020 census tracts from the "tigris" package +tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) + +# Join the DI (Duncan) values to the census tract geometry +ii2020DC <- dplyr::left_join(tract2020DC, ii2020DC$ii, by = "GEOID") + +ggplot2::ggplot() + + ggplot2::geom_sf(data = ii2020DC, + ggplot2::aes(fill = II), + color = "white") + + ggplot2::theme_bw() + + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + + ggplot2::labs(fill = "Index (Continuous)", + caption = "Source: U.S. Census ACS 2016-2020 estimates") + + ggplot2::ggtitle("Isolation Index (Bell)\nWashington, D.C. census block groups to tracts", + subtitle = "Black non-Hispanic vs. white non-Hispanic") +``` + +![](man/figures/ii.png) + +```r +# -------------------------------------------------------- # +# Compute aspatial racial/ethnic Correlation Ratio (White) # +# -------------------------------------------------------- # + +# Correlation Ratio based on Bell (1954) and White (1986) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: census tract +## Selected small geography: census block group +v2020DC <- white(geo_large = "tract", geo_small = "block group", + state = "DC", year = 2020, subgroup = "NHoLB") + +# Obtain the 2020 census tracts from the "tigris" package +tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) + +# Join the DI (Duncan) values to the census tract geometry +v2020DC <- dplyr::left_join(tract2020DC, v2020DC$v, by = "GEOID") + +ggplot2::ggplot() + + ggplot2::geom_sf(data = v2020DC, + ggplot2::aes(fill = V), + color = "white") + + ggplot2::theme_bw() + + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + + ggplot2::labs(fill = "Index (Continuous)", + caption = "Source: U.S. Census ACS 2016-2020 estimates") + + ggplot2::ggtitle("Correlation Ratio (White)\nWashington, D.C. census block groups to tracts", + subtitle = "Black non-Hispanic") +``` + +![](man/figures/v.png) + ### Funding -This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a division of [DLH Corporation](https://www.dlhcorp.com). +This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a division of [DLH Corporation](https://dlhcorp.com). ### Acknowledgments diff --git a/cran-comments.md b/cran-comments.md index 7b877c0..fd80b67 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,7 +1,9 @@ ## This is the fifth resubmission * Actions taken since previous submission: - * Added `atkinson()` function to compute the Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward + * Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward + * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) + * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing * Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [ndi Issue #5](https://github.com/idblr/ndi/issues/5) * Updated `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` for consistency in messaging when data are not missing @@ -17,8 +19,9 @@ * * * + * -* Some tests and examples for `anthopolos()`, `atkinson()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` functions require a Census API key so they are skipped if NULL or not run +* Some tests and examples for `anthopolos()`, `atkinson()`, `bell()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, and `white()` functions require a Census API key so they are skipped if NULL or not run ## Test environments * local Windows install, R 4.2.1 diff --git a/inst/CITATION b/inst/CITATION index 898c2af..5ff733b 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -5,7 +5,7 @@ citEntry(entry = "manual", author = personList(as.person("Ian D. Buller")), publisher = "The Comprehensive R Archive Network", year = "2022", - number = "0.1.4.9001", + number = "0.1.4.9002", doi = "10.5281/zenodo.6989030", url = "https://cran.r-project.org/package=ndi", @@ -13,7 +13,7 @@ citEntry(entry = "manual", paste("Ian D. Buller (2022).", "ndi: Neighborhood Deprivation Indices.", "The Comprehensive R Archive Network.", - "v0.1.4.9001.", + "v0.1.4.9002.", "DOI:10.5281/zenodo.6989030", "Accessed by: https://cran.r-project.org/package=ndi") ) @@ -59,6 +59,45 @@ citEntry(entry = "Article", header = "If you computed AI (Atkinson) values, please also cite:" ) +citEntry(entry = "Book", + title = "The Social Areas of Los Angeles: Analysis and Typology", + author = personList(as.person("Eshref Shevky"), + as.person("Marilyn Williams")), + year = "1949", + edition = "1st edition", + city = "Los Angeles", + publisher = "John Randolph Haynes and Dora Haynes Foundation", + isbn = "978-0-837-15637-8", + + textVersion = + paste("Eshref Shevky, Marilyn Williams (1949).", + "The Social Areas of Los Angeles: Analysis and Typology.", + "1st Ed.", + "Los Angeles:John Randolph Haynes and Dora Haynes Foundation.", + "ISBN-13:978-0-837-15637-8"), + + header = "If you computed II (Bell) values, please also cite (1):" +) + +citEntry(entry = "Article", + title = "A Probability Model for the Measurement of Ecological Segregation", + author = personList(as.person("Wendell Bell")), + journal = "Social Forces", + year = "1954", + volume = "32", + issue = "4", + pages = "357--364", + doi = "10.2307/2574118", + + textVersion = + paste("Wendell Bell (1954).", + "A Probability Model for the Measurement of Ecological Segregation.", + "Social Forces, 32(4), 357-364.", + "DOI:10.2307/2574118"), + + header = "And (2):" +) + citEntry(entry = "Article", title = "Assessing Disparity Using Measures of Racial and Educational Isolation", author = personList(as.person("Mercedes A. Bravo"), @@ -245,3 +284,41 @@ citEntry(entry = "Article", header = "And (2):" ) + +citEntry(entry = "Article", + title = "A Probability Model for the Measurement of Ecological Segregation", + author = personList(as.person("Wendell Bell")), + journal = "Social Forces", + year = "1954", + volume = "32", + issue = "4", + pages = "357--364", + doi = "10.2307/2574118", + + textVersion = + paste("Wendell Bell (1954).", + "A Probability Model for the Measurement of Ecological Segregation.", + "Social Forces, 32(4), 357-364.", + "DOI:10.2307/2574118"), + + header = "If you computed V (White) values, please also cite (1):" +) + +citEntry(entry = "Article", + title = "Segregation and Diversity Measures in Population Distribution", + author = personList(as.person("Michael J. White")), + journal = "Population Index", + year = "1986", + volume = "52", + issue = "2", + pages = "198--221", + doi = "10.2307/3644339", + + textVersion = + paste("Michael J. White (1986).", + "Segregation and Diversity Measures in Population Distribution.", + "Population Index, 52(2), 198-221.", + "DOI:10.2307/3644339"), + + header = "And (2):" +) diff --git a/man/bell.Rd b/man/bell.Rd new file mode 100644 index 0000000..3bea08b --- /dev/null +++ b/man/bell.Rd @@ -0,0 +1,94 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/bell.R +\name{bell} +\alias{bell} +\title{Isolation Index based on Shevky & Williams (1949) and Bell (1954)} +\usage{ +bell( + geo_large = "county", + geo_small = "tract", + year = 2020, + subgroup, + subgroup_ixn, + omit_NAs = TRUE, + quiet = FALSE, + ... +) +} +\arguments{ +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} + +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} + +\item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} + +\item{subgroup}{Character string specifying the racial/ethnic subgroup(s). See Details for available choices.} + +\item{subgroup_ixn}{Character string specifying the racial/ethnic subgroup(s) as the interaction population. If the same as \code{subgroup}, will compute the simple isolation of the group. See Details for available choices.} + +\item{omit_NAs}{Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE.} + +\item{quiet}{Logical. If TRUE, will display messages about potential missing census information. The default is FALSE.} + +\item{...}{Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics} +} +\value{ +An object of class 'list'. This is a named list with the following components: + +\describe{ +\item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and II at specified larger census geographies.} +\item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute II.} +} +} +\description{ +Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. +} +\details{ +This function will compute the aspatial Isolation Index (II) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of II for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). + +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +\itemize{ +\item{B03002_002: }{not Hispanic or Latino "NHoL"} +\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +\item{B03002_012: }{Hispanic or Latino "HoL"} +\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +} + +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. + +II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. + +Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +} +\examples{ +\dontrun{ +# Wrapped in \dontrun{} because these examples require a Census API key. + + # Isolation of non-Hispanic Black and non-Hispanic white populations + ## of census tracts within Georgia, U.S.A., counties (2020) + bell(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, + subgroup = "NHoLB", subgroup_ixn = "NHoLW") + +} + +} +\seealso{ +\code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +} diff --git a/man/figures/ii.png b/man/figures/ii.png new file mode 100644 index 0000000000000000000000000000000000000000..3572d264f13ad227f88df4609c478da4c9a5a398 GIT binary patch literal 381640 zcmdqJcRbenA3xlwR7R78LI@cl*|U_$9v8A3C?rMps!%DiLbf6^3E8BO%#@iC*?W(Y zbw97p>3q-ce%$}ukH`JjeVub29prO;KJW2*J=gp4QB#rINk&JuY15{i=j6|5Y}&L# zfcW2z&G=5a5K9dH*mg-#?#!kQ;y-aENx}FI=?!^Z+fAEzScw1q<@iF{e$%GIo6em% zMR1Io_~vkus%>3*_2S+$dn$H4fBt}e=MMRal2a3OMZ$D~&(B@+Id1Wa!$xqQUxdwN zzlRSmJ&L~lRekT?5BHc4?|86nYYO?q)av@z;qd8#D-Kt#)K2jHa$n22vQ!t|pweS& z_9^p{Zs=dQi9avC{XPX-{(ONyZ#$6FvH$1mcL|?G{`>dYyemon^J6{^0hRxJdHdY6 zo5W}T^HL)7qx|##`169s)u{h`xhYttf9rp~eoFQKpSOh2*a*YgE>5d!8Ky1M7w z^z*J8>c6*WNgbS;>W-K5|Ni}Zw75fJVqzAzWhkTUUYnu4j`j~9J<>Ew*3X+7Z_AL~ zb?Be*e0LZ_?N()y#d)`&{P?a=(`rW3?uUw@rn?!XqC!I}gFo6l&)M4I9D9UC=P1?C zu8$f60|QD?BI*TtxmKNKmX?a9$&KCw&icB#V*AMsMvv9m*^i7a&d!DT`Ci`M;cnjK zqVqc>#7VYprJxf?PEAdH{rX15gS}=O=6_~X0xRdj&Bn&YZjX(%+5V4dQk=VH9;+Rt zVv&3Nq;`;^{O9sA$+m5DZhJF~N+P7(3iI+D+}+=PAr}s_>dfVkuBfb>`kGl@{Ql1c zXHNESy-gCR@Io<+$Eqc@r9M))o}T=+=;YVT{?>H;ng);c<)o015P9-KhiRkn*7W(g zxig$S6&TJe$JtAR!v(g(LqkIm!VG_|sBH06eAA|%(t&}2&z?OSdc65vol&vlafc~` z!Qn6QaxP9zq~Vr}V=W8}45>}~$-I@=xHvg$s;ixrCfYwdI*`J-a`*0CDYsu;B`$eq z{qlMv@-bP;kwVpjHr_JFuXp8h>AZT-_U6w9i_6P<#=LFQrf#;TB-PE}!@9%;BfGRZQTx~jU`{9B=&Vkq}T8a5%JrJu9? z@n`+`9n}6jhrq4zt!l^YrnFe88cXf3+FOG3Yv$L`;FE8ITrWd<)b)YIx zX0uT1*h7E+=`Zp3=dwLLPoFyV*AFcxCnqJPy6Rx|4CB(6&``EOd0eoy#O22+&uu$t z`4d#4#bjy@`1q9baB%qe_=w)@JLBr=YGIL@lVcYtWVMZgh7Zd}T3VWmi|e$zqLGo2 z((jk6>uUCuhMJlhI-zS{6O}P>zbFn0)wQ*SbvZSQ*^M91;hvAS<*$X& z?YjqG)mW7n3El5^gseK=pj5~; z{n~q8-rZeF_(01>UFPMFO2viOyNj#q2fu%hi#i%y-I`(CV0@1L&>;f?AtA@rkhF_k zncDv5&DkJUMMtuQg@t0<;a#;^n2~{n&!5%Oy^|6Xw~>&{Qhnm{&CZ@j9W~*n^-%Ax z^kW&$%FL{;t?iE;Y);W^&O%Z2%Ai%ooSzL{{{DVTdbWs&NI*79@JQijN_Le1)>Ty7 z%~u5a*!I{AeOa8SU~-UARaL!X`==K_-Bf6|`KFeZmfOtx?JQ?~irH1 zKYsYIF(NxTdBk(K)Q%lHTghFh9;x=O56eQY**0xBg|5cZ%%JNn4r#6%ryT59Ug zo~WvZhNO-Yxz;`1S*D7AWm;xhw((452M257Vmo;?)9A(R1FA2U-!qT?FcNu^Fp#!S zHCD=PZosF2`OhH4#p$!}36yz8BkjH#e&UK(18!H)q$+^?0MEi?r;cU}R@%zXpK1+} z^R>0L^FMy{6ggz{mPAwy&c($YmW-gKBKz?9*=a^e=jK<2;$vw(lW1g#2@7A?R9aRh!^jx>@+G&NoLsNE&ne&6yhg=eGmNG0 z{8bktxiU9cyZJ<|NtSy2S@U#Cc2;(Fw9U$oAJI)x>e0e)%nelI+BY?sSy)t~#TMUh zXG}IT)3vXAdR!yrN#s5n8WD7a-r1{VSrfdat7WY0Dp6N2#Ola&m3nNT^c&c`yZsk> z-*Bv~ukv9|i)Y(+Gpr6pS}QT4wfuhF<}4Qdi2;tcBs17a{rv9v@F7`_DK!;UvUUyzD+)Uqg{|h2qJqLcO3Ews5wi8-c4LHS zi~TLXuqabPecac6$(}unPO42H9Hk=jmQgn{TAygo#*F0`7HVWSL<;*yTrxG?zrL}u zzA{~%k$e3col3G{QSPfR5oUH+w0;bd5ovu6H*TDN>$qN@HM-)qU5DgV0_Bg?hViPNJD2kECEnK5)YM_Bi>XIt2RS+AzGJmn zlx#|IxetnpR;IocWoKmpk>J({oXRRHMmZMyolc&6puxoc}o zvNGQOdKkfa;)JHAJLf$)e+Kg!4wE`kb)5sEj$1g697)K^(h&5xe*OCWUG&KpP@V-y z;<+R%qxhV^;?2n7(YUbtEKabqv8B?p88$toL?e&4d8M0uw#jjux3@RCDfk}Nj98>kLWkw`Vv`<8$6wC0_{j_fPDb#1h@LjwwK(b>v8Q$wMC>p0t2 z=1tzr_no5r%-ORRhEej7C!3G6pATIdO^U5@vZHI;{?G87lyJ1&ToDu)s7@eMu>P3t z>4`hFMLGPS@byEKl&4jeQNXpbv8ap+Y`hf}js#UyRFG1#UFB^3_DvF9>LsuCZ!~h? zCndq^TVaUOtMi$6J(R9t6w%t$j%{swW!NOXDf+3q9RTw6<+(u%xlr`w*~Rg;>JF0v z11wp)UhhXA&tC)z0>~0K$TDwAME6sU5Kxb7@9Y#86>abCHj)Rn^|l@U#G2%F|30sN zZe2%*p4B?Gguz=^C$yxlC--+VPIcy~YA)yI=3Z%tVNIIoDUI!NLZugED1W%0YxCyK zUR!x90$Jp$5*|Hz#NaJp*;=O^O($q^9+3XXzU|w$>*%!Me&{8gpG4Mv`ZNV}bNU`d zFR#Ib@?i#JV`F|=Mn>yjG=CNr0hFp@Zl?D%e|v%LmGxCr(=FR5z6W9TbMW#e&8bB< zTU9zU0uCuoAM!R0??}9!mzW#d`9Jxxc!tR&>}v)IM>Y8X0ED30 zK?9qiy6`R$)`;`^`ix??sy=;s9GP|X3v<>U1*}5t3?pR~T1;(QQ3u|ULE62}tp)eq zzf`lIp1$5~syQV%k

2rl44XKE_xQ1@{22(ZXnxoMkWD*R9OYjP4iS?7!#p2TX2K zBln{`OihFfDY;}hW_3@$JUe|qMKkG@VbRjp%*!VGMa%hAV9SO!{J98WABpMr{Wi>`z`5br31m!zS zMu9pcv+PrSJ?r)pyLarEnV)acv$=5LLT%`=<#}`u?5RLaprE)MlY18}+FmI?z7!N2 z8ygVtF4&_z%hY7P1xWBoc2A+*BZ_w&9b)|a8l_8HavnZ>i2a#=M3l+|Q&(O;i; zT;Bh|B=RH$+BRD-n~N>^Khu7jk&gW&H{rk%=CwtSQqr{M3CcWHr`uwS4#0n^ZZ_NU zF+mFAlzQp-e~OWeRJz{tHriD8&b-Z$ebs1d2e{9_29fH_v$pPdbMCuu^XJVb);fL1 zXUFDdX7)7h-yI@nN3omo#HFujlkCB0npFF4+vHzcm)Ol9ad>C6i9fSm^qrmY%)H|gq{TUuK7{kx%wye9K&M~C}-y)co3 z6mZxSxPoNjJy25^B%K$qrd{xjgmaXD;7lYMi=HU&VjoW28d1w?i=LRcmU)n!Nc%N4 z8)BtP(O1+DB!v3t=wNetQ7PKBm`2#sF`T7{bhf=arg(q*;^V;7ii$J*=N9)>sxk-O z8f_dT(q$8nc>|tdYr55+{r*2DI~`{GWLq)}3=Hg1SzJdqt4|YJGK`H&ZOlGJam50#w8#J#)up!8OuGvU5_%h^62yJ2IKs(yN;U8{Y3 zSA+bKbLY;PGj|7jJ9mvbd60;e2kd|g?YRbB(b?erfjsxTrPa-1~ z*;0NGDh>zAySlkuzI?g#*H{{m{dH#op&1H>oFAR+pztgkU*Wc$bOF`RpEGC0|0|Yd zzk5n~nEBwr$gf|&-r2H!Zh(WE8@Fof&md{h`cl+>;wyHT+PCzh03!VDg?5&Pp5~1S zq~QX^gK=2X5)!Uh^g9mO=q27KUYrs>_|AIF|=+mXWKyI)Al zKO@DKNx37>x?%p9pg}ekWh04JL;#a2R#B3eKpDoWq`25??eI5@)jcJ$Lszbq=Zs$)-PR64?#mA?_jJJq6FI?SN zU&GpRUY;`@<4XNdhDO;Yf9=|}sstu_vJ$Y4`37kR8=D9TCz~^8yjslt7ddrPJ znvOsEQdjR^Uboak0t1N>kVPMM;cMQg>1+CG~ye z>~h*M_VS;C)^}lsi$TG`MfQ`axpQw^eoX!K*I!anQYeDf?OCj%$-E6WHZx}iv@A}= zab{rS+eH{I3X*8xy{aDH2G%{3ZV*~KNKloFGAy!J2AD=Gt2D$EvV;q`C7lM=bp5r! z5#~Dc{jZSs6_M{ok{>60Zr$qqU#2m-){LG3+2{X`xO?TNFSp866$v59byVvWK48l&CyE zKOaw)#GtP|`K5b=`=VWm=F68at8TKPcxlPeeV-lq!V+T*c5#Lc3ev5es_eLg$)qb9 zLbWxJuJX>k7e!KgPGow-rQX|lFz8%M>ltFPsjaSN3Z~h4@SnTq{)>+NU0qak^p-7K zSeTh{ap_+pEOTk7d0C+WE{|k5#KrZKNTQ|OB9w%zyA9gZuqPFydaqks#|8yuxh~I9 zAJd!p5v00P;eF42|IDXub|sd{cY0EER2{EcRgZKPoCtUQIrHpQCaD8xUL&2x~k zu+R5%Y2VOh5*6j;zk<>=zEE6Q7{w}KNY93(HQiN^jX4}RlcnGW#5tgYB3srE@qndB$mYh4 z&;9MaSnz?>AllJmsYaApA89HHhGUVxZ~D_?AOWr$l_)6d6eZ4!%)vknR16^oJk}6Q z1DH-zgQ`OR8yUG8WA6$S5p=p5cy{cZnL4OsXqw`ff%A3&d(|!umBu&@#009A#Cgj zF*{CC??a)Ye0%|`oJWqFaXhvGX{&0$m-fWgPx23ae3*g>lhXbG82r`qPbCC3UNMC{ zH8VDxrW>pG!I~qTC>@7hINY#j&z_TPdDq%CKxX+;gV|LRU%UXHU0a=R0BT?Bd&KK_ z_Oj8Nt9zFptN{X{V1MBA_4BJY_E?i0ijr~@+Yq4@W73zRxmVz}lAEbO%`7Y&=A3z3 zuQyc_wC+-X!ixc}s~BIw!Nxx-gTSf&tq;mjlRkdDuNVV;iwF?S60!pQ33=vCmEXQa zE1H>^0cGmQhXYWWlnPLktF6hA6124eSdRw?R##QU^>K4>e0dU1XR4EQll@+~L(w}i7c4Jkp=`Yr>TD)Vi+lswS-&?m8^xWp5jkeNt*`?Jc zh{h1CG@P()Wwk!?8szf{3Tnx(>ZwO3sF%Na01d;o(wCNSFf~1W5;dk}=zt65gW=WX zd6OUu6Ow-hgYN(u{&|Q*x!2ldRFdi?lt7gd3Q6v#FzD=1sU+YudgrSDW!m& zuz|JI)t_m;8!|MUPV8}C@taUi!?c5f14POzC}>=lDlmu%4BWeK-}A!U<+Zt5-sar% znU`dNKpiH&21ZAxzhs8hwSiIr^w9O~8%UwN8H4cksKh*h^5d%5oUQEa z?8<|W@<`9f3UQzowxno&TsZz`g($ROzhsh zJ6tI=G}L~)^_a!TsCDVu66Ak_>El?B+_kCct9EvFIk~xPSNt)VzP<$ax8Mv|iFOa$ zebdIjnOIvh9yl;OI2aNZ_EFjQ!GrI#9%Vq{JYkmf#vQG#LOeX58XEks&0;lxIfb?+ z14Qp#NZ`_U8J-^Zz?tzB7Jc@L%d{(Tr# zfy(4qcCbIDQnk{EO5&#=tc6@xaI&mfPv+O;hab}Fv=yb??62hD;7Il4Ol!fC1$H=a z-~dxN`l9W|y4%<{l62?}H`iC4a{7Yui)X*#@c0in>D91yb*6%%`eOyIrOwd$k-5?{{qh{(^X*$a+Y;19LEY+3EFJuC zczBpA7!VarO6TCykdT(?(haFApQ2vBeho_+Lcguy2+f>pVS#p=xFT~P1pUh(xtKzt zmIeXB8R#)Jl@t0O(86vSz6+qxVuFeRt7~f+kh0M2K@o|*CEi0+v>+iNK|5U!aKL4{ zX$`Yp{=E5H}m}z53vh$`o90O zJk?%4Vd+Dv<7pda8b~#M^_rEHp`M;zwwdz$JwiHG!ga8Xng;X&SdKz%pO zg9b?&OG`_*cBSRffByaj^_d~y>GKbX5UM;E;R005NAWxO!|DIHwxZ|nYu|;c zOmRp=ZP^Jk1Hg3LTB1eW+}u1`%x=I265^*%pYUctME|`0{2C0=IGqfmng*;2xAoNm zr~Z`3XqV5gg{3&7;1s%pRi0^Z#`l)ues4_4RS0(=4@fdDJVR|I~f5SCH;PvZ zGU4atE+l;FGn-{yu0J8ie)qH&&ha@2~C6%|KViN#Ht zg(V*J1N|9>`3Nu&5G(BM&k)vZ@BbTPa>bzRfP8DcQVK0(C-?i-)+IOuV*8oHYAu1S zLe*gZYLbQ?mXeBDB}JAcFH=DUAs$7nxcp3odwJ!^PiXBvodY1Im824lJ-ayF;{oi| zwY5{vRPQvQVR3-OQRne`2A&PMyE>cef;H!e7~%VqEHuRfY)5 zdu6B9pP6}ic{BSiUA_#%HQ5JjzBMHP=sSf_!`hi+IXp0M#MQp`)GM-3(=^#?YH!na z1alw`ekd<5@5&^w^M@-f@)7X63Y;O-`}aei3v7a&{u3(AV+P3%I3rOsEk$5wa*S>Z zXfSt{Vb!szM2!GITKBv~Jm3M{!P{Rlxw*Ql4Vug92Pao#XYA7w^NzO&T${b%ODGU!%-8fcOUu8)Z&Ap)R++%O>pS( zV0377^yKvPM!&!G!;&~?WdOe$m{P4Zm?)#=yQNXZ7XjzX%F2WwCfg3xK|DzrGC;op z@|)!oL^;(FEb&W8y!dE47qNW2dw^QGqveI-0e)I~`gFCUNA{hX)CVHz(v;ojB08k^B_Dhi)-#3Z6 z0fzX|3F?(N=g2?9xLws!w!WNd{#`VYy+!@q>xNdyNpb<}v9` zPChy{51Pm*WXUcbzymdbkR*N-La^d~v zRLdMl;eggekLj$x@-wxC>7H1NaNvNCfZdQJUYhej7vH_xe`aO|Q1UreJ+N|@4!S0w z2WW$^b24u3_bYBYqETW``Ax~fmE`63i1Z_Kk>7xE3}#dA3qnF=&sTa^1A{~1QG6Hg zzI#zBF6J;*w-1wLI`!cDF(5b0GULI6MW(gXV`)HlB9fBdMieP_?tHOpSvT9v@U3fj zlIh)n@o|^wZb_hVn?BqpLSnwOtbcA{1nyPbmN6#FIkz1Q*hK?h3s5%?@|)}kd!q0n zB_&0s2CR=Fe4;HQHlSeByYrwmc=XeYuPXWKAej4!KR<0@F$QQ|#Q`@6znk{Xec%Zg z%*OhPwM`AtH$WsKYR})L085DvYn%QS>=Gro34|(x+1c5yD^LuOAW1#MmO<3U zOHoWj1khQgs`0OP`S*4+zO|p!v#G(kX2hdBWT@C)Z$WEl&-cwM1=w#tO?YP zN#5zV`_JQ1+^Z!0d?z~E5NkVs05^lx6mQ2fCpwPVf|U#K7&I*j=gR!p045e{je!l6 zZs%sg=G*E3q5_8x-;Uykz;U@m0)k*XO#Wa^W@hH(T@hZLuP<&1huh-o0bZYzngz_d|Xk`Ya{_~Fu~&%!C3XrV_l#YtfSvVI03Kqa4`DD z*q8Y2s_RivQP4Da+JV3a@2{_|1h-%RR*3kPb&L(t9MuCW)1?i;1#pOt!)9wqL&YZw z8}L<+9m~niPSekO6-IpNpzH$~j1CM`Xg=T!HAVgbHRKiYS^)t8At7M>aK^g;#Bp`> z66wQ-TY%Ai66na1cND^pu|6Ihk~ZGUMc<7N8@9!LX10Blqpyn`zO)x#dwvwF%O&tVymb zlX=@h3(%&}*paYVM1w%3-^P$|b{2{w@H4V|-=Hwy`!y$gVq<$SB`AP5u=WjmC=dgB z1lJ!ge}9jq2~;CpDAk=Hd}xm#+RMLw1<8@^4xa2jD;f>)J8B}A3+xy9!Es`lL8zmQ zRR`$#(g!liGnU+VCUgifs9G2d=*}=n#>U6R5kbOS0II7WuzI3-RJFHK@~9)&28)Qu z)2J-mJNCiBG}lU+HmOelXz24VSG!*7o*3ja3sstX%K7&1-`~|x0B;kP8d97HF%k6i#>U1v(5RRYC^#te5^PDPj4gaF zF856*je5CI>l9~Ww1k{LA&+|mQev|~x?{)phElKv9$WDB{82J* z7(Fp77PEaHRtE#@c;J3SWJ$XHdg99N*@F>-3dG1%s`qaW&oUg_YZ+a8S+U4zo=vnC zs)cT7NbMkT;@W&t@g*qr{1ew7Q-=H-$lLu4oBChU&ieA@^6Uk~qX37P(iBtPytxHD zB*8)>E+T^B!9fL>0v+eQ@{fgu1Z^o*LIO6T^7|brVt_e+r~Ot-YfZS+DBwG=oYt6f zac1$q-m)_(7H_XU?&lGkVGmlEFQli8Ug$8{A$W%bNorzV@4(2!M6p$;5LCb%0m_N) zvl7t^P-5%g=N~?@DXS#v;?wE3E1v|ujCqZZn6{&@Lob-E;B%b0V45Z*E!i5m zSM`|%x$sQf9-GO2HFlnR7ejfCUs={k_}WeO8|2@(Q`-bHFw_()u=?%sa}iTDzD2~j zOg?yIP|q2XXM0j|DgZl@;pgQkUW)FrP%QG>D|oHkK__r(K-4+*21VE7p~48_oSm0K z0sNFKrNPO?<-{MHV`l8W%(~nHH9bFrPT=Z0%^k}NJmq{y?h@)*f~(=fGtXFWkz)=7 zxtiPP1`EOR>^1H9`gIkWi3CZikP6lQ{dQ1T<$HnWlvP#R2wCoaln_}*;YI|!5EmCm zws9_l=LIMb(G->sM+?1n`iOGWtG5X-)F5BHxb^ETMU~>->=4 zoxMm^hI7A0@7hLvRWw0^qb(zP5A=lrYn6c7L4f4wnau#CVId(O7!$r0<=s?Gx+JVZ zvo^pRWzk=Oorx$n*AZXv*4YEEnw(Gk;&@{6(o@E*X1gEf&P}? z0BjBv<#Rg%cGW7OD1RNfR%t?4;BBFj6bzsbS6ic%l-udYqJRVa4GkscMnS9#IM*U= zZc`uuwc7vH07U!$B?^^kfl#5G)ApKzTO)fr0N)zbYJboM>OZ7vMOD=UK?QMfagbe5 zikwTURXDh~=9iYJ^B4Y`GK{%~iUnxfEIu6p7o(7vXz(a52vk8R=j0MgGun|&tUCP( zVwMiBA;Eh`X>qZHhsOrWl1ezgti1bi?F)9jLqkYCRF#gSyilGGOh0$)mO!|x<=HR} z9v<*(6-7l#saiCDcyW&*cIUQ{hbswLG#{PYnx(`z?zz z)cYrqyL3lQhWySHj>Jhobo3fPG2L4Ob=7BQrH{T51GKSISYGP1-Z}02`0|2fEN6ki zI#L85Dl1dhS}QBf00suAC=IsCVgZ)izP)LV6AI40J$nv^C_vmh5~5IDhgJk~zK&Fx zK!{nTXGf6rWycZv+#r>rG)IRyg|ni)BY861V-~-Wy-(dYvCS?1SzB};k6m^?WI;9F z*r+kri2<4G#CTY6-X9CeFD{O%*|Tq-%;Z;evq!$Zb)a0y$;iBuc|R{MUPY|})lr)a zDMHncpe{i+l|Km>=jzoFsA7tWii0)hUQ4|zvyvYxsc_wt|u7W8g>_CsYC#G$289r51+)oyF*+m!=}jCBNYF61v6+J^maG|^ zo^EAtpPQ&A`>n*!U2OkiJ?U|k^)hvAZeZy{`}b?9sl}-sHR0DaGaG`7OK2!W&uk>* zzguK$_Nv)wn1?0*agiUtlc^Ou2j(r$SV&G3{(x;K-`Xrc?-P=dRt7C zdhxNVS;Fj9!+hX7r(%kz$Yd{Fx^(j7rv3Kk&p%DvROh0`rCVm@n|yJ+r0Agod&9#U z`&-S$^~xR-MS=^}IF=$7Tst^$;uMk<%};_48D+uHPo>2p7Eqw9Mbt3$)B%WYUp&@Q z^`5T|aKy1MtlGrbZE?RKtiHq!V}p8~As3N}{WY1695z_j~&{E#KIY5Y_ zT*CF|=XX1f-5EPs1Q9GUi`VX<%(JigH(5fK0XPWAqvxtSwZ7DiPuZP}>XO=)5A1^B z%?ba|S@J<7`k~Hg&cZ+>j;fW_G*C#+y(8V!0=oTMhapW{)Iz(!zD;yb?D!N|=l<`Uu2hPdjj&lTX2?CR5MQu&Yw@#le>&L7+ZAmITQ5c zNd+ZoZ5B>xz}XuxK#+n^&-TywCwJVz-lo&gyLgc)=MsXxJAFS-5XKGO*dHmm(JK>^ zqo<~JvP2nH$tUADCARoVGQ?>8JEHm~yDvqld`M&3KZ+jLQAxTk91Ke^S^KCmulEjJ z>%M3i-MzcW)-8>}Omp(#oUVTuRcN-1wXm8-C@5L*h&+`K{NP$^Z>0im&|Dd^4Ek}5Y5b_>^dd?8!qT|cyGS3b( z^6y($5^G6M@5swVI$d@M$%7`n3E0L}y3O0-fAzRP*wRx>j2ZZa;zXDqX%iuaWeme! zjsE4t$jHdwiD-IGsM6Zb%f8Jby}iAsh6b!xdItsv5q@2leNedhgV{nQX{v)YliePP ztnBO*yR@a9&&Iq{ZI>6CRC7LQ7#XQ(|LAOQN2R$5qi-_LvJFJb?I1Hn6^;4bQ{ zBzij*<6^%@5q+^nrwwLGK;f}DUPvyOjn0z%c z^l_flOrIQ_K7ICF^RcTnl|Jyz(^(Z?Xr%hQdHp(|=JJxKUiH4~m(T3f_y4BVEbgT3 zMY$`jmMk-Xp2&3H1+6u#aos*i__4S7c8fw=hVige=hv@lypdcbKe}B^G$t?HB&H~9 znR+TO(A+a^2Ya!`xghK|^keu18Cq$f0kNOKi}+K1RSA{z@rU~=NxA-1v&=kUR)?HN zIZ8F00+)%e$H#b|vw=x{iMUUvVj$1AnUr?dtv|`sR3{i4$mJK9z$%1qkP|vFI4FpS z)?XLLzQgnzh_}G_L&GWzpam3HU34zC8`n;^rL`o{mTOM-Z=OjgeEwJjsnzD>i}H8O zK4wio(W>TU-hL|Otl!c(HRe$1gB?ZrxhI}d$;d%?kgGc1L207%2I>W%7xTRB^7AL3i zga=;)(~iA=hZ;y0{wQ^6Cj|weKK^4QaxM%qp(>IyB32y&EfPpuvCm(1voz9_zgH@H zYHjbgEYnBtYwg6!@X^!yr$;iA^W?9a#v{1K2tj+ z;TWL!7{arrx@MwMuaq?CEY{FK9vJ3;bPI^u82t%vQ{8_SE`rl(3n-MF)$cXU=^$g%xk%DvC-ZnF4n(@$6rq?#Bb9^rX(w?F<^83W9L>IC_J05 zT!Su&Lo85W!nk$$Z;gCLoZ@Jbafx$Coe*ZF_dQbgz7n6IQ>WTdvrKg-ibm5tdLgSQ z$Tc^!uyDk3AmzI1)_sdq77Ly-=?e?DP`Ku{W`TZzGLssFswlZm#&6rNR{P|@DRt7G zd9*{NUHyCa@0a~Hq}y?-emcGVu8h4-328yFa6RdLxy6oI6p2lBo1ye2A+B;G7OfmK ztIE2mv9XE+zH2i<1?FG1iL0wbcml&_tk5{HQP2l4lRI>0RgXbCw5YmXVDJ{Y2-J_3 zm%6sAKW8COB3z%iPCuFo-muv=DE>R$IImx8+hj;G8CA~4rt0<6hp;s1=}9UPBRFk0 zV|qAsa~sV2r1liOO)Yo!$e%U1)A9wSpxOkZyptmxZbBF_}K@ ztB^#!dSu@@=v?{4Sa568gS`&cO;IX-9~z&trqL~p-_9Zc^7PFl>;1iZWRU#zbCzK z{NE8{&&p%{oqnu7vTXdVr6mW{I-+KFX67(snAFX_t;@&Sb7Ub&z!vtBJC8JQbhH~N zA%Yp+US7V3L>mE$@cQ`iN_7w`0>3h3y1CcFJ2oo+4je=2wSW@`L7tlX{0$KQwU{~T z_4tYrd+qPiMo^O1DX`Ls@#8GeFfs3o6_unoYjC!2Xy~la*p4qa8pe;sULD+ip6hjl zg0eDeFxbWzqq8t%I+ro2pjvc4+pd=zm+K85EEp6 z^e`7^FUyFBZ0;zH{rddoYm!<#BULI=6FBm!q)b6hUUX|T=u4RCFU#0gK{H}ibm-i7 z?oSrrR>ypboFu`RFDKbE;$!C3vN@dkNwuwMCq7#DAh7 zWP%|NOb=p^0lbM`NL(x$Kq*Km5D(wZp=XnGD}zFrXoi(~Y#=(RQ64_Gr{8TyuW!z+)Zsmb8;|KScRl$fo}~FAW?#EFUwk?_ z+x&H@`PAfOVk$Jr(b<{q{16dZ9clTgKB-1uJMwEGjkABr_QfKpa{P4nrC1feTASxB zqb*!xw^A*4hW)*8B#>gA=Q`&bT*g=+u#s#Eplm-6D0 z&!8B!lge?`_WWJGNl?C}vsz9)Q@fF&0@4*4*`2O0oZjFHaVriEfkBXq+Jl#;W|o$; z>A7_{5YYf}wAd(yaN!1U14SRQazkw`QQ84(OjL;;!zn=HbORJGM8a))%e)b11Zcqy z@tx>=xDTft{ifHb<9`{&iN$_-=sexMhoEc#V#q zY38_aG1a-uC8g3WtGm5~oHzc4JM*_d)7$~-3Im(=o_TxLAR?x6?t#=GcL3VC& z4e#GSgYp18j2P|Fqen%6P5_s*dW<#(f>m#E=Kjjc%VXDnhJaE=(?r)e|GhL2a+qWV zCQv0_?XH2K`cz57W!KS6ZepOyrUs_PPTpMf7y|nQG5qkl?&nX(Imd=ipM=^2o;D{Z z;NvLxU%x{W4m{Vg*Eo&kak%$B&6$R-z)y{6A{Ad z!csW(Za7z6sTWFIdx@nx9y*MS3e+MDS)I^YN&5K3w=X4@dB>l3S4V#LiWgSw{CDYH z*fY1W0isTO4|*J%xC^bo)qnsSe85D01Bd}m$iN#AxrtGQ=A3f^&Yl3W%ZeSHok6a&M zsK`iK_CLJ?7Ew(cE0yfvEy;Wo<@0AcizZ+;H$Q9vsXf9nV-}d<=06|$?>B_Ta3@6IoBs_s*JjRPD0#KI_e1oJ4<78>H35Z=%ul5Zh zcMuP>jy)eYt{Jlg6f@EI=`sR8Ud--WTnjYbY7-Nagc&D%#z++p)uBU&ZcS1R8sft$ z5Ui=InC`5u-2?g6q~eww5pD1ovuMXWe%GHVN7_P z<@jA08JQ0Xv?G)6swTIwM;wa4L&!1uJ-uLz<)DguLeA z*R0Sx+?j(3B?Tv+$H@4(tL=D$dV;_&Pk3~63548eh0hgR+oTMA-1bt9e%8zZ@xJ4B zb`5m_EJw51X4ja7^FbEAYikc6NzvhfWk5Tf zm*-EZJTrQ={oX~QXpRspyuvmqbTLpL#!9 z*3sd-zPfCn!4n34uUq9y$l=h@)x_DrIiCyOGMV_$9VQaQGd0#s)#JB5Qb=gxXxYdQ zNbLsBHcyw&!D(3|qi&Ru95a`>fpdg^g!AQ;Z zf1Ho-X$|P6BMh&jx+9Gm*uG!I}n!hACvu zl;?4}B^<}m3tE|M5iU@&?>_;1JL}S2Ikn}NOtjIT^ubLr zE8+=FB^8yS>D2+)M1UmxI&Ze&%pSkT#tP<`u-FcDeu3u3-Mt&XAypjm0~$qZ5B9S7 zYSeQs<*4dhvOYDtOH%9o`}eCZ?!=D?h&grjYVuf&HPgRiex@Y&N`+|e4SM*-@0 zd;_tpSxrvD!otxtfwhBOO&TUY@?q#eENU`n4ps)r=H=k%)m6ZU=ybfgMmz);Q2>XA zPVKmeNInb-&0grQ1pgVpEvV71-`Val6Z<^cfUXx{X>7mcMG>-u*4k5f>BHQL#a9hkkg z!^Q_fQgha}-3(D-VM%sI_y`EQ*=M(q$nD?8@tGLi;e(n_%b%3`Q%HigkgORH3VQM(tgjPn-e>>)~fOr`=7*c)Orlv3WRb^#AAR-Ln;E#e8 zBnsieSX(<$Z%DsO^ubtYhC?7L z#8Lr8gpaSp84?tZE)AI^Wfi9?ahw+&Tm#w3n>#Fmi>_csl)SGuFhD{(s13|;yyr7G@e36*Q1NtH6+1}BC z@?_3wAm6{0tK)BDXQq-g)KqKburnq})%{LI(b8y}$oq%I#MRL(q;eD|OGUBfoSwlC z15P4-yi1CuS58ijg(UyS;_W#>tX-84=yDl~(!M&(z1*R5F*-M%^*>8wD?X}7Z7n!X z&W}^;^7D%M8^QZpie3f5Lc}W(EF zkSGPU1`6`?w{G9QfrbpP6G7qKq@=XRFL`xTQrx>JwK8!c=D=$T3XKQw###=XdJ`dJ z6_NOwoSeKxN-R|iq`)zzoyz5h(67-arn=GFgl%r!Lb8i#``G7Z5hjf{o7Md&v9`oW z;zmixSrK)7DUzi2c<*kqXgYSd${88F;XO@F!NYNTR1z#>yYcfXeKp_H{$eDv3u7q? z%z;-+3?gRZw6na3S)EpEhy5!mF@j54=i4T)F8yOd;G;l%FJRnL^O~I{M&s?D=A){u z7a+YZD)Uks{+`ylRUAXCD?;iWbEf?5FLkqT{Sxo}+h0`vt8~$ilDpOj2ZX=BE=QXQ ztTq{-!g=JFAP|hSl%qM{=m&;}9U#%lA5lP>A0V}lbdw(?Mft6%E>Tui*`GEk?RKd@ zkemvKRLk@Q2TxQiYrXEABAea#TGa6FXll-#{_IFED*2=DPo5N$_gP?WJViyW(aiPT z`;p@d&Iif2Z$Ce|^;7}j#g4lKS}@=!YCpWjH!VKh^=-l|I69hi zXk+D;{g1lvD-QOb*oMPJ*;!avdL&*Qi*;KHUwe%m!o5wHT)?Di&x+^kSL@Dc-O&%9 zA63qtlGlW65HiJngHN>g;Z=H*z^JPF`W)$`(wA5;;L%w<`TfZW88c>{z1w-I-}8Ly z`{R55`PO>Z`(Eo__uaa?u5&nsec1MG-;Q`64R+}lKD5ys?b&xqqkGWGb7EJfQ_AeH z1)I>m+;OVhuCJN>t^}DG4S0hNYm+XaWl2CFt2oF?G~s&g%I;tFX&%#7R#Up;+pSz4 zZn9$VDBX#2QPlVSLTl*NS0afYMjxl&wJY8@4%xG(@pXYvF!iFe5=t7G=h0l_&CUvG zv`d8qSwJN3gxz>d+0**D@jripMQleAtRt$n5n=CvtRqC^#W?>tiM#zbpk}*k2RU|ow?FV)KwcU zO2wZSilKCOl%GF#o|=tai!PZp$rppClWUoPlsjwfZ3~M{)YJj595PZBD>f(%^L`DP zV3*b-zEc~-S9*2lL%Hl9FXqi6eKGw0vWim|4|nkP!}#ymB+mgZAo8G3SNAh6SPK1T za2Kt<{XA^vrcqQPeZq6znMn5Bd1ltGNUq(eQebZdL6@gbH_rt-s(Ic10BJz~ru{-E z0&X4IH9s>-Y;##DDfH(Z+`qpINk2#tNC{D%AYv4b7Ff%lF@pLGB9D z55~Zi3Ezdd86f^Y+t2bCukwgc@dZCi^ksgD(9%xE(Y|QE%M%8}<;O9dt_c z`q-AXmw);cC;4#W7Km~JiU8z~mC*)nAu1fhtY|$!bHE>z8jBW2@<81Izk)9NEK+>X zAD4mdabKA0io!1tR^dbRUP2vEUHv-@EXv!7Dhc(7xxpI16SUa-Q;BH2GX?Ma54uAb z!50T<0xhAyRFGJK#6)xjA-hA7V-Zl5X1CK+ti27_5_$fgk9(1QiDE>tI6=4%kBC?X zm;-t}+jp{WB2GHbgo`ip&J4@lk9t`S>)TXvD-bdJs=^a=|mA7a>X4Rny!<5 zxeT4g@fYEC@^XHd9l3`a>ACv%o=v}cY!5mW!LVa2Sht2OZmfl%x{w`UCyW1uXyS1G zm?Z830Jk1X7Srd)quKa;3-D~etyp#aA!N+_&_7jvU(pk_hAgGjjG6c~-R=hAHHxx8 zBh7COz&4(X5X~u0mQq59a#KacZ}Q8HV+MwX{LLxN#?v!17ZemQ-|w+SCaEdOyv3at zR6e{Rw1H2Zz4jF%t1h&7-Kp_$A7-MY?|Ddzpg!4I%FsMOG{rB>N>zduipa3ALsYJ; z_qE8#3jV%>w2b-MySI>;umytG45T?IG}I_DgToz=R4K~K{ukC$Qsx~g{B*C`7>)mR zp!*)Cl2lYwM7eFslZx!h)*>h3Z4{3YqhWx>TKO0>-Pg*omDo6_(W9Egb28Z1*8-ae zylSHOgt@xZ7|Cy_fc<#fBg?k3yxe;vApTNfBUmmu0XxXtg`5|Ni$>j0w^(~O1n|IE zqox_XUMXsSjx%jG>+efUc{7P1#DJ-BxP3b%vSOu0Qj^cAZAZ{d=Z}ru514EZzrj;h zf0PGz?c6DN^#hfRAsLz1;lEFn7Sy=mZX!BA9zT8zIf)4vKSU-_bvhD!&Y$bjE$mAS z0lLnAAjQKd3^KBjk-hGGms*Y=lAi6%f2lg3=OcRfRzF|pD*n?p6~*cEpZ|aAA_n*G z=kBZj{^RHW>82wKfm8hVrDM|O#2}D9H{81k{w3-2zx@sFmCT`GMP4WhHui$}(juC#^&`EEpOb%xTv0Qg*9JyN7T0-NZ|YuWSw-tVK<~=W`M4ORaG`vKq(1+m7E# z*yq$~rIo~7A)I=rP@-_F%T~)0uWe!|`jL^91?07_`N?x+@cy6}lIVQhF?JisuhzE(;2x?(pF8%WIfH&+h#@m`p0 z-$=CM&mtMde$_w;2}l9}jZSDJKrDshtAk)D$#X;Z1it9c2ign3=PB2(2aMf^?qGzL z-}utHPC45Ek;=R{jBZajC$t6I0K7#*K0IXyRuL>7{1E5CgJrdkDz}b-VdfoCU0JD7 zhtWcOG@0Vbbrk3nH) zu90*6g<4s>(#vitxOkJeUMOzzG(lZ8Dm(-nNblFs{@!7$4s{D~Z{FZB0yr;z{QNl; zWeoHaDgjt(HqI*2E9`iT^2|U50Oq+0kZLOY5n34~zQ<4#0%{n^4VyP(^ixz4l(9Sr z#V&&9_iZ>kCC}m&t@X_-W%qt*%km994qrSi-Nu^ez)sSW5^y`E_mt_R#_~9NkiNc8 zHuxODV@C9K3~oeMhxtRqIX`Z(Lqns|k5lH_nzL^arxJ1W_V1{?U4DD(lF0cj3@46& zG23C%BaBe2_FW0)voi4TVKoP6^dVegbdx(PR6m3Fc8i9YZi3FO<{C;03KXZRo*TRa zvXWzdT?7!p(tJIcd%!)ReiXLMt1udO3?{I_do<&Ue>tF(urBjM;Xf__g3^z*lpItg zXa{a+Xqafznp-0mrwrY#WQV8FiSGRzX?8StqoYx6BQ&z&&$zCF8)jbOhn7f+0D`|cyPlaB;G{%z z0I0GY{_(AGZz@7xfIP!e5u-Dm@QBmmpAp%p3qsrxYN6LeG`}Tl&LA3@7C$SS9i3-U zNNcThg_?^xJWc)3g5ITNMWvZ?;qkNXydw_?hrptHfL-x~^ce+6ZdR?tE-WkCOS6Z98`wx-fi_Jagtrcs$@5c>n%0BDl4ehexLA`(>Af9l>r0AHcO08ozTnZP$w@ zo}RpyUi&TGeI|1as&3%|$aZvWJ1Ho|KcaiBPh`h0_hN>)g=}^FWoT$9EAtf$3DCbA zZLVce-{B268iTl@i@ZL4qEJOhRz*Cc(rbUm#@fiI6u@UfTg&}8FAk~ILQQyT%Aadt zZtk+74Is^i8o`cj+xS4NgR}?% zXD4dt+T83ba`LGDATpZ&tNi$AmZX0Rz!Rx~`qH5Xgg6WWCJ=M3h z+rD`vg0V}(Kp$e`(i~U3gL3@0 z4T($`iHIr>_NU(C1||R@fZfboW2m2-%(RBC9Lz; zuS}PfWyi#aj~;R5T{X04vbwPGt+3v=b=-7LB6{iS)1_R?FQP}Dzg;ivF!nx;SARH$A=nJ&>v-%`MFz#E5n-lY!DBP>9X9vUGt)MXiaaEj>GvB0chL|3L`MML@1yb7&c)i_!-U5 z&Z_4-S*_zf;C>Ha6!RW9Lx>uLh5C>qWUaWl23YDM1O)Hl~ z35#SccJ{4;jI36^tx~%qV)?AsAg@(?OFH~kwdYHsbWX$v@#Q~T2REXJB!HV>k<>bD z-L%QqNFym-Z^`L|Wxsc_cX!KS@|My->%y(k>nhw(`2gyg;97SB%(1uh2#7!rGp|30 zzSA2PgKn=Q=(wy)ey>+mpSLc#`e*R*wcgYv-Q@s?dl!7(Us06VOHY4Y+Yp>$b2~&FNS3lPQxQO- z=lLv`p}szX$TF*YCv{*Q4$z|(I?T`k_-$@sVWz+C8nFX>tJU`&xl-(LxbVi{H~8NQ zd13Yg2f}cmK(uRa-xD8sucSc*86#AFQqi-kqJvfk^P2Ssd+IjAcJXUajHo-7Q<@X@akE3xaTfD$&npN5Xh6} zg%0(rpEHWKNa0XlxTiuWPz`=dG>kKcxkcq9b{v)ort*^8`(WP^tMD}6dnc{kHN}T= z71VF{JpcA@;79B!?|xDTz`(*n0 zF&r33*63E=q?M^8^!WaG<<(}`rJixLbPl}}z{9{sBOJ>@tUE3H{?Jic)EAhMZZ3WF zIK`w_O|-vuXNWqp^M}?zCcv9nA?V19;AEe|#AJN@B&S3f)fe@Tso+_!>` zmbL-B!=6O&hMsT4=or;SKUAr$tR%=72-SQp_P}>Ulbc9t@P7Ge$M0T=jWWjjO(7!fP6NBbk`c!wW^Z>T=|!=^+MTS2>N!=@C`j6F6a zOMT_+sHWgp(4E^7#%>k*xma2741T&f5M0qmQ1kWB?HaeW5DEejf=4~=l%2%Y!bD51 zrbJ5vowYg7v7$7qdyjzz^^2bBV4A9$jNAtmy2YtS?Pws^kM;y}k)g^k@mN%ogEON0I8 zedUW6d)lmqzSrft9*vww6-QG|5w_#Z?zFN4XDSa@V+kO|>3$4brP8RPaO@2l;5@X| z9hpHp(icCF^NI*%HcAIIp56TvM#IA+Pm`vnRh4?$q4BFQ=hxu}mo_I+S?ba(+!=bz zxI!`(>;}(7^ayX3R{Tcc_P&>O>frnnQe{95$9=&qJv7!OwNPy^0SA2g^l7vn5WEo- z-iWXQ`53}tfKX4Da-`5S(&NG5Bk9Y{3icP4S zK%@;D5EdqrwZW33V60>lMI+$TfW8grxh`DVjWc9q{lY{urgOUV-+XRrQqvilhr>ig z{!M&T{uA|_Tj}SfPLIYQc4~}QI?cu1#O{67cO$w%5Z^$^*v~LVskY?s;>T>276>g_{odyKcj2HM#gjwG zPJh^n#PxpPmAsjCM_bBUpD8E@%gqe){yOwh%P7Z=3Qt!agr?jIwa>nTPD5PJS&$H7Az9+jWr zZ=3t-I(7Bu!=CELKXVnnR}?c{EK6p#mS#VcJzoC1el^J14rC(+>I0RVqNXM`*~ zkBhAHl&ie9;MEt{i1^p5QToOUq*9pg3MzpKy1f-0xOOC%;~4Nu%3x7%Gf zIpr5dyM%=sTY@;Z+hY=iz{?4WDB;*mxuV75%tKg?s`H$gJIj2{rye4c*rCTOkMbtt zuQ*y&?LPyL2T1v56cykck@4345|;~%I#Hl810%iY46>>pRu))&2+pset%mR#^)YUu zd)=n!d*sGBB3P(U+OQN|FY;988Vn3@2nq??&WAg79EOh%%pvy{Y_~lfnxM^~6e~xc z<2X=%kn$ZQ|9z^mK01X>LamPeM9eJylXJDHc4BPo2DCj8YKD7z-v)pJ4h*pP>iLbW zn3U#VuO2ilc@A;2vB~gio?A-o5{llf7KXU_#O)}p0JFpB3JH*9qJJK!SX)>Ow&lH3(RpVYt}+W6TZ|;a6NY?qE!j%D zSOghXPh)QMKhTajF4gjjQjl}1IDO~_RD~ADJ~6xaQL=zOwut8N9od^q zR1#Is^D?6m`T2Py_I@+jD)EXEQ}N3Jo7bPlK?~rHqY*76D99GEG(yZAsl(qy2-v_ zLtco^(vemBO1A|Y=m3%eJ8d0o6voyu)Kpz34^hLu(ax82pC00sp(QR7Z;I+JA(filD4;<)$v+B1D?D`Vg|kbY8JwJz>NpF3Ad;;I%>XUu-wAQX+K)N5Nh=9$em;8rZl$y?1Wshd%@cd~o=WAet7CR7864fhl$6wC`8Fc+sgiI!h)uH>H zV6vB&pPB0fPbq1TNL|_&Funk#ZzaA(S-aq$uyHYNEO)M1?WI6zYkdFCRVzGUP;_6~OxJt$*J<-@apwY-b#9vkf{{$%M zk7N2SqncgLK2Br}XZz4N-SeA@vAeT#Um)%F?Md9k(OW4Nu%5{7TW$^mpMZb!VJ12Z z!#ToFu_w9z*J{~DpH03$DrT_>{vwv5@q(P3M)vI&W&Y)e2j9fA>Gp9`NrIc=f4HZ+ zo8xgJ2GT$vG}*>4A|i!h^0^DL}xg@663(nH4qk%o8iEJZ3g z<~@!xu#Po3jR=bjV6v$L)t- zS8d6Hws&w%DD-a47)3s*3B9w$&_Qo1(rgnjoJt{e$S6cPew%+ihRup3v^08KW^+C` z1=rs~`OHK3cLea)%Oa66@%0tz^FXX{^Y?V^>oSIi!kp9?~)VI zQ>kpH^K=(qbn#CUrI{GTL|WC8X_9sCXm@yA7EhXI=K9Tac_A`JXVro|iAD+J;mdOh z$!D=mT3 z>0Sxd5VoC6L{po>q-l}_&99#&>yB*Y3QALH$2xH9*GjleI|}*F2ZPSNQq!@MzFhP9vl$dRpn8wD zD8!fG9(V%20C#gPw4_l!@i`iLMW>cUo;h}JU(Wb)4sImTR{EU zB4!EkBMcB0>cTib8W842_yh%;-g6#B9Wd0-PruDo>%A&5XNb)>M)%A?^pIgWW+jmO zV+2~bfI4=UJM1LaEBD?v*Q+9DPJ9!7kb}}_$N`o3VM7~Kc-YScDP9q=E)?gAVBN#c zE_GbtV|2PY)hCqragJNI|HNY*%k$Ktti$V725Z^iR3ZJj1*3> zf_`xlB8l+C9%;!q!wn+Rhj{P3`3WcwD<4HG^uu1Xqxge)HhznpJdaWf^1^n7OtdVc zxS4M*JRoV;<;G6P(}{N)1I$y4{_GcY#9 z#_bw6F+!@bX~Tv&9B|h&P&d)j*~tgw0Iu%)YgH8DAyCQHboK2|cMB>0A7M`$?Po@k z9Z!%{#Xhfnr#$l|u^(}%ni!!v?>|w^aoO>L4kX%kKDuO!?xsfB%R&J>RIYe0RDY?N zMAb>zNM>bkqTx=NWL>y>FfGaCrxvU88-@uq5S%VAa7ig?UQd{WX>c66AD`W}mn>?F5?#-r1*tgMd*12Sn!7%aoJsRJ zSw>>R5P3S;|4(#@`yB4}pGY?#{v}5<@_!ijf+!Y}KL0cJh)uz|;%hA2+=JK(_Okb` z))))OQ@nic#~#IBD;qWY(~;bLEB+8f1L}r!g7FOuWW%>>{vDn}_Jz(yp;!sz2W@~!?MhKWataCoBYraz6Bagc z*Vat>1qE@?R|fD@IsLioDW!ByPR^$ic#hz%&GR4E`RTLyqVz6JLyou}hYS{!u916_ zpP!F7MuG;3CL$Pei8JTVFCm3UumLfO@yH`8S)4b3GXHNz3U^LqV4OlqAg21z-YrC5 zU5q4l)>#EI;qB7ts9q^IL!h~vJPJB+uq6knT;E?Ao0(}6VTh8ds;QZR)EN2u8^`eK z5;Wuk`^cimuWI~<%JY9G#pnNfnfc`fhyeYDwLFO<*>E^AVtnMgM0F6r2!dpocKYlb z4)@gprntkjF|r_NC!pyDnpmyT(wk%j-Vu^XFwp==z@-LV!03BgC;w+rLOT;=%_b8j zditprv!b#OAN=62VfsNJni>ysa^n2Q1sKnW_x1K38_64$>p@6VNPv{Iv*!??EknG0kyzUR^<1U)*@&F`Q`5Agqx6w3%ly7Wmia0_CQHGh}1c)~%8vw?V zc4iY3TL#At-=3bD3O{k@D$-t$9YGxKFmTixHYkbh29bW-wm*moFN7RR01GzdyJML< zJ$me(R}!aug6V^!B5LDE^4w|g zcqj<^UEI{(-VQWm!^Vw1Oelo_JZ8WVmQyugqZB~S7u;dwVave2iFzzj0(<*;9QaXf zkQv@qgN7}-visw?ln3xT&M{qB|=JWIO z8fId8B@b}YtON}(2Ql=rAnrJOkv_Pl7YG%)$xhKc0P2K*sQ_-}q5CkJ6M^LTS3(`! zTaysFLl}Y(l9#Fk5F8GVrK6#V>gvUq?;zKMNR~1i5YN62P_%H)H!90GC4nVQFiAV# z_70pE*gc28w)|t%Ma_Qcs&xZ81~%X(SDIbBcA@?qmQ`L=WdtQx)CWLWrYnPszHC;A zf)7|`5;U9Fmts_bpw@qDZ7j&#&b-7} zpa?}b{2FJfL?;Uc5(pAK&{q(!{12aWoIS$IdYVgorqv>Ax*mu`0?UPrZmOHYoDwvM z?WP>LvvYC^5MLr^%Y%Z&l;cPBN&i7SbF z{;jC8;3{8QnU{YMl@T~INO+uWGFNy+L^Ln!&eda`#7ZKTfg>;;mM(m`UsSa9z2-(K zB`8n(S6ZvS26*^Z<%IQ6kbCF~`s=ro>ml<%!FPu=A258xH=xwZ6v5`_|-3D3bL9I%^nC{;->GOW}VdBl(k zfeKZjL)JXweMQYdLbn)qX079b{Am%2yg-I9=%^0?xD6bM<;Z}F(1Ot&sOq0+5c@aD za`Ok+mvL08nEm7#=Nm_MwF9<7MN6ZPiAycz5Ixc}^n-yz-{!ct70Pg0C{UUoc!Z;o z5`K=3n#F~@zj9>HGlR^_v!g?TeMUi$!ghoNwP^Ccw^%7`V<*&Y?w1YH+NNVQ6t%jv-4i(O2m)f zE$sGS?U7h-_j1i6ds-NABcfrqwo(sxgKJ4?6?e_ zOA7=I9{>uJw{7AW$GswxujgJzi={G`WOD`{H~|3&3g#iOnk-a6O^8Yq1Z6dzY5FdU z9SN1|JBuin7^cqi%aW7>fyZgzNdZ!9b zS(~4mgOf!~O|?Fp92^^DLtvbKfi+DY1ix85_sbCYU^ouuJvaf~fl^91?uY?Y6Ba5I z-s*j+bq@ZXEi*Ddf1SFcq9(ivq$R9f`5vqWq3rs9$ETC!HgwjyA(uiyQPtTN1qn2p z66uSGhyyYvG)^Tb$GT@Y!{rlg3}8t~(BQQu;7ZU(oeqNqEE$c6f!l|m!%Rpt!^x6M z2b74}9e=WRr;4|kk0LKiXLs-GU8q?DC4)#52sT754FreifweIPTh^bx_s%WqLnZ25 z^=1I)&S|dcmtWTFawNB8kMvsHM$s=%R|c{UVXg1~UI|>oK{q&|B*s10LQf{Qr)|fF zfN$|i*RVX1k>Rwb6c#E}@rjlgp5Mr|3}7sXRK_44`nUv3V-l>2S(qX8#Oycg86F-k zhq~Nij3i`V!*4}%R8H)(x3_=&His*wA{_I1fT{#Tf>e?KUiQD4Km_u`Whd6Lu)}mx z-3`Bv<5%|a@hQnE0HOQQ1|1vVkVR#YTTyk$)aL7cU*gdfdDrYCdUa+0F#RKf)!w*#LmId zkLG+FRoV{@ALtDzSzNqu5~pv)VTHAr>mYzR#n3 zsn8FBYsQ3VrSJS_GrlTojRf)Uc{cu)wlZ%E1067FdSLY zRe~nu*v;s!UaoOelMSr5lXn8>M?7ay=lSniiVxvrurFqD%pMpv#sxkPl);9}7dVX^ z!T&IiPW~)jo>9~`Ej%_3YVNG`5vZwAuH)ae8GxW~CF0kt*Ep74?jeBb#O$10oW6jN z#4te=!-Q-;+f?`8txlZv5Md|Ub|H*JfW;OJmp5(Q8n_YGfSyZ5vCt1S21dqk;8om| z-oe2+(A!QJvNe~aAs5Pn5U-CJg>S_qRBhz04-&R6agYcDN4gQH5D={V%qj~VR4sn3 zh%mxJgESN~4!#Gwd$d(JVpjCD%lBaO?|rsH@1I}(0Y)N85d3IVn3J20caV3&(~cu0 z6U{JfA_ndV1b{Jv9 zi~-95X-GnWNef;SkBSt++#nj=OQ5l2s&CW;Vd5oNaLOU4D~ttj?cZqa!xuoDCu}dk z$8Bq|Lg83`H^g~OB2N2-iY;-GTb+a&XOF*{)|;H)h@IHZ1w}QF{JTBJS_JXlAV?G< z;=w^Z!gyf7giK*BY}_d~i259HBRimtaD*8-Xp_?U0e&1YC%61d%5l z+2zgaSjkl1pX;N((o5~d3m7gBw}7+5{M(t26|tEd?bx|_F@!y^~d>N1a{kd zUkCl`HL)N!Tm#B*{MJ`*wK}px2iVx;1UD0Wa(i)E7|`H9Qq&kE@{w87qG6bpj=V|)3Jls*;3kU z0jTv`;ud0H+|y5xO36jHHz2#Vr%ZvsH%o#fy# z8j9J%7dWy*-J;_~5GTLn`1rX!QmYnulGMqSEoUzG@%x1)-NO06`%@Pl=`PJ?KHD8E z#QSU`X_WdsNl)eW;KQ4(Y$-+7zw};Y3GZYSwCKc$Qk}+*T$)-v)#nr+>EYvtMwYtyXq(y!0=2q#bd4PFWYYc6x*EfA zER%ZBj<>nX&tB=8FJe03&{2AS_ABn~RbZ~`|Mx=alEmc1_x`APd`-NKCUWeIf1}UE zqhewCe}?8-UcXtrnEO`JQ!xgnE>CsF?e+0#xMa-F%IZ+^RoC;ej#4`57!9&05z@CP zFif7I`TM4nUj61V?CW+CvzQoJSLe#|B>H#F>XKk24Qs8i&GIyRz&%OTD+Vyk4&%U~Ep_dZ#Z1^VQT==9A9ajwP%_M=SApc$%0kx^r~W_a)S4 zs@z7^h7L2ixvf}n^L9da>|@*cuOc+0Zz@s|d-Bv8DWzk(Hgh*I&FR&2UiA<57PSo$ zwqMMxYFe)U`^}#m#Hq<0C8ss7*^ z>)_nZfUZ7@GZ#Kb9II#H8p zW(R7iK}Pu(*ZaE9Z=e=}0r>ZL=Se0AvFGBPTIg1$0@x;LKUkT$>Y7iIhX)x~k?L}0 zVxY%#%`MLR8ZKIkPP(_>J8@93X|gPd=dqXWzajA^E%%=**RS^}%ytE)l^fYpM!V*V zHcSe+Fq|-#_;=HTz}GQ4Wzq(!wX>fE!;5I*Y*=1bRPn=z)aY-|v$+{#bBHv2KUePb z!R*ig$Cm%hBzW^z2PgkNzTj&9l}wYqLXLm)yW%B6SW@qK4vW_AXKJb9UqomEkA#*r zPuK*V>s8aa@%r!ePSIo&Ewl#?#(4#&Esur-dq0Vu9gf!4%!=FrG;7L}v~TZj_abc0 zK@G=}mwdF1ZTXC;HY~jC?p=!q^RVpqZ0^S0@cFWv7#6vd1((>T!D+lBratZWV6Pua zSIwBtpA1_h8BDTy!uFrqVAW?@ALKSTvg99a!xDmBw&1@YxM=V5_gliGZ=JQAur8sD zOmW$@a%S|DC5wB>cqDc5+}w#d+z6jZ!tC7L-dFjS@|w7Iq<7FO8kIus`v--NbgMgc4L87^dl+9uKepCi#tf8zx)V% zg1Q@YNs9(+x1LFyeI=;VM|J;#m>>I z5z&&(1uOY*o{LHsl<5B2yPx}sT`{Y9$HHO)VL!SmoA>10nA6!#E1fo~__RWQdB|7C zwRm`SfU?PnRj{mzE&j1XGB8=}j6rlcHB-TjqoHvM{U&rz|2~6axY8(I?(QuqB~VT@ z3p#fNZ|GwbVp_n?t1;k@JU|+Q*MzAp?s&lAzW#oiOYHS&)#SC!s(KjYJOQnQfRLZWpjILFO4J-o7kecWvN8}zpHv{6jn8hBIm)}6qnh#HwU?=cZDB3Fx2W4Gn)4cv=A9e z(#WvSEgQ-X(*L`Z;vLy_ zc>IgE-W3(xP>?xW_i*R2h+`RQ_vin}uy2&6+>`3HH21zL1%i%W6IxLQXk-<#w2`$vzsF179V56nYifzHQ@E)?An$~pM&^}KIy zC0@__vc{r*SN3TNJC~LE?lzHJh4ba99HZZt!ya_lfBYmnC#Lg6#6BtNLQ(qVX6b)F zzM_c9_&Hkdu`x2}C~rahSY$-n@b@}O_NV76Ym;;jJ9j;a05Nd-y6BVg^rYzarH_nN z^Pg5^NN@a8-w#`C_U&nkxeEt9MO2j?=i{#X2Z;KgFzqdjdGaKUxybQqe^g47c3ZvR zhR%TSi>+}T*)Mlf{JT3D>Fz~76Xp?e41wC#GJQOn;kC<~3|-Q1xqTbR{<-*Q-MmeN zV9uzlnT_d>7|(YWB|Pl!VlJ%QxhboVzOaMz7$w`u2asDDHx2Hd{ z27Ywj@6bA8bYA0@ZT8%cL=Dfyxn|Cny7n&?R-|PgI~?X|#T4icMBY9T{x{%iNZ-YX zYlf9%RX^QnaE>dz<@N34Zv#Q$`3~0OBkTFnZM47iwyT!u%GG8dshf<-2zETZo(Qb$@^A zj*R8@JEhDKCvLTR@{|d*2%R4+Y+jhQyQs4={_^o*f+YIW88K3Yd%yk@HR#JEfw^g zD{%hs^McwTxyst79?u-d+N+jl=W@!a+Eahp9X!}rIO^GvdARiN&Y5K-cFtm1$^8na zUWLq@u=a@fVhuj)PXUkFJ%5LdE!=o0+|D|9?qS4R z;jQ-J>gl5J5d+wrB#B=K%dtPz2MOq3|8Hd>Id2_>kny0ElBWpW{FPyyyp8!KOjKs>-^Az z&ch$dWcGw}eE&XNYa@PEE3@a-^@Ji^v)>d)=kUkE59sr#pccD-H$JP5O*P>0Q}Tx$4dl?G?J|~AL55Y(aQ57 za#UV3+_P}PaFRE7I)_@#dC}TXTTLObs`GZUu|i^vl8z}iPbPh!3SFT3rj1qDe-;yR z7UOb9Gd<+wxh>oJC+`&xd=+0Yt+i6qz4F&hJ(VDa)+;;IO+3qV(SAzV#gwhpGPY1N zZ~sB@RELEsBWdZTCr_Tbc|LLTJh601PHI4|$?9?G^-K{Hflt4uD4iLy$_0bhdDIvP z3aPBlYBp;G~xMIofLG$*V+qN-p+s(XtH#5^V;@_Ri zPi9BiKZ&Pq+r68S9tC{f{WBeHFWSm#bR3=De5)*&6~A+s@2pUef0*M?R?Fc_a>r`= z&yj{{b|W!GI`GAhOf+UnbLrQ7J-7IDv4l5gnm%mo$L4@JS7P7lGIiYSZ z_BN4Q@+)2D)js@2b*Ngn@p@N(PXgt&XjbQ?7cD%3S$x8Q9UC%({8I`StZOH4hDu32 ztTo$4T;|jb!kHF(_;H-qAA9soJVlp2?2>hi0BC=~_aRBRtQ)O?s3RNdT`{jvX$vz}7r zGS+k)J$;0Y>3uhs$y;y+b#71N{4yQ{Uzk_hEnr!fot`)VD~6AR7vdGN&llxxMsLx` zbo~CxO2+UHE9JNabMT2i16U`|YP)RQO&WDFUoGa^g_jxI_f6$Fh<8-JyWYAqE6amXGhw?3f13sdnND1RpPYdoZeZN8BM%u(MqYcdCM#u zZ)9uxgh}GXWKl}k3BAd9|Dr9LCG#+*n3uF@VqUJbvR`q@GXE2Af>^F=w3qq&On*$B ztcM5hiK5OJaUIb_C7zeGyHBZA8VlU~kx&$J#B}P*zD>u^zg!L8$(ae;ELvJ%aP{Z7 z^tCKA0b%(oXKJhLY`fx*4x$)m-3F_J`+Hr~MfdIZWlP$-*x>m0 zQN~EyW*zY;Z;T~MYIzU{9(dU3zSBTq*=caSNAqN-=1jZQV5|)LIH!$}9$)0hlzLb9 z7I8Ete_w-^c#YT6ZrkhHHILeu*IU2LBu~q&346oK;%Xgx z9<-EDh=?(sIM4Yag0z0fg-K6Z(snNY?d|EOPG>Pzw!?cPdG;?{%y>%OWyIUGJ6z~a z#z7C8EsGpVO;&%$_!O}Xqw4*hD35=14bJqn*&BXvm*ox1tS3orw~PB(3VV6kOSmp7 zJSiW)o+mzkd*k1&7ey>IMIkvU&Z+su-4-*W$A#s+`@dwnZNHp-tUH7W(~+ezKZRqA z9K>zSe5!h)|BfgJ@tj-|ZvApDR_&8>l+(Mz51#q@^yw|7JO#U)K<{tM`Q;4u~J&O%fDL(JgC|5u(ofEECZe}C{*zaKUvdCc~?yj zgY$6@}%joDoBoTZ1SEjW7QUKk{`@4z<%-znY zt6x%8$Tn&Bs~@c)4}JD`30)zU(5%gfLG(;mLKXGH))zH8*9C%8MDv25RO{w9^dDM( z+iXyuPpu$~=DCUH#f1W)MguEbj{kn+BE|g*fr(8?oQQe$gddC#yO>y;P03u8rgJ~T zTvOFLz3$HDpSQE6J}5u)r!^JHiYxdtALPCSBe_v;t=C@=<1YO8WP!)C=?Yd`Z2U_Q&mz&z@7r1jmZ zKYt=w_fBdU)r6wZzWoc+jDrim`%@`TLcOIYfsZs0W9wD1>~7yujhmR;?Rx{j+I%n1 z$CI;CFSBRYab6Y({Z$)~9A`P;eCNK5i;F>9f6#lIlVg9Ly_3CMvg2@v#fq=^16%%m z?6qNIAF>qK8NNr({osD-;lV9>f{pYdOtQo};ZzUzWa4Kt6%8@9q*;k|vn+V?>t`O* zlg*n#h0IzkoR+g!5+Z%J>PIl@UaP+ECEnC2mpNT@KEm|msOxU8lNL@BJ9_A+5v?-M zPHol}Jd#&5YbMm0j;ZCO%+wh^nUNM%omonX4Sq_HruI@!>GIH|TPVNhF2)Zo4})u% z+ihDyn-(LLf9FN++`LCrSE{mV_;Zo4`G+9?kb0e*-?_S@PT9`qjGvX4r<&$Cd@-5% zC@YiFVma3SsjwrLwWfb|xn$(Fdz_j=cI>O({2zuY&dv#+WJ!=#G3yBcUw6ehZN5i_ zirvvPcvL5`sHP?L!OO;S#8&lUUg_LN2U_a`O9^GWPwLhDo?0kcnylllH5C}HiyP)O zEC^B$t>GIBy`0#{w%5N|TqulpTlxb#+nxuS8X6no4N@%)JO;~G`pd~}uRJ?^eXm=3pE@dN=T$Rc-0(X6UB?u2>kxI|lb`}! zg(qiBO)CR5C&&oaxKaI3(m(=m6>0C$?Z1PxV(Kg%1EC@TuU(>octd7o|pW3c~9o z)&{kW=m>S@HC>~ixbCF8+ux@|cpve*yYC6xxR0wSIv=_4y15*@qe`gftJt0Njfs10 zR9|Yq3#kZ%p3Zk+nbxJ-5isL)ee&K?SQ=^RAK6a4FkMeT;7R|W+eadoW)cB4lW%xXdE!69ON<4>q6w;sQv zWv}$2PQtY^}~$*L;5`-|$AaaPUXA()pLa$ajU-?AyQNbk&A!=^BiqlNZj&R~;81 zZFZIz^{3RBt0qQH-roYpJJrvo2?a_Akf4qD=9mHod=vBJocWzxU*Ju5s z;WnmDvD|?vBHFoC34^&K_5M|{%qw54;x5_J>xWf-&wgHU=)SPR_Ip;ELNbvTaqze;}GzG4~j?UtbMk0Soy?sv?Qo^GCJ6vVJEV}g(Qz6xJ_S)qS4 z_}KY|R&gemFN;laH`!_?-x(eEMdP4?mczK0L8igcn{pK?;R7;DKL)=(Tj(8;Ja&^s*;SRW1N3XdG0+d))9Z^zdfEt!oxXi@y{=U$NT}HwZ*ZuI_R~$OUX&U z2BkSK2fMLUd4uYl9B;(e(DeF$;jjUT=P@hV0Fb_Nxd3ww(9#|Oucnf zl->6}jEO~wfJiAkfJjRBC=${sNDN4KcMeLobayvMGjvJ}NDe)8!_YnO-h+OA-*>H9 zvj+aS?-Tp%eeG*s=bSi14sw=&+`##`Q(g4>$}ICCNASRLn5N6_swA^XLah4193Q?= zLA-w`_RV%scLG;wY(g|7Bi_ok{-{O_7GL9BYW>%3w4zfVTyN~4nrIf{=$Z&ScevSic78LeYfQ7_bqA-a zzRX(rV-J;9$i?ON8745qa(hOV#E~Q%FkB$ze}07&1mgc#1&BHKa&+IB9ba_X>c5>P zZ-k$jMrKg`%`SF8rmL2Xykh1jlx*Q4N#o=tr}T*6rQYUuRJ>^Se!fgHQ+?4=9W_BU zCWvI?%5SOG9*p%l4&;tvqA&zl1z=r2LN8Id$=JkM_sz4bK$}dj55gU*HrJINWA2Ze zEqgzg;!zy$(1M%J_R@bpS_*3@P^G$n4w7@kOSMD5zidQ|cC=oQ;qPBP<)WvyycVpO z@uYQ9~q%}@s&Op`v-_e=_j1={laXgEsz5D z@g?z@Yor3n>u3uiU!HNlcGpg0HY0sG4i+s75pIcI>N^h{X5RBDhd~=}(&L5;< zOenKS6#bjk?x8{Uho7H&2iy!UyoC}TH)jdw>`poZQxC8XfsbmA+&9MYyi$$jKyyD? z5RmJyv%KZd$WXV#F$Mx1$C*UVLf0FwSg0N9c!6zT?|JreVF&e6jOCE9(9ZO&N82Mu zzky{U+I@R+13#!pIn!(2?ts4ck~s+lgm`0-2W#xbe7o>9R{__^Fq~eGY{T4YqLk=l z@YOXGf5#zLc8xP3r>C#ck}Xj>QrUcvKEGq!P@*TzxKEUEGRydHI)pKZMy&T6$W*&i zk_F2rMA`6Oj+61YA!-qR7Qn>wJ0bNIMH}7Zw<_G(j=?pWE`vKe=E~iCsBWSc-ZSAF zaE<8#cRyQ+cV-AFb+t*;=m-jfl9%OH0)MlZ7Ao{qd^dMB5DnYFmo($d^h$dUz~itj zm08gBDPwo&Xb~O?wHD@n(&{xQ_!bKDF>Jh8WTZUU7YhKOTmx?`MWFvP*K#=eUuQn` zn$dVs5vglM*ZOm6{}QZYbfR>3Vq90uwLk8wPHz08&zOgY^)xgM&3c;ovmPt@j5%Rj zw$m^oXX6syDqT#hZ5>wQc3&nnD9xl~#aRUtxTFM;CVDWG)Hz*v-KQeq3sb*5+#dUv zF`A(B_4@@dVzHD|p8Qb@F5X84GAbs$yJU{R=k@?IzGu~!*l1a*$Tz-J@s%M*8)5$x zr=~v2oACF)e2+jS}h45ZJ^S@GT7Hw!_uCh)+?I;tJ$M_Zvo50^pB)+FJd(dXSoo1~{|qDSpo z5gh@x-_XZ-Z6Fd*4mTK+;e{lUw`HlUCc5tjPVE%#Q!@ZE>EQ@GH)|h5S3rb$Q0fHNJqn zFia_NY1sZ~+4t;26j>sBabk)(H{e+;gF(*6p<&(3FQha7X6Z_3a_;rFBL1X<;cel< z5uh~YB`s${Z`kKV9+klcw2OYkkUD1ey7xB63q_-cza zqDUg!>stq(rf}OlZRgF_Ioq5m4WM~_n|1)a5f$-OfxHdsJlZ;)ZENqZFtCW{)&F#i z`Alx`q?Yd8JGah~D6j5=2Hv5pFVm2eMzs<4DF8+TybtlMHF@g$VK=ZkCd?89<`Vlw zwfj7viB!&YFyrVZzB*RqFcr2$IGlAO*L=63=hKw}moe(h)qG&fu#_FI4N(R)kV_8@ z43q6PWBYLz=y3~zQD*X{w_$@FKmB!a-UneO3tI>Kht8K(P_=5KpVpQ0UZ=D?$>f4} zdFA4yrU0*iAO6NxS$(JJt7TS{8_2e^(w@(qTgm@3UNSjNh!OtiiB6H z8g8Q%gR^;2o2T6j6tcxzo3lf<@LlQSzW~+K^AmtV_7rVTkj}cTQV9V+Bb2|srouuq zbWX7+22eA=s+$&J!_yfKdMc8o42yfGak;Gs_wk809GqfxPe5|A9(-a{W3OGC!F9uaeL@KAN*UAiN=r! zfM>UMJRgR(V~^HZDXGcErABI7V;UhN9X1i!re!r4>oWe-i+1EM>n9@$j4n%rD_5>}vid_N z_0Mc~@Wkogy$J8ZG6AsYPosn*mkq*-Np}04ff*eL|I!;e#)`GUqQBhO6%Kl>u z^q;^|8MK6%@6;syQosXl#W=v!F-`E#`&m?5(onFnqLQRyPz8CfUkyFj86yk{j@8f%FcE=$975NTU> z(=#xt%Zwc_^%p+iqQ~+LP^|#YpmVD;c?`QR;~*LIR9J7S2o~MAcji2ietNmFAXWlg z$Eqx0Fn7i18ZvNzbjTs!;?T44`B&Z)B188E4m`#(5$;~$qPjjS-nAj@=c6^ft&uCK zRc{goaIx)mjIa2|c6h=0a9>$2-oE&$aF-(ZPrAR+2X_%|8GsmrTo(~CMTBCY_ zqROk}2OgUVIj~Fy?H`j`?N_fzoLI(E{RRmMb3@`^ElM#Ui8~4>-GXh5CVh42x}hR~6*qAOMa?{27rz z1ym@2ArHw0E-6}=O|AP#=j_<80lW`B4!rLs;%w;##LT>`jMp{)(NckytQF?6g~+hYfgAI0 z>{iQtWTlpu?Q3Dp9N!d%Q!*d=o;LcC*Zp$XnaHZ_H>Ydedy25x`;62M00}}M!Y`Sn z(N6uf(jM0b3{N6DJn4}pjVe2U>K8TqezWPMJTk~Pn;rG)vOQ@7!a&FLRv@x)Zs%f& z#H$|Rb`$OO(7_owk`LI_=SK`ld5W~veVHm-5{<`~44D;9{j2xHG_UnH!v-Dy)(1Rs zTfa|WU|7m$u!l1%Go{D37$<4v?#epOS-y|&@&LIW)vyhe#amr&Rv~h)>RA~24>nwJ z*ae`~{&~1YwDk_nf|QhIlLKDePXd8Ljd&tXR`XS#Qli&k`E4)$+nZy@@KmXlZMnAV z%mC`UFOwf!7k)IGVRi()AR%uu>YW-wz>3-)wF|~;L}?A9U;|j2W4Pfi$4dZ&-?Df+ z3c*R^zOLZC4&WW58cPrO+SV^0z7QU+9WJj8OkX(UlK&km1M55fcklRFfgh{@rDfFO z7a6U&5ueCa>e!vU11M)ObyvSISAnM7UN@eW<%5pC{Y6LjLD!3z7<>Guk0*edwbVr2 z*gC_Wmh}Q&^9<^n*F-JZRz&mWrC4-#Jd2)(wTEizVCogdFOk2{nrvSE{%L&K+4Ko7ohO!0yxBThHj3)`hshz#v~0ymQ%}eMn1f z&IK5fO6}xTJ6ZBzsUq^T#JGBxyE<%WRp#r8&BowSb92UM0eyCWKVYjg8O8~@7M0@`*edHBgN;L@iY-*By~*Tia>& zSLonbgZ9Jx;sMX4FTeFP^gtca)7O_}oI2yyy<*74*vq_O-~9m$F9far=rJXf(o~!* zd?@W)A?-()di<)|{CIBDko%MNLd>v2Vc(ZJttx}z6v#f{M=UOEWZl}YrhJzx1>19m z|E@ONr4MGn2Di8JlvA!jYr|6WN1D)!3%-HoKWf^L>+!In@%fpQb@qNjMfnvj;FPG1 zjKcxbIIvPgtwS!C!g(T)N|ruLG;yr|apP}`UcZmT(E)x?E<<=3@Vq&@j|2E}^M27X zZTxARU6IKx9BfP_T7E%7)(xkmYUhxqe^;QvgNLW>ygEq|9f8v|aH_xpsubke8AIgo z{H>L~eu+l?{2v00GK@23Cl7=&D_TnJO@@9Us<<}lT}m&*@_WQWLUlcTVVeP;_4@)a z$r~~(8f%w>w}IBp^{nKM?+9G|D?#0-LgRgVpj0-hzGXj%lg@MxjivP6F9Nk+C6Op+csI-Rap&lJJNP` zBL%T{bvEd{JSgyqR^ytSi%dG)=De!PRZ)vXaCYNw@yl}_O;6?VQfJUNo^Iyb4xjk{ zo~aa2w+R~!4fH5!j}{g4g5*=+^KGa2EmBg(NKLaGBod2uzgKANs>)_v5ssv>-)*Y# z>dS6sb1C7nJ%@6*DgZd7zAyWq$F(X$D~fRQfS}t~n8U>V3)w-HYNpD*5@R92+%!J&{(z53c==b&g<0nzPMV@x?{Un?Yx zO_R;HEd$<=2pEnYwg=N?3vbj9N0-o3OKeCu<~MA&X;VlKt4dKl*WyziFjJ?6Wi|e( zi1dG!(%9Qmv)in^BjfDe5nP&D*KPK1iZRd#Fpt!cZOC?IS)UkF_S`%8U~$0}erjfW zoHo7d?so8%qT35cV`{yq`j~`ZCAP_F?E_F8PMJ6}!lM)PGEcUsO+S86{Aw*aikbnj ziPHG4r?1ev)o$o^*e^iy4>Np4YcTTe1FzBT%z~KE%=qrAMjA3gvldi$UL~(onC-<| z#5%kPr)y?n;q}Kf5^Sy^BOswOEVH3x=)ckkOBB}oAjIO9DljlByUx3&i>AOnq@k0) zBs%IvtGX0*LF<+Bs1Z;_zxItmw~h32pZe~JH0POA_Or1!=V-Trk%CTWxD_2@ z4<}dfmGx7GiihdwrcVhBxI%*E{45ozusKp3B(fZ0 zdL0Hb`ymPxx$c=WjoZ7gi{Xb1JkRSlP?TS2-rhLsh=g}_2%CMDk?iR|lrCsFUO(QM zO?^xFm#+A*;DLuRkN8qcD$7jL%(P{dU80ukY}7M!@4fZ{ssuVI**dR_Q&sn0@AGP1 zu#Iy*5DV|nv9fB6RA!8%_yXtp7Z02|+HG7+XBu2GeD!oW4VNJs;N#;eT)(`7Zx0^& z>%%c_6@l}}-sDijm=HuR$*Y#%mB6-VdO?Y5Z~Ku4;RY@ z07QSuG&mMszKX#T3v=CA?v`yTBqt#;=1h!II0U(*v+AlWb~Vr>OlH+Zi6K{S9RHIZ zk)ko5TWv&!#BY_i%C2OrhU`KQG6HR;q0Cni5lQkIawh|67L*dYi2(ctBEfwi5_pc# zIZin5K;*By7r%iS1{C(c#Y<5> zCp0h~&0952S+Uz3e*!&K@b*b$#M4eFF;mVJd&pmhEhhoQ4~wloCVwhd9%SGA`u@dU zW3(tdr)N9BR3U;*SZ}3mN2^ib1U8r=7x=d*e-{JDE#@hrdA7l^)MkAGYRMm)5LLep zd5FMcSN=jC9islfuic3o>v7(*blG!NyCWmT0G4HM zcN)Lpy+;_4g-2H37o?z#EnwcGE)?t8tN;u3^PqkMgwskdUc(UrHLVqz-FZ0cM- zTgpdLDYXL&R+`hRGjYGIkT9KbVPQLzET1AQzTsqT@HvO{($y^)vuBGQb;Y;V6Db<3 z7OtAUVxo!mPBs2B*4IAd#8|%TF2-Vb@mGE5jIO#i;XS2-(t0N>^y;IB$Hum*I*dl~ z#?Rtlj)A5^TsUg@=HRUIJ-shZg81Jk=YdX&_Eb6@w(x_xcl%E#>hAI#untQ;-RkV% z^ba{6joZu4;V_wX+C6tj)a|tl0yNzdGb_T{ALEBUHdwTsRWZfRZ45u9Y;UXz$Wt9z zwxp*G9TaripGZFhWI%uUu4WNnq|PEKp~nH#x{*&<1-Nsb#{+$!8Ln7@@N+Y`tpW$; z8&L-3mcWmjnL?bUI*388Tl09ZFv6s`Rxk z9p>$d@kF3~)|G5}@nS%yt^<*tv)gjKU!?HzDj}nQAZr7oAmzdJIMG(UpxOL?0EABo z3zH5l#$%+co9t{#8h!hCY5Z;W?&idl&VKLHfhBs{Yi(<91>kln!+z3cHDT{#009A- z2?#n3?IxJ$rBLTLkkzi{dML}(E6&uLPe44@U|?<;jDvIrJXbhjUp2>NuVgWx03%E# zlbP4#36BIXCvF7W9~oUobc$;e+9IJP$6aSMku*0AHbTNt3Ltk@=hjNBfAXt65E^sg zg}bSr>jrhx5Un^_J~=I)VAdQMkoo@KjG4z`1hzzeE0Pv4>6f*A0Y$+=K*jra?fXLE z<<=Vwor5+>nMfL&DVsLb*hgfTmY`$dS}rEK4@ziq;e$=Fei+lM3Pd8z`>H0Xw&c7{ zGxUaWkfIz+VT|OqW!&&-{Oo8#v%x<9r(s6ZY2h_% zKg9SaRwMkTH8;!nEXZD)6=CN*Uk;!o>R5N-cWb@9k!ncS_& zCMvGtxvhm;p2*V#;G#W$#(?E7CNkdBbvif24>US0`t+3?!0hruB}q6vkQXu%`8X-W zNffUP|2z8tJUy1)JK-^&xQt-6b$jc&e;KVsZGQ!DzZ9mslys_X+5wS4Gjs! z|BpSAkc48#t`;q`(iJU!5uVEjUYOLDP7r@*8&?N2fiwf#d26y={?=pDOaNngElftw zy!*@PXd&XRmP`UzzW&XnRTTAh0S(NZhxr|KzuEOkwdx0!l{<7gTH0w0sVFPBdc zub562#oVs~Lx*cDL8L?k`|}W{lld~5NY|B)_!xXj1$hJ4Qy(qtZNbIX+w?-ltda*AY{gO?tZn|Gr~%CR7B&7mvYp{C7+ zmQw}MYSyAab+5y||a0Lp&%C}8)e_btF=^qvAqr+2f-Xq#8?p^oPRc$sv+8HJC?+ExV8@wtjqp7V^k%@{?1{5_I5w?^ec}STVbh?dk^#E8R-ap&3AA~WHC(CP^nFXVLNtQaaFC^r9 z^JTN`Kt-HXpMlv-tz9f&yg#8yZ|Sf*fn_{iEG@$m_oY;H8_QhXN$n$u- z0YVBHpqXW5KuNVrPNFMRm73BW+1yHXFJabDCa=I!Fvj^mWJoS1(Mqh#e>mvYrzzAj z-^Y0KCYu{s-l_ZRU9csMa8|#zR)lqn4y(O|JHQq0(VA~@DM^@vp>RM&K-Z)k?7zHr z(Rt(R`?cIn*2P70X^Ml1uUY(9Y^0#ZrfuhU`ZiZ8v4)z4CW;^Z3Qq~NE&VKe!<0 zDwfz&>*(OJy?7#u*?I$HFcvR}wA7RacqTL#0l$~1yVqnwnPJ@3U$|v5GciVa;0%W{ zR|2=&kKzBBpP`VmBQ#>vBIzu;OANSYQvYH}A z=AtRCw+nPY7hZ&C`T;u>o>v0#$RVeh)F!QCka42i{c=IATwcqe8Jh6v%LFOq zb38mvl+tD7@a5@ClZvTA&@B%(|IAwQ5ylTywVv`_Nzi)TVq{X_kMXKkQjJxYs_!|1 zv8gF_Y9S_nRf`{&eHcAE*Gtej?e|juYKM+#l$bZI?xxA6RTWzl` z@VmP0si=Bein+bdP+e%EJ-4_pxmkNT{&icUjn3E%BVY<@-F*SN*S~Dq-tzEtYPk!3 z8d*k(S>}^asIOS}7IESQ?4cEN(_Gs(dn*g|k}5C$cG4Z~kdv?pC{R{Qe{@_Y1H>Mh zQxwyq!U=aag}Yw9-1g>B&3{lGXux42;^+KLg-|JyX1Lme3aoNjo%;$9nzHZD?mxAz z(uq<~KEZwt+{A^b%qMB@U&V7L&p&vr&k6Mx7IrEEWRD?*CvI0$NQuXP^Drk8z|8Nb zdv%Hl&ahW@$U7W(t;lSR&onL=*urBx$|EBb;cHnt?~SKMc9;PwC+nk`M)Lal;tvHd zPR~f0yA3UGi9v9QZQo_BmM?>Zcn@!(Oh^qyQ=JJ_l=4KUEg+mNGuR(so_ocZ@fSIJ zssPNwhcX_ysOzDe^z6`sW{C0nZjVGh08j}@2p2BDLDuFbH-ODFK(&1dQzmN%WB|xg zvW?Z;U@vn=^zCr*@T3oCUBV$cHGClQpGFlt$mY!qdL|=fA3O>45CZ8g~csF==sdsW|kl+Gd9Z4T#V9!)e!E`ON2ZPS|46ipuptIhSiC&_DR0#?1Tpg zv+_#j*-~(q>w*F4@DF7@yV^+|hY7%+^8^ez&W&KNU7xk{OOHGhu$8rQ%I5POev;^f zRGh`Qdf%x`+ub;1tJLZ;i?(9`ae2WezS=_oG&M8jywyKY_u|* zRNBD7RD)@MD-z7;_5QlNX75jTqTiRKYQXPi>Z=-4#~)|t@TJ;@TmDF%>u(pQw3$9H z4#s{y%pMNpwDlS;CI|AF6=zAMCtQJr0PtN|;iP~Oy^f0bi0B{aWvDL`_gb^4`=tOU zj8+x-kFxg=t%Tk~(cWx;sgdSGc7+bXYsR{osMYCb%T{3`cs-` zT1Ed;*E_{@t^-bRQ=%7i))Rv;W4a_3glK&q23r?{(Mr}Z+mugA^ z?He;4j{-FEhMeZ#0Nj-BpS9ZuD9u=c3W*shsXKGI^T`288`=K!u%YV=cP0E&O#|O( z{+6K)P#I^^J9~O&pW#+BdMg9_L5^ON)ye0Wg43*5{fUoj5T^s{ z@DkU-ag{;IY27pEcYK^3xB4-Hp_sC_L5`NJ*WltjBWg+sIy`C#6$zEzRh#;#U8Qz(P8BX=$!%4piLM)ZBcA6$M8CdyXQ%Oa|=w^5Y9I(IYC(>pWAQL_Nk5l-1SxN0#6|;R#Q)kvf3Z*-ZZPje4KT` z73FslGN|=@v9oESrl!r5>4eIusL1Q}2zkRJ?48Jl@skUpX$`is5=@uD_ zJmz?h##hXD*2xf)Lh2S~r+cyiK0(fWaQbv|9Pf(}%}f_X94#etWz$qXfNrB zqDK^;?7sYhUD9H^{U%OfpYuUCR>&Z0~>U@)O>It0lKlP_dkN{<%m`dtmD4Qj;a|< z;{NEkp><3FH5tN2{B7Xvc9pxsF*A*+=ET~LJO%u1ZB$#m$>a1S?9eP3U7Ux9w)RxI z4;>o70S(m_qIDI4jRQF1^v#pyqh`ZRji@;pMl~1CbY!wRR0d$En4y3ovFndpReLxz z={MFG@{o9{?7C$+V2iS zQKe@~1&`ritUAPTeESC@@dk!#7^D&s$*8Opo;UE5iu)hKzCfspWXMZ#%tsElEa8JimwKK8agMz9u&c&uTU$F+0>e`N{!AAcnOh>u=i@5QdLJO;EWEqzeHLFbT#8e4;DuHb9duXakR?C$ z)u7*N$-DJ6U(~~bH(ZH0jNVex87;GA&e}-TD&Ym!`=2@Od)HnD2vUtR|0}u_pl8OjoXNBsJ}n9?cFb7{ixUJuR>#+0dA)+%OSI~tDM>Dd(dxewy*B_bx-#psTEV2(403rd{OZ4zyRLx69d zHXmqf_$ipD>I~7!op|-WzQhiPK=)&5L;v^<%-Yxw&~$z^6h?~OY#8s_Q1TDMflW2s z+XG>m#N`&M5y)J$7xSD)$A$0O(yJ#Qr@L#TXcGaw>()S(>NG52V?$ZR$w9Aqc%{Js z&d#6v+rnLcRw)ce@QuFuO-Mzw0tLe9vfZ5d`0Pw`?3YXGTMBg5o2M7f4cg2ncIoPep-J!(W#LM$E-sD8i3H1vc5ncl}T$OcRIgY+GD zxGX&SV%}FBIAWubD`zj_bC8JeCP#_8^5KQ3;rp(AleRv3S|F_?zz4RltUwmt9Ztq5 ze~C#{KL7;HJ`eP7>h_Yp%g$ZLmI4Y>?4U_@%ij9oMVn8HJ&?-)jv&WZ1n9P5+$92h z{uz{@yZWlkHc8TXtGE@wVbu-p;Rbz*jLe6_FCMZQPsOUtk?CVgO3l{socf>ABv^BA zj8%=;WzRKUujVp6jzccT1XD#uR{Qy=d!$@yHi}jShvHZ2=wz}>+fE4Bs!1I?Lx||Z zcwE?Tj+=BPB#UbtYxhDfZ;%~JjIYM(a*lac^s9mUF7&_g<5}}++`GIkcNxOg)kU}P zLkn7Q(Ok`-I}*l+-vF1Y#S%}*0`{OE{4$cPRiQm-EMWwWU4;KPs61}jE@e5$LGOMl zY5Lqgd#?VZYj=m~^u&%lU06`9`rCNZY`FYFJE6zdLQNJ50UHxRRY6>Q3TjH_!gfsC z2dSUvCQ%4d!wTMd4R}enxk??y)#ipPyEKV_lZCcNe)+y|$A*>ru;X&C&-B0D&)>a) z$-ROPXOdtd6VhDk0Qlo(I@FZWzP}I-9xz?osdLL0ahv60MuEWj7Jc292C^6DVkd&l zCJ~bP@EhB9Te6a)o}{rAh0UE#TS79a(9n=8`ytQTgw{GJe8buG%}2DO$j>WtbxujE zay=b#M8wbA)w|5N=*MnN%{ou|z&6KtZMY3DYJuVq-@t~Q`^iOK^wYoib6yJY7M=)e z1TEN24>kXv7CXL0^MBIH89*)}QrokgNZbf3if^jl++~S$?*9&hK4o?1L`DRo1e9g0 z=upvxC0mpGCaExWGC*NqcTIxg;~Jh=Rb?@sLw6akMbS(tWJ6ibOw#2-2Y66qc*$u>I|nUv>7_Hk=ToXI85@5VddmG7{ z^5bu7gnW-kcldzzh;x5Q*s~q@C^`pEqGo#0V>&ficXa%S^=gy1L$|znThO;%2NjoS zS0mG*M66O6q!m1!pR*AQb4XW^i!!;{o!zrQd-Nv0QTYIe*@&gFk|=O(VNUP z7^O^<#yK!JLzi}Qv{Q;suP_KJ!}JRG6hNZ11-YiG zWqz1YJ?WQv>esHe*ZUe{;-d4TTKn&xmxLJ{M=E_cypGGfBJy4PY~;5y@y0v&K~u=n zH{LHZ1=z}O2I>TS41@oR$G}L)i7XhtaB)b+e|6}*>73JN?E6)vxh{Qnw9>#}#v;em zm`cL*ze8-~x$a`HAXUcPrOinfHJ@G6{h)TW3)odtCiJeSLP-H0{IJiv^Fj3ah6r)b zgDaa)FgCcY7VXZ5ZIh;OAN(9PJDnasU06Riu$X~6U1K-Y5<JBJ z`8QXOSdswi$uWuyaCaQorRO*0@9`clb@p?06>h|RaSm1%DpnY< z$wwPS0zM?w;f1z@)lv~M0>${#$0NQn8+5UB)kQOz?LlHkkHGsQLZ<4H&Y22I;H8D7 z<;|7#&6No{PQ89f6ozL`fJV;GN2c_W_eGrbdGa0EN(n~A^?8e0S@=4qBJq#ybM|NT z%w}e`A7XFjDHK5FoT4_=)cnW)Xq8UfyYDOA;db}mFz>co0Y6`+Nz9%E0utgjzSS8{cDBAr7w^8h$=^RE`b)cKiW2o3O; zN(*FV9WmYA%;Iq3+4ZpV1j|niB8?q(xbMh(`tsFB`O%P$21}Kl;*uyUZZk(qF=j0y zW{8RnzQ9jC zqbWU|(;Y?3-B*?)S>`;KT&LGoGN1cT8n)i4wcGIw{()0jsaa)3C=b>LV?h}X8VWDkmsjq9fLa{k!`Zeps*d)4M=3U|2{3f^UuK30Po4Q}B z)Ek#ZK_SV}U2zeQd+n;bpr=Ogl4R<qLSOND4lz=1qernUnMkPMY!BQ2S?p{?51Y z<)d+AK=K1xYy#qAQFRfoc}@4|(yH#4&DfYhtno~1#@kM-TRLL*TDs|SgDV~r==Yi@ zlS|MsyB~J6GG@}kJRoM7QXXeDF>ZHkos$SajKLd-@Qggu*b1P^LhCjjY~-AIVBv8- zdvyRo7@JzItgI~-!`@wKG@!r@R~lp*X27RC(~GFs@yR0IiKK?N$W_dr6<@W zP(*d|>)RLa8cRo|x^BMo=(J)=cHez4-Nc(=WH7In^hlbscuvfS)x<8 z_JO{c(lpm^xjnMhp93*u`lNxXFoTH62!WE5&v}p3E?MUt9c$wiu|j^ceuxe-?{6M( zf`yESTyw+R*mSPi2owoeSMnPl!(5zC-{AFe!nkVK3rnNjn@?J@@$(r6%uKSes)l`M zju!n+Jh zJe?U)61t%8dfqvM>*j`r@zE})2l?t!@C-I@8eosE^oU-6rKS}8f3a7p4ZYT$2`5Tz z{{}f!a)$y=obO*0b;zNa-J7V`he+-Rfh zvSJ3f)u!(jU{@cJ(M=em5u-?(yL(|u^Piz>tlg94(G0!%9c%z~za1(rw z-d)Vz{icw|fUrT$xZTn8q&ro5zq{diC7A8iq)D$x_zt87`lDLYoVQ z!t8kJg&&2_0R}rr3O2&s%^DMh=lT|$Fx~}!-j#gHE z;d{Ue0=@N=&Gh4oQ|(fj6;O=nw&Rh~k&g;XZj>AUlg9q%swaeNBZrc38hB^Y`k=7;WM?kLdR*5U}z=CE4bwvI3Yy5-C!)H&9 zpFKHz^5hWv*|FWR&8Xl`W^pM4>U!nkm8yPz+UrJc4nf*u8wcB56Hvg(vUkzkOU#Uy zJarn4E0=7@2ENT=0!7W_vX9wHY~XMvJfZ3mfzL*)9tK+dwEsNC;G1W_&(F=3Jss6a z_Y8Nb--9J3lio=uz2r9X_`2=dBNkt>0_wVOBwfXyN>grfS+N9y0cXZmKE8$Wc=8N? z<;}+WrgrBNN5L0ATQ*1iEJE>)dhk}cLk^;H-iqjS9eNU0gGjv6-z^p!9DkO83w4^6 zi_kV8%U`ACwZiufxb`LglGFT|tonp_ZNc0PeK5q9LWoP_3#;5vK z8u@~wQBetSH3LV90ofvzDNtIJ+hM_j*h>?;u+o#po7Gz8-PM_qIl%4jPlj^w2|u{g za;{4UD&kX8p&BuzX8bgA)JS>VNa-EUhNsJ+WHc3aOllp6_FO%D@V$z zjBLE{AxiJ7+H00KEY^ho7Y3iA!(bNk{YMy89IgnTU#37{v0;~{Jsi1o5{5kvQFYzA zJF)^)?J=}ELVqnJBs29v74(DKS?qpv8~Ab834W%Uxks8rE+~vo8Q!=1Sp*J{szfV< z62chYU`ve@Y*uE_y}714jqdjXvlqd{`CQu~ zK3Ybt+Tswb?uQsczhz0V@r7t$yRwhcSUpZ8+8r2PD4w`fpyZR zp;5=c$?xRsC84TDFTN6+Og|u-{}y%QxD5xAx#zNw1Sb~-qgbDC0n`o|XqWFSncN*` zS#NjXGh=c1`kt4IKSoirP3w>LcvABH_I%m<1UjV{To~N$dz;nFVWWvoR8-Ll;5c>V zIQ5)Harvl<#M$;VN|w=)5x5ASw(I=aL??+s{+CzzWhZmV1xX}6aApI7ETR#1EF1%w z&mF!gHA69O75h%j9y_`&HAsQ1!{~|)sn|?c@1GTZrC4MLSl7Vw|0QUDZ11)Mx!SOR zIqSars+KhYS6qn*=H{1Qq&>-@p{*l7>dpG}YeCU9Rj6+HPmkU(({3w{NShSsK1(^$ zw1h)KLf4nkUPHj`bGkec+@I}1v~{)*k)&ncnDnNm$i1uN)DuS!wc3hHF@cAU*2gY% z8C(7SCHtL@fM1bnQYkt-O~UuY3W(Kda6@gAHQb$fwfPDJfpmw^2LI+X_Qw4ftt3a? z_{#By+utW!^#fm6i(F|7%OLt2SJn^*(-6n+_uP(_2EQ+EhH`;r*IJzF9>#~a>@g)q zIsQ4?vqWNWH_qeZFq&DZUQ6APPFQ~(GZQJN{@e%7#0MBJME=i{kl%U|-W)Rb1|D4% zH~n`bRqOq-Xb`E%OItZ@c}@p_NF`#1z$sk5sfcy~r6lW5R$=+92|k@VsLLFVFrwYf zeJeZfEr^(y636IDKmmT=ZVFQ`K4*2oQ@QH0%}!lDbLUk_9n4_tC&)F5(LvC9iEt&o zz_F1>wN!SZrfeu-3>&Xl;{;Fdct60Syiw*PBo`dut*hNPjiR#|4ze8%s^X#}T-jJ6 zeYr{eVw1y8sHmcl3?4k~{`o#oXEsk(qo;chqOB?Vgo#uw4Lh@Le4LbEl988^9;6~; zf9j9{+&@IO0bIcV+#b6*3*{QI|CcEIoV$(p^}?RGcN1A1sg>q*>IuOGMz~R9D(7FJ z&E#|R(n{DkH2jg6ktsLstn&*3ypTu_9Ij@Ik|rIWZ7^rAx9x*T*6|%Z;*gUqx3Cj zKc>*V?SZ;FzBL2y!nNUDFFvSKe?V|N8L@5t`pLl2=$1Y;EHIq6wiXr?NJdU7As^-Y z$2!|lnL25;ZxiFSY=>cIdDAw?V81uN(pS*^=K{^Q;72>_m-{NV7~c-V)&?|w-}PMZ z;^pC+lu8)4y~J7DoK^-=-YYB)-&ESVSEnb`(F2=Dk7!EHq24j>q7N#yTa*Xe$rElo((=xpv zVlVjej4)CY{2sMVak3gi(S=Ql_mYz(ZMMbJp+=-FnV2hVZS8le8p(q{?cESfB{Lif z5QdxydpA-KVtwq^cmN{HkeTbzRvf+X$V8|Lgyd`hPHpS-6DuqEoJ^{@duM;r<>^8c z6)ln?m6dG?qa`k2R#etM|1EwhughUeik|(5uYa1@)%EmBcxI*$-}wmzp7Z{hG{7}H zPQ|F{EX;8T#HRF~X>xZ3?(BItmWgoj{t4U?gC}%xyybWJKe%O1a2sjw-S>AeP3be~ z1F1O93D%XhFWacX0CRW`4(fT0@h&6*gOs@+pzJQQY$kv8b%UDR+zh(o9wh5d^YE0C zvurn}pl$|arX!sTGj@mSU}l7-U**;t@+@}1GZ<-_*)!4ZOP8bGv{?Uvl;dFf<$_ym z2aOzTMp!%$1`#Ahgmqa}joRgi5TDpq)|QVtr0#6bgDF-TBXqld7$Te%8#eL-?l+*$ zp0zGB7LI}skT#33y@$_coz^#_E|wDpbFp7ejxD!6P9b)j>hsEN=J$qa_vrlsuAB$1 za^v6V!8r^7ZW7V`AJ{U9oI0R+CG?2+N&4et4fpIC^_!lLpGqpzc_zZR9hsdSe#Z&! ze%C%JaUM1S=qX}}1Ww(G_>x6=_7)0NI*4AjF!a*xkNdaU$jhs|3Fq+H0YqaX8)_96 z=z6~;sXh5m)5y&4m(1#X7`U9AX5!Klk(b-f?=YXTs=nA7nQM@NxUCV1R z$Z2P4I>E5~Ug?3cWw&UFkt)MHAkFW$o6-}pGd(>i$e;6IVwVQ)0dxR-Ku-TkKv2*< zjQ@wR&7Y$ueN^q0&`r_}xP-m1LN_ZmI>;-&Sa^Tkb#OYkLceF}>T(b#1gyhLl~0_T zHAZN*gaXZwd^yb_pIb1pIF}D={dD!o@4nBo$4`2Ql(p!Y$%v+g24<2lqDCdg!2%R2 zF1Z`Av#F^A+U3eeq!$bI@zp2Fv9gE=|IMRQd6pm@c?!4pZ2YVr{wvWs8weE}5ZZGh z-Qlbh{gg|y27D|v4;^a+$sPs=ZwkKVZ-_*09y7lqCXgnESaNigfL>avirV?8)0 zSRixPxpb(t8)k2tpR^2hvR+`pz*`^3xr-pBf z8nr@o-v$CV&|0XnrV~(5$UY)wH^TjY2?pmqG+H!y!%=+w9y#5R0LdW@deKH|tc-an z$HbiIY+bCZZkb82p(wLhX!ogz-E8)%oiW{#6!c0 zxJwEp6dX^?yY+Y(W|D^8{3!LyKY_R}H$hEa11vy|mEGlX3>W+&xGRJDdfNl5j5_vf zMr{Ijt(}ZQe~fmHU|8-BCL!hmqjtVZD#)`P6W3t7iAeedB$fA=_)9kIRpWQ~tXWg2sF!%p$}@=^IkiT@v-wT0><)xSpv4^= zu56QeDzBokT|dT3%Mmu)SX)&n8cczGx%BSy=vwO%Lb>IuzIa@;gp z360j+*v>V5@z*l+vc2Fo!F9p5>zQ!lgY%ugf7KAIDo@sA9+X$7etz2M!Zx=e2^RA5 zS!a`6c}V76SRh1iV)XhTeZb0m&Z>PA87rgKRSQ9a>69vi7Q%6bihu4QH>c%TjyZL5S2l?s?{*W`Yf~rb``^wkXoV3H7mtk!770#%3%xUN#V}?dz?vdg zA+Fw$I%-epFADr3o#H-`*c~?@H7m3hBr{nJ$kXmQlWTnONdOiUIi@-8PsokD_a3R&% zLhrHo2v$D$;#`Z{?s}GpaOQy9lZkZwlQ1k0f5z3Bxq$W^8FI9~wY$pnMZ1=Cy@9m!Ou8sRXG(dmnYOJsCCO5z^TojWg_qkF7?lG`YO=am@oV17o%0=ko0bjEA zfruD)jc@1Y5m#e20Axm#sa2Dck$LNjOvr=z-=mN;VAcVI;S*j{6wgMUO+`f_6ld)^ zy?EQro;;P~*?rh6hzcNeG^}^evVv7AK;70!23wzQH>SUy>M7CHwpN581o`xF-6x?Y zc56OhL+WBRYp}M40H?yG)l$53JP34EXSXY-#;T7h)6l87FVQKW*S$8piNZc z@Meoa1FC$;RFCVLqC4K-kbykRDGokM-74YiumS2U>ViLCvlTBGZLKRbns#3b|2_-t zF|06_Y1lfM1%9gT?au}%rOP$_xS4b1%{hPA7zqEG`*y>IYyZ#TLCej_COLMj=jjcS z2NXktrnF~lX|jakWNDHdTa|vlV`vo=;AEt|G?mSY6>G%UERc+D`)8DtpFScv+3ofm z@?WTvgS5ay>Z=gd%YI5oq|huKJ-p%);qW;wKN`GvEDmwH^SVrpaS6hsb|Woa8OcotxLv zX?5llIDrJ@Rn=*u0(l?l&G*hRD_m~sGv958<;?PGUg6>~TdT|*_joFjPTB*VTG9W@YH@Ee5xS2IzVPC!%bdd|Z^U-l}aWOGFRxu#s@oQnR?>OEM zDStuI9QbGV<-$>)bJCbxDz$sWadI;^j-0QwX0)@Re@OB}`dky=C+tmED>|E7nVQ7U z(1|6US74pDG=P;Vp5a%ZwR+J3d2Tti=~=|UOG9}AZuF&LY~XMUUy+O1-mUiVq0^9M zv&RgTZSw}K)Y0(!VxUQOUG!YOC0dC3v$ZqoDKhD$sOU|aO5XjIP#~vJLfv&od+Tsz zZCA_Yy-=+a-|&4L9MBfai2AC*qGfYsdCX<^UdZzLkt3D^K|zBp~ukcwzc=R{h~kHy7TYx?oHoo)~Yyo?h(WaS(yQALD73 z%_$=#q3hy4vXvoQU=xzQT=GeVifWOM5Dd8@&`b z*fQ%JqIUwhsADCNU&-mUdOUz!)w3%I|3e+V*gnH@>A4V<0S@C*#$raxL!@eh@=P6` zs)O>`)@{NGbQk^iR8)4fIcChd&t{Sf{m%Q9_W|5B>`ebg;Uk}{pabtzXCD?2Y^jD< zP?ejmK6#fmQdY*+h?5qVs5|~k&8FU*N##FJFpPV0qs7|7U&Y!YrhT+?z~#C6!yr!8 z{O&9?Vm-q<9mSoIv8Tm-fp()`uSK9+0t)u`&K@6FxJt|cX)sO7L_zXikF{S2|94FM zZa7Ct!3L1Xe0+{=b80hci*~bYDaqKk#ZezN(9;e$nvC zX2hObOp4d8QqwfO;2K=mV$w+1oQnJ^pv}RXR+@?#? zN2Xd zTyA<7hhG(=DkTL5J0N%Z{|SudAA$9lDa=?6FDo#Z-Q;bGUgAIG4BzLZN ztPBsJ;l$nF>Bz_z^fDGG_B zbdGo;_n|F9kssE6LaSZ$J@u!PG_1*@`JkP^P=MZ>cFExeTd%GT?S-2(WKTNi zN?+g@m^r}jy^#bRmwL0Yyy^{D&%ndVS##~9wZ!*r+Mp83(^D6jPMbMva{$zDkdu?I zJ!!Iec7%<_{RTf{G&I*5xv1_g`FQGr=r$37FbNDmbblha{hDZQ{}CJoTD%=WdKcV3 zL_Kz};(ub^p^RDm`=J~__oUFx99xG!&#iMlqa^*ZKU@A^%=(@9IgLHfbNRTGlY9|V zEDbUwQ`)}}wETYb3#^OHtlY{{RpaKS*`d0R^+hGd|Jw`jFm#h%?s~NBatrT0tv=hb z9XSkbA{@5dcT!${R%>U^R=I!lYH?-#QLB~qOZ861slAP;e;%2#5`{ADg^FaQ%<&Q1 za%pB_PWVdS=LRhQYCCIZ{)#yNoVX_srD@+Nn3Na%?OZvZdxQhthV>;k{G%AkHWiTtn@088ZaVSkoCzhZ8;t-l9ZPLX3H5)-B1aXBr)0@q*U ziacNy%->Fmc!CbAvue;iEI>bDs}ChM)m#q<+;M z;C(jak?CkFDkv9QsxlH0?yPNGhz?Q<_wr(+B7G5aDeGiX2U^1uhcoi%dtTc~CE8z; zj4mMnha0sVl;+t#tkbZuQ8OX8OW}{E?bxrv!AgcGd6Y%UV_MBzbYzeuj>VghAr=$oEy*2>h&Q$2hh zgvpkg+|2hE=IVWC>tzrE0U%o}g(6=HBPKV5cD(D2;e`_PK4F8#?ES1OOI+7-Y^+<0 z$W=lpQ{qeQ#YPR~}Z@LpZ&`FXefJjZyuy6!dj3 z!Uv#$`o%gqIqRySoQ>``32aHsL!CryJUk@7GIMe$`T0|JGywp-Z&7$$K@YzFWSr^u zEaN4$%xI6KW;v4Wy~~QA`#Od&ou2CpvxU`PoBc^=3-WX9xXzIDg2AY<{8P&naR!7Xp%9Z^B8Y- zGJ=t9{M1P&KDMJJRB{Vmrta%orfBQl4}}i!w6^r^Y;K|fdi&hs6SDJ)H5(^`b;-QW zo2Kln&3DyXE&TnQqs3J+=XZy`u{z$y(ac_;bcG?>AFDCXc#rs450h)fUbL-t27r}X zVvrly_Xh$7<)?qaHx{{nI=28Xm3MQ|;GLFE-^83{&5`-Fb#-)2^k-*y_g#7IEd-5U z=L>ai1$4J0*eg(BSADW;Jz_6!6}QgRWZxOJ5@laAYSzwCC3-i=qZFUryz|+Dm+Ysz zJmV9(IJP)ap$C!B1K+nQv>0}Y3DGx@wP1Ti=P=)uJjg*9{mU{ABNb!uk^bBHm${c! zr=}J@F9VQ(&5lG$fmZQ4K_-3_UNTCjwW3Enl!rrc`lq+1_|)ticnf_9s5p9+?hA24vI8bKgz-hovceT%2a?NO^0 zQW8Bj56R&{C|Nnga};Qj+>psAe_`XK_*+0MTD}~F0A-tTA!IfK+kPgU2=y}QmHqbK z1M7fSM{l=%61ADuz)mSDsqa46`Mje^L{3f)4gA-Ei2F~CeuTGNxays2iUjH8%Im%< zHL*LH@79PG3kKzoM7g{M_BK`{ONm-}s}zf&Y=R*=&m&I$#de+9StggK5q8A-l3>t( zchc0+sahSid3zj?X*V}n?DNbvI+QskVPPTwp{5^mvQCB2@=m2R4p^gtp;Ft4MUb-) z65Q7q^R=%~GG#E6x?WFm8iWWA&Y*z7D=U^9-L3Vv!hjFU2mK#$K({=RC!JhAKPj4E=!? z9GEg)!n%13HonF#*YplOEC4SwH4;mlOMLEel z7q_$6Pg>hU{FFdjuB0&wj7-g278-4=5K+bP+wPp!UjuWf@x0t)&7RjFdLR|!(s$}! z+=Ll701IgN*rX(nqW)6FnTtQ%%7EYj@kNdCgCSp^0!`Cy^Vk=;6Nbm5Wq)pz^I>3gLn*TJSA1XZ}mI-xagG zx3XweHVyQzWcbdL5{-WUlq^mjg=i%!m(3s7EF>A0)D#eVfF+KjKNYf{vZX1Uc{ zuXgN7%2pSYFHnm4tL;3uL<&nYwdO6{v68y%NsEQ6=x1=2AZZuf@Cc1swdpFH@El%~!AL#P0Fom$_Yh8LD-MVp6 zy)|-uWT#k~gn~wECYa`*ovtsE<9Tc=6&nZkbc@e(t2WZcBcZ%rmN8Y#;OpGokD8s{ zUpEKcdk)K&y_?=5!gwemv=zM%Uz2B1D`h^db^riL9pz30Pfl?V2+qpI5LE;VSEk!0 zDT%tatG04`jCuUrq;dFa&=h{!F9A>`Ww6I-*kl2(E`9Sfev)4Xy>*s&p<92(GK*Ui zqoR~QeIf|~;l1D?BW294+qeKu;+xLSr^l;@@I}c7X#<1I>}>PyE}JtGkrBt8mgSy5DI6p2POdmOSlTy8GC`{p_y0QOl+FT_yNq`gLG=FCb8o|X}~Z&Z5vz##i66 zlP6mrtXaFz%TsY^H=4As%9#=0xVG->O)!@1@_eV$@IZND>s z`rYA&bS17=r2;0+w^v8<6JM4(h#86NOEO=ikqTZ|HmlU!&&)9YC+*%UI8riSg-VtF zeo%Lf-zJPo6}2D(V+YsR6apnf80H z0N)HAz}kkhq(%Y)cj&aX>F7_PhdZ>N z?B|K~EBJKa=USSld3Wg12^J2WHy><#e`FUvPFu{dd*=}W1j*+1PD9hm zy)mC|SAV(tFKJz!+TDDeSun`CAoDGo+vi+%^67-E3T=Qf+SSgIc(F>U6GVA@M`dYx z4pTB$SuiEw-*6_7`5!ldJ-o$`LP(xa>fUiYG7P_)xuHt=Ac zb&#=lXG% zi~N1Le6O^c0Yw{Zd&teh({eGbWn?szy3A}e7=O6bNQ>DYZfq`7|06xzG>Poyym-p4 zHItpK``?7Bvois74mI-G4fJMw#>R~%V!sLS!wwQo*O9U8s(C(tAIXBxRlq7UVTwT& zqc7hcPOy1|7Q3x_Vp-SM=$z1m48aH6GF1+ut6)wAqNt{#PSM85#C_T?sxunhsF8Dn z@XJo1g2U)kS56!0VhO?u6mL$mztQC9HHfvvAr@x6@Cg0ESX>xUeZ91zyp3W?yvq1` z#LMsvZ#-9IOXnWft&9NUSUYcRd{G#(pZT9^)g}GH}&h zdS`ycOPJxa;&FFCuT{eazD`UrD8b3gKofHXH$Dr4>FO8Fs*f^iBU#0XXG{Gn%U|qf zxjaC);2BH&BJnKVd9LaP6%sd{%vXgUuac7m@Yi|A!i;N6O|X?OCi6`vy7D9B#>nqo zQmE@YRB&P6PuS~!)D#>kvHQ?aT<>rwDPQ@?4paakFE;|ujvt$(A1Z!Z!+UEcWW1AS zpu;{_zYh%$`4CvE^|LWEJjAClGc>9=rZ~I)W%wS(?=Af6_!1MEY)u7h zTb7spE<-NvFtSlsu}5PN!CX&xKZj*qRF`^tX^6bs@!-5L*JrQV`#abM`X`q#PhPYb zrHh*Z!M7<5E8p^U=gZ9d)o2}?aHlx$i))wX8yw7JhboQnWD{5@`1qRAYi#BwOHY+T z^%aJyD3&t680Y&@79| zFNiE)6z35Qzua4>=|ljoDXu;dhv#8`BjYsI%UA3tzDtG(MaXTbYIGC`2lcjXlKQNc zb326Ef_L-?!IQdiBijX-kXVo4+4wxW+$~VYewOXN9e1>OSCeS z%8yOta#WlAu?i}1fY4{%Tdj=x!?fhz)qb4$f2`swt3$gYt65`!YLgse_U_fc*{d7QBkp4QlXrKW@lXV3InFZ~(rnd{_lKT?DksD|jgfZseTz9b z_#blz`c8D0Pl7z`Wg(UIA5#PMNId3ULn9szBPTf_cs1T2@vJp4Tg|8;kCIYV z#ajO0!+%~U#tJc(vtAJ4O8>yeYN>AAYQuUPwHZ zZl0o9i`&_D<^m&#z&W37!NI}`oWcZWYz-x0u=SX zQv3%td}z~?dL?XuPHO9YEE}_XX+ZojKjdc0PA9pxLF>9SSo=xiw#W8jofmayQWzwg$lh!uG}nUtW~UW{esiA0N!- z8U@DmM@+T7pO($_xN#SKAuC057pQRo{}oGapOKZkP*UGKzYfRf{=r;6$;|u`tU*Vc zL6s!LQmsq~tMATAGS4lSF z*Hw;{W$)0DY(?CO>FX|Eo3EBn^2J##Gf+oeeL8)FVGc>kI z4hD5*hyIOsJz>Psva*Kd>R@A^y@NwB%`3Wuvapq8Z)zFI&=FmM^*#2+mDQ8F|FE=k zI4}fJ&=Lj$CGOL;BTff%$L(doqgy!vD}6>pOFmOPqCR9*#P&W2jY3uLa36<#y45oY zjjH08pT4LpFK?Uxkn z2@O4wb%%mr1}{65?^?iy50-ODevHaxSxvTD4JA>4*1z&7zq!7R&eSrOKX$UPgJ>3U( zuv{jQn8G`XgK3$93K~#@s_LSb-^XT}m;>R+Js2S}sMJVLacjIp3<0M;rsu*l zr~wk+z?<>&Urp<+di_m_rDvk@`*m*%&F-!DXg~NPLwT(=ouW|{$H6D^m!)Vx)NBP) zYfdU#m)TjjnRSr<_UKqV&w5O9paW858njU&TRRH9qeqaw72t%E4>5`V`~JaFO@_ywTq1! zc(U{uVpTuMSfr@aP2Z)-ZrgGPgymwz;OM_@tP;x^8wIPWu;7;<^q+fm@qRvyC?r61m64r$XFFDNa;!w_GCEPag{Jg7s3)4#I$jqlXW5zuJ8T1Uj6&^wK7kOES45pf3V` zcALn_$s|vey8E`Oj~_qO*!gQjpp#)vH8#wGnLnjcZ_IQ}tc=q=FeP8(dP%a{M(C6~7(S_1NbGxg8r(Ud>d845rCL;Q33<-bc z(0OF=#eZl~*fZA0;sE1SP`sq8Hj~&1msN9#tx0ZUt>ufHq z$gwffj8?UCa7-6gJwnL!D4Fniw!`W=4mXa*uzE?`9qPB6Box@o++4|73HT%@k6Nl= zIL(hDSb4_PTZLvoPFJNqu-UsvkQ6!CRae(AmzGB1TTbOF^?u~|YVmotJfQS!gBu#O zEDpg4Yqs3Ld-zF7d|M^NkwZxdKAR|x4ddI^-M1(*^u-?%`fdhvuXjV5kN)e59H&PH zTYz%H3QAW%8qg1Wj4CVEUO8r9JV<=N+8%2L#)HOtr8hF5c%IAWu&Cx|tG{~fi$XZ`gk7w)KH;J=eaO80g)t|taZTirC zWHG)W>Ti}MLkL1Vq!ZI5ybKYRzPT-G4Le^#w;@8sm1i^VOK=DqQ*ksSyBihq5%jX4 zeP5zaAsjmRb&BWC*i)o;hI(Ot#KKQ~dejI3izd}l&do}#7Aq0VWoxHxTpd9tjF$-E z$Uh_uS1kDrerLY~Z8<#r2~(=IFsYg%WvZM>fb66s9vCzhI zhPeNK&oqXE8U7XNd6TJm6E#*TREnJ0584vxEPRkEvBU?J@$M~ngbUW+{WJ>r&fI1@ zSn!c!L-I(|#!2uh0TJLV=#MXf-$|+Ti$R%@`7m)|`?4~|>6T|ii!TwUDLpFoy*eBK zc6$2jUiV=lz5%ScDDMSgG$GKyea+XW22sJ!ET4h787sz=Q$qvj&Xs|`@X$ZqZ$I)Q z2TFr~4M5oonndU9tqMK4KueT_!I3O2@>Hbyr1gO{P;@}g4DQ7jiwf`VSL8YIc3k3A zL&lZrxh31Lmy#`AXb!l&dgw*U^R5I^z)U%nC(Zc|720678Z5#$6QH!7M^SIm0A=Ns zpBjF|PMDYgpX_GAxqE^>$#>cun*-gj2DmAI#|~K_7M|qDq?45IqIZPHUJIX3VuCdq zQQSXNS?Z+y5k{x#i!Hi};Gq_}+P!h;hXsCfPR7ktpKz#-aAUQN1tAd((kmlMwa#{0 zqqBe2Jdzs|8poUKK9Xlv@&X-FWfDJmp(qqF3y1JM4;SQZaQn$ z#~B$;*6q~#_!u>XJ{4Rt8)!g%E}r#c+fyUxvb%jd5j4R^!Qqb~(<|S6NBVDwm_FUE zw+&hYk<9$p@Vc3hAdfgwa6H~0iHc1mN}Es~ik!|nW?b_+i%J^g z|3ZN;jOklhw0*BW@u|##_>Pd*MQS84{`Y)CHzQ{Xn>xjleDSn|*%v-m1|N1lVbYlz z2bPScta>(6KJNCcdo597nfXzLkbe`8Jip@^Zr>k$qb4F#-~8}os~_W7&ifDmiM1Z+ zAC@JADD`=(ed5E5&xA=sYt~%IGbdg(#ZfWU2x-X*W=zSS)P*$1;G(8yW_sfpVE)D% zk^fu<#$Y8nGC8bEB1 z-)k=_5$FHXmp+tG0$$^Gue?aV+l3mUhj_7$)D+C7W&;Bw?9_{lMd#1s08OxD0H_H=EconC4vU*ouzxmt0-5IuW0#& zaiw=#TocvcqHGY&L&sd}vnRa*(`O1U8J&wW2*=_3B$Sa_eW+ydh~hY=kS~$J_r>TP=JR4yX>DzLu_iVm}Y-w z@M53@wE_sqb1OB9h{GrdWQX;00zKUa8eF)V8om&aZmhGz;XEH1%qb`@`JZ5EqpXa{ z;MsztCb!kdb^m0l+;~9P+x@Q`#SZt+VKIX7!U~S1#?1HEiG>AX+vVj<0x9cnr51=n z4lFidf%|S#piU`fGH+ZZ-{jw3fC%vh7w$wY79DKUH?DRA&=^~`bNde`kk*vuZgXZ| z^x%wTjfZc3*>l;n&Ixn=e_qaDf(=nb0&+6gwrO8UYO-S_12DMkzTuXCAnP8+-`L-| zKH@zxTG3+h&?(MJ%`f=du|)~@&*P$h0g#Q^*7HR~WTSZ6zBml;@>j2w^VgeaN~Yh3 z@>-z=fO;{He6rMxyf@AM&sW7w6kumQ?ncXSq%?oPc%^qg!)4lyoP@qmZLIFze1BH@ zJp*(E&*5pw;pOv1ftp;OjSzqVDiIylquKP&j9Y)t+wC>Z>EXz z-UCb2|1`^}?fJNO2LTHDea02tb}~h>ZNH(*t3?onER%>rEQYEl(L>cqr?}uX?y0M9ronrP6??Xi8m%4T|*vY0ia_Z5EK-_mlUT0oIvPqxzB$` z_;3O|>zvyxIuZlm+#l!-j&lQ6ov!QYo;KNoMK_INIr=d{EK5&^|6pV?bR|WD`yw=g z$b&(&-tZ_~OO3q5ph4+>4U0bz{<&VUKtMrhX9fjD9EZj$p+-(KXetislm2fKG1VDb ztdK54n*#ioZ1t^%bczzCs=3zc`(4Zr@x>_BgCpd+@KuftTJKz*a>=D)66f@*R?4kB zSh_m;_obACT#VjTUhoNntxet2>WT61HlzTi=MY_D0K&#)*YT6CXi)8`es+F&x4)~X zcI%0$=Ba>l%UrT9dTNveEfiV3On)~lnz1%jZ^>Of&T9FlSj_idi}nYXO9tBuT{xTs zP_a0uX}DdIQR|T5ig?%ZF}L8N;%oKxoJ5R;sU6j5cgPDVUhB1VR>N)AdWSSDtooCA z3UZe?Uej-V>96>kU;J{YsD12NcJJX-tc3zR85$)U;Ht8#FioV>-%AhtXntcuLPkTA z=jD|_My4zjP09chkxot0^!p2Zg__0-`ogO0kg27&I+CmmoXdi!`tgpka)&~*tIO2#G0 zOi4Cdz7OayCy%>9q_4c|=Mv?&Ew+hdr2B51E;#@b{H>?^Yp8Pmh1xxW#S%Lv0LT8` zQ}*v{D>s)LZveV2o3H9sYsKl2bEr2|>O7CoX8G)@{PAnA1N&oSzq^StdRrRXC~2il z{XRRw4Ci1ZcHi)jZ}?ah)&q|nuLF8Bf_#O6Pa2n**O( zqC&S-{aNPw<%?%J&}*abeH<4R_axaotZLUt@(F>us&@bMg z!T??ykr=P37%~h^U;$rs?$6S`UO)QZHjCRQF>T}e8!fvUG`D2rL$+bKd~n4WkfPnkqWNF`*t^4Z!mH$~Fp@DdM!#bseKIy}tlgx)2c)x&(1hJhGM z1}Qaczj4u$=>9h>*!3!ualKz&CxnR5U`S`_2dTV`4HVIjP^ZHT_9aVKAbAZBaZ@nAM#jldHo7zGTKgcQkH+YlvT$ zB*|cQG94_`zJ>4ToGC7}`ZCiJQ96t-n*fm&lAOM1#17XDS+P@Gus>S7LO2fI!N#2^ zHIR76(kvW0Sr_CbORN1on_GpWTA9IUNQ{L9-EhsOW638JE;V~23tB@Yah#9`#eIC8rp`Kx z%STVTGUNdk@IN5CA7RTfvvq1Bf@1<+pS@oKj`@*adX~SQ6Q07lw=viI&(a zHZ=6cDAj9kW&BvCRj`hrj%ERl&s8mFxwXh%1yKk`sK0%U;78`IK#hs`($@YTbMBNh&Y;Yk@3?W!BunCS`RJ`=`4fGiorA+%wV7Cg z*xj^2NN1zJzj!Ue(L805v_uF=8kUeiI3L#8FgAt^Yz326N@D!Qh&SzaxNf!toK!Bm z*Wy&R^ig2^BcZ{q1G4GS2!Ah2QBIkPR!;69CM09Zze{S^ai3NDB>b)NWFjt|mNLHC-FmI)uUxh4U$*Pt7RZy2UgAfTQ5@GN6PNj2-?q>xr(n+#(258WfFfAlsTjRd; zdGu!Wlf<3dGVhdBKO7uE}3Xs4QG5B=8B^1=ewm z4FhiuZPn2H#$`*+6{wdsuRPyHgMW}0-75nufAS1`t0^Ko*iA8L98O#G?8}kFc4VXg z{?N*Va!Xj&+%~_%Z_(zR>p?pM56E-OlJ3gH?Tx;cFz2S6ojS}EHtFnxA2?(NZfG3F zN+H1G%1{d#=A)$gLe>{8Hv-jm#mS*V@8Lv_2Su8fT!P-#S|3cKCW%0zBIe+*&7)y` zoBz9K{a&k4+R%`)r(cCsZbdbnT$uNd?3SO_CF}R~O~C0fx;RBD^QBkG(gI=KWz5HU z0vn0QaeRrWAeIPBP`jh%M3l1n%$u$P!C%BML=)>!K&7X|5RIIqI!o&to~F}jXteeI z)+fSkYgW`x9h^h0`4&sn<41Y|FT~k#{1o-U77xf`ku>S~8Tf}o8zTBXP|wLe>G%&v zW-hWZP7X+`cvgmZ6if7wx=)0=pt_S@7iW8{K)tx>fV($T@jkIv3*u~yrgP)k^UflF z85OGYVM9c8JrV=>5m%hRZP*#N$Mo+ap9Z*ROCzADQX<74`nmrabwg176S#l#%1~(CFq-pJ|mQ?CaAMs)3yC(s1c)SMmD6);QjU;hGYT_ z#cMhUY*e2)8T~?Z5L?t+3$mfb7nYsoCG-1vhw4}+iIVb+Wm_RtjLoSky%g+pOt^iM zzltV*(H(wJLwh-M`;L!?jf}FYzbu#+QqP*ET`;2|$h~{GIlmn=3nhQ`=U&2TGYfN| z0(nTmsQ+iCjM(^3PF#C2i+Uk7RmFm_m^WtZeuiBI;~7n_Kk5dREXvIV(k${}0zXU3 zI*6rp!;H3~QS^$EHukocuQUHbWXXh-Ag0%p4vCTCkI5-)j!Ct0Go}LMuv6h3!wDw7 zQZx1iJw7h+IQhp$8ZK0NRF2?=Zx9jVahW)o{93$rk2a{%62cPXp;bO5s*&KGgPUlSnpPKkq|Q~OLbJu|FUE``k*%b9bum94?29pjA*T%od?Rs# z=6fPk9jlgIkSormcijou5mcw;%Wk}n=+VCwT*_SV3e)DL%xt&c)Sh3q$UQXL$VZgM z?MG-CeYf-m_&LMQ0X@_=FgECB(22cAc~gB{)(`dSf5Fc1KuI5h|K}3jW|z~AzUb)a zwKaW5$E(@dS+EVj@nHTVHRg1S;Cofo>AoncQk}-wq$FBQ#Dyvd1|cCoI20@>*xC)# zU19Fxa$9cD1Aa|`YT?r2A{jaP-PI8>28OcPC-E=>jY=cg;#~D|ebKwigF?Re=;-qv zV$ZCsEGH)?WCAYh$vj0CjVaDqyilXHUqOqPlljU4DEO*-^-|K(dhQn=E$>DIpEexx z7=@=k$Fsz^;E8UY5cYmx{*8mpQ~E}4t6RTOGI}#>I5jsmh&>)G1d%jpWI|G2s9+@Nj{`5R^{ zZMVpamQvxfmNuT2AwGRtNgJlaKUN7ZUA`%gsHFa43mI9}f&0EY=5CE$vWE#_(UX^W zGFJ&~f=rpi#bJw5x^!@YFs&GVNV*v z-Jp4r)veTgZ#{6{y;-7^g2`a@d(x(Du^c%g>g67vD7_1b7>iG~CTOwU{HFT>>eFiM z!=_6QG2Gf{A4av5ddJA6UAWkc+$CQCtkwN!bj8>!&25g7}Sq=Dg{RL zpp~PnJ}!Oe(fnU(tDyYx?wG%@&Te}+$*Kj?Cj$cmbG|!8OGftXPN8sWIFX%}nYp}S z2?e%O%c|M1Plh_CAJp}pU%$YUcNp;@0CfoDK832S-`w1kO=RnfO!y&{&HT^nb&xNT z`Q!Z!92!y4DtsJ+PQj5R)bG>H0dQ+b?7-$gEd4^Y*-RKAZ>rmAUvO}6qTb7a3h=K6 zC#fGd7S&_f^CzvMw(#A=m7uYJHs*q`k~r;`UWfFi{gIkFPhPX|;T+jt<}Qo$4xDv? zy21gucg^XT(mlS8)o1yN4mEs_84@ImHf!U4RlIIJYv*<47#0g`1#1(UIQ}sb$&I!h zpGctEIv04LW1sFHnSk#Jm+H-zuY>$-e0WE0zmAvY7h+o`ERYY+d=a;bbb z7c+X$ZK3#_Uk?|#UC#fwyyS4bG>?1>^`08D<>~P*obNPnv$rRVP^;SX4N#;}nd7iG zO~_;KbPO++Szc6x3}7O5fnA%e4V+lBP0p;qASfz>o-lwUZa~lT;R3W@gM)*UlPZVp z0Sz|m-D8>J0m!&YS8+i<$Uj5jRByRQ1*M$~J9ODvq!0+JI{OE4+zhzGkbG(*TI$;* zo0|+X06r<-s`49_b>bFs{cz_RCtoYJZ1$A4+xMgz>ik{@MS7^qdB(nSDA46d=dku0 z*9|1=0W5snOLa!Jc(Hy$y1PWl(9x0CXFW})CiW!3xYtiR4q(iqsHfBK@QN zO7B3fXa`(d_Cj%@3Cg<>labbjAL1vn%mp zb5qm(U;^vnW$+u?jEoFAZovCJllAX5G=XccJL?6IXV%oX%Js^Uq53`gui6!l1yGs$ z#fezH^hQ!h*P(%0emhEzjfrWE51I;x5g8_AyR$7>ATQaM1b!`uDi!eh{{4HRqh7NM zdt8A~?_3%1b9#^+Z{&nfl3qOkvIhgONoU7o!y^cBwo2S3+j!JU>U;l@S>@*Cw6Bn0 zkQ^%RJ&S6*M226b0KU9hUDDUzCSn_+o2?r8VrjlWpk)_0GCQ9)sR@|8`Q7D60sw5C zAT1s^URaoXTrRf>Gf<&@@@peJt#sga%nBL*q#wv`y8{CYDsOZJs z3>whi-_M}ibp87U132)i(>R^^AmIS{uE|PkX=(W^8qjEz*JIdn&;g3t_vP)@-;X4c z<)wDm0i5}Q0K(xZK@yG*@~mjOh182ALb)piy0U*TktSVrif$^Xw(g#8MEJGFRypI1 z0@IatX0Gci@qaP~t-3Qpc(Cxp4E&xnpgMQK0P0+|EV{3QbhZbA9nuMX+;*9eNGV8> zfbr6m1g`ycK@OsH332(~?B7LbV7(BZpO1>4A?wPl*9|x#`>bn;q)Aj%IR3c&F6V9D z(C%(-MDw@^fM%6RyM+lGUgezjrbfvwxG4SMfw+NJ2ptLv>Lb>SRJPL2g^Q&txFcbT z-gP%Ww=R@iJdE#p|6=dTlGYMjsY5t|1i%RS`uRb068e%vN=mSFR4|JNaf+s%4FTxj7dCe%lm3vKHtxBVogUS7li{mW zQIwMFm>0kq{+Z1#4b7!rnzA)IqVhuh#Y#CFp|)+uOpht{1b(N?*zfZg3?sn$Oht3g zE32=`alqyq$+G67ZE*-j7)65YRt@1dm>0aVHtT*8bow~4=I6a9czMD7%SlZFoLUBr z%72SY1V4sWq!3`f^$@w5cYntfe7q)CTRA3)0$X|9V~ii}4^cv8(94@&f=lnVR&=6=Uy?{gW9Xp&N z=vRlhzhk*R5GMBaHQqU;*38@dkDEvGbN{D0ZvyH@Xy3gHTKF@b9il*8bZTyGU8cdP84sUwGn z`R42EYt?dN1V*YO0(bjal2NL~nhp=Q7rV>74u^|33C5{oJNB%`!)~C$rFuTzfM-*S zGKyZKB5Nz@NZ0j%-Oi@Y7HZHoek!CaLuy*uQzr&+Rz zs`ZzPNf{J0%#gKtEMCf<+6s>d?G=rT@kyhESHB#HxL>nv>4YdvcJTlT)LCwDFRTT* zNn>~%HenC|L`O49*Wi$Tx&0QB*GPKKPdl3bkEpMX%W8YRerOaV1w;g-r3C2)5v4)8 zySuxky9A`AySux)yGy#e-tG6^`+J|i^`qyUy=T^}S!)I-bvY3Nk!<1`4T55O>lKkZ zI+vd#qh~C4J4lIVeUyJ_`SD*~o@AAmJxv}+-_?iA!rwCQwZZYHSpvwhcvY@9;QsvR zP$Ul+rh)RTtSmfM^M}(OLMYGo0dPpzlWtU1Wc%Oi%r`#AEQrO#J?}t^OG%;Eq)i!X zIIj721>+EMJ6Hbx?Md3#4pzPhhJn;+0frkHUv{i$i~pk6>Wd;ntK7BDJC54_6yae9M{0%FdR44Oq3~<*ob=KYsim zxT^=*bB}ThYK3otf;LsJUsVGQ;lsnjTWre`xHS0Debk>nX?g|) zHuQ`pg#D1e-@M>!h3H&v&{_ThCkwxin}^AA^kg)^>GXaui)w;) z#j2Bi;QSr8VT|(r+DDu~*hMa5g2?MAOq57Uqc=?{u#mcfnEe8V;w9ncUvr;|)mkVv z)~{6ywX%vU*ZcE+n!|8(T^w2NhS-pu?+Fm2qr+-7fHz1bZ(<-ZcXB%)SoFoXP7mRq z3U~A1#)*@|e37k4-sCpoeLx^4Mc6y`a=&{2)z#ISWoMJ!@hsG^#;c2qBz7Bpw;UeD z>3!S!!oouP!+CDoIUs^>HCwe}GpfM$m>g7XWt%-vrZ4_scW{ zC5{lQjPHw!i=EnKZErMG%Mnd2$(nG}-%tU{qQAnV(n26TKU;DZ{ten2yd$Ak$uvya z>qz;XDehJlcKg?tU6`)^6Eu|(4a3LGuOZmxa~j1pD_cSZmOtvjlHKn{m4^$}h%e6i z8s$1INXesd69l$=RE-|DEjU|v7e5s*6`ZFOv4fp6IoD+Nc%!@VGYG7Gn?4Fi4vAqeux=qZ1PwOlCd~_z!vd=1q{8PJ{! zoyz>F3gekp0CrVg`h{sG^x7R2$>*_xeQ?_PC?s}w2P!?EIeS7n21&p2P0 z#$nq~r};uQ+=`dy*ex|hE%1x9-}MDnAkgKV1;NbU!1=>XH=Zp%iP8*w>*9W3!7LH^zNY1CBoNnUXy63D3(q)L}Pg}k3c{eGb_~dnpkI0|9x08|FG63?e^*b(73S@Zi z#6%U-zrVtQ0%{0=`-K`UPg`*s%>e9s?_WAURvJw(Ffu~DXJc~&#Vt5;>ZO`(>0g80 zZ@1#eL}P2~>Y!Qyld&_BIx?Aa+yh=%-4AbYy&aaFc8-=j=sHVj5`X==IchkD_5|Tn zPxf*`lDEllEWJpj=IUtaKCS2a>@0!B>}?Ggj%U8lA{Z1BQc0>HU#zO6M*z?7Dn%6| zo%fTpq+p6s>57P*cT#h4HV|>-`#!-{hk0}t^jO}H3KY;wVNWIh6X>;es!IINHqB zCMaOz#E@z9M)YN&tML~Sz#lidI_4&=E)Ga8(){ex70DWZg8CP$n1=ehZ2c73nl4hI zC0wqvG3W}ynwy&=kKXl0&gYZhLO~04TwyB{pg4Or{}JghbNh2!oUbh-R`%d2olHQ ze~&q&47{AN0q+K=S23Z9^cWQ7nZ(SS*&gv^xXpH8PHuo9;ozDzGN-(q(-diNO(_3>OVfFy1}O;z;+l}eU-v{vcQ9&%}sXyw|QaKj}7 z!ELW@!lCg|Bbjb_?+s?#@>=zzD3wT@T*N=PXlIhkW&kafliM9pz7HToeT0F=G1C`IHtQnqFjO%oqa|o?=Ob!@;Z-01d~@ z_vW^?l>h=E!UD_<5YRHfrJhhQkX3Mr7W@5{v~^x2HZZr=bJ*=M8IHa;zb`0h&Sw~e zA!>;1)3vTk%0`mQH)0B9gg5iuKbXw;N>T96?4Rmawhgz(^p9>Ew9ES)M9APF`!5gz z7#Ig2d|G*zEpl_=(T(v_ulFIX9U048zvK<*nIijNly%DA#;DIOQAza?%toWBrQEeD_y?E=+Q z%e86#l(9Jp14Fsr(u*I6s4WgP3EyOnkuop>b%8&R(Bt9sZ{`N!0E=2aQsm6v%cmVy-pr+ zpb=NncS?vSg28hC@y+A%h!72L4PE+wHxjj=Q(tCB4rie6>`I-d&HTZk-6;P;9|NMR zP0=jzYMA~N9z^ynKBSh)>`dl!lkA^lP>Yym8z!I!`m%7i+v`7d=?F8_*>+Mtny5QD zYY;=YcrT^!zP96J`M-l)a4b_%u<2!CRb;!T#)R?e{1XT#GucF}`QM`<`d%+9CJb#O z;K&wt6dfTh`q?dvZEtQ`;*E`s#ULS4)4X2;y>lYWW9W$WsrIm${walnm9i8;w^{L zcVs)ZYc{CP_T`S-u&loP_rj2fxdRki-L#oRBVJinKt*=H^7pJOf087(&#SFV|TBP!SasEm&yE%MswT0wVw}k3Ek4 znoFARg7B=oB9=-ErLt1YS#r+tg(_O@?B7o3D-=<(1@hTupCoy+0vI9iL>cwz z8WGVx`oyEfDLRum5yD4qwch^%8q$g@LIGiVTlBs6`4usiGYLc}>6Q*30^Y;>N-fcn z&geb|#xu7EZqDwi0xc!`Z%<1XTn>_1B_7dKC(<9(Jddj-u($N?P?r~fS;73*He^P> za@1)w7)b%m22dDIjzaCOcLgu{$x>aOot1N$*ZnS;*e$Q9C|Ka8rXDb4g7y?5&3Ccp z&ln@6poshVGc$+xAw9oMbGE^Ou11ZFeQj$iOO~qc5EM`#Z6tF#SmObHay5Z&t{1S) zeRj#fwtIWFRn3XcA5+!}4f(o6*0&EJl4|Bpbr?^fkx_WUv=R?7gppC{a#O+S)+6P!dXWc%jy=^lDXN_ zW};c}Q~Jtj6u3TZO;|CPa5b?)Avzv~lFO}b0UoymrmSEzcHf|->eB}Na)9^$qQG|< z&GSv4l9H0tRKl9aC5IJmTVj4;;Xc+C*A6q@=ZEtcL6rWjvu3w@>jgkaco+u42uH=1 zhe&07Q=0!W)z2W}4C+Eu_-^{aI1Tqc=0N9zvL1lVsdz=vIzgjhIpgW!d?a@6O$?|` z59h0b7gD&Ktno99-^7ctI2@^(Hxw2QX7BL#g4Q6n9$IjRYRt$vzNk$aOTKJ3zd~TU z_;`eCju>hD^e#JO_Gfd|k8u@Fjs=b+mk_wC(`x+NmbD~QVz2kZEtf7$`8R7 zk6hNOEx)U)j^z!u$cwGp>!L9wKG{G+WQ}Pdm8h2+tjKDd{?%Kv0D8-74i6w#f$I4s}3QbAwOW7C_0AqXySal5yTCSH}K!T0Id;un( zrSP~pYiSWdYU}HHt`}|O>@|RkE*HGo(6^V%F2{0C`QVVMR(%GIG=~*81@?0(Y3Xvy zwRYfFf_U<$fdakVo6Zaro~kkM1Len!=Mr0INMIZpJ_nP@G|f@RXK#49lp8Y=wR+n! zQfstw7;Zg9cfHG~ftAwM`i2%t47d|~DVxZ@Ob3D4QUlceaCrO&^nelUC!3<#+aNX2 z7*D?|7x<8bu@o_LlnMRwNQb1}o%168oUWx|>lBB=ZWniLtEZF(;@H0_&n3lfs+kgvo%v5to{5PI2B~i3 z7;>-rrl#xwy#efRP@aI@{)?$z`lf^I28oD@0^=O5k7EJ^Qr)iNWvPnFImIUynSv1z z^nwM_!+GukIM2Wo0#rht#VQj8R@R!z%F2fa*MS6(>}qRkxo+wOh{pg?o-LmEP3ot7 zf!p)rHK0gA|I?0R2{eN~1g*!~?T+gKrsdUrMnTE$L=FWh=^JDT`ekhP27d3oU=tIh zi?0yNYWg&XU^dBccB)Ix;qjBDysV$(uTBW(CrZvs;{ErkbO@jS2#r+h>E2!yu9&_~ zEW#gT$Joa_7s;tT{+PPPiH#Ta@@pBb_Z__Nl@ZqbbVs5~g#Is;t}Y4&#%G7!Gfubr zu!A>7OW#fz#_|C3W}f%l;>QNhos#7 z`6c{?wRqO3LGvIG4Gr?Xe5?1=Z_FsPVr9P8b;<-i*_3(m)j#xuu8F-f=iQ>s2pl|o zv2s;VgSq=Tuwb%U$g7Wn8GA+(*;aPQsG!DD{X34DOw`)i8uB|meSI+gSv58&AmA71 zcy4K7*}cZay#-ttom%~*F2g5e8NCDh@83tk=mc7`Jc3C8iH}>J-N6w6V_d-K%z}-L z4Qe_^AkXX$#WR?Y?~MV&&gUu&=#(pad2+rC$r~GW=kKrV4_+rgo7JA$gg8*(%#m2% zS~fjFTFRIaaJP(J>!8R^mJo%AkvdgOC_-kF%7%79lGlw{>Hjcdd^~+sHi~j@k$r|A z76aGda%F}!Un6H2?x~sg9Tq~v7eD66PT^o6Jsub$HUKx~!p>LVZd0eC-dtyP)|Pe)ABUYm91b}(TRDuF3fny)f`+jcaF&r9u7 z>SEnho){9MN2IC@I?%|;{Ry#IezKa&SKzd5r}~$YOp1D34g;lcgUj_1Xa)s=x=vJ7 zCQtU`$B%$mI3CXu1q8LR5X2H124<#EDLOLJ3iR+nU(mq70F;jy7~^>|IbJXbem*`- zY*1+U_>bo!ys12HcVGl0E-vo3j8E_1zXzP%YOB}U+FBLC^uogZ0A0&qZ!eqkg(0|| z>gp-7REMK!Uuw*k;E~^~?in8|#ese-D8P%O8b9|^DQdoWFR`7v@Uz)l+i+k5xuZ~c z?!tYCGKJt6FLdV(d``-2Y&_A#fD8#YhoDo9%&^E{SH% z_{-tQ z-kD2A0sRm;rXDfS#o&f+22L2U%QrC$kWn;p;W4mx2MI;}AfK4->)GbDI(%3YYN1&F z*7T{+Z&N^oUq3Lv@GCW4ysGge=V+22e8Zij@{C}62eJ2hIEOZ4>&s-T;S0jJB4=8L zm;YfPcEW~bY6|RN7r@SC2!{I|N}&C1W`SSRmGk`}==t3rCd~BemJ z)q10~ZDpyC)}8ZflZo-^dKgyE%WLwyXMZSkC?uYRWeN-2jFv3>UZ6UdNW3z76RVfp zWc@=_qSk4ii#;;oSB(3Xyy6TCx1Sxi$DjT$Go{Eb&Km2OnDC(q^p^Jy;%PrmHkW-) zkGXNt=Yo#;^0P|lhurRavQ`@B%WUXZ%Kqh4_Im18!iaqix(9!?h(1wDsU3=6Yfu#3 z7mpacycKfmTKP5s=h8im3?excpWsNfoe~YYP_|$b1d=#WBljJvI&|>rO)UFQmy0a> z5s#bR(j9w?ZO$YPbPON=!7dqc)XS6YAX4QIM`}W3MjTnCCzi^0bPC1Bp?3J}16c@% z(~PC?X#~p<%R6W66)y;66D!VtKrb5m5gEu(A5jk;c|XSL)n$fdonzLtwLkXYLLmH* zmpFOSALZ(Wus&k=sQpUuy6)+fyO;~80tb|07cx2*2oYDMnZ zC44MbaU6>1SIlL>b{cS9BJH;>k8P;iv2#%)MthdAJuTnPcWbYxntFu3bDcvX>o8Y1-&2q(`TY?S)nhv?90MW}I63h3=%Za;(l<>d`K$sqkDX!g9##8> z3XWu%OQp61+(KU*?~z4ov?P15Y+UV`{{Goim+;mvGGI!}b(Fpb;m0R=Y6cf4j{Ojh+r~cn7vJ!Q< z-p{-w%buqYPU_`kY;93csfoaL=f%#;mX@u?Z#Sv_XoB%qg37(VTT)_Hq@@H+4FQbLkq^v&Bx*3eyaSOBT zm9C=o1zy)*BY4`mjIi~+-h)qnqrXS-yiom6Wu@axPPUUISt=19AfmPm?vXFSz}VbjB+Nv=xz;6)uwoL|`C`3;hrg9VSdf37JlHFFPZ zD|NaKwV;FqBretQI){u}BeebDUrmDqbTk+%_la@7 zq2}~_DOXyOF_F>it*#BWhNG!vYX-NnzzamE4xYxT5LHr_iivYbDWzM%@WI8aWGc=C z2W^2-ddPU8*XBxIr9MCP23kDI$_~+6Lj5+&U75;k2<27wwpz+U{E?d$(c88pD)B+j zo-NJ+DVzmgS?(vEh%7VNf#k91JC5p+69X6K&`p8$yvY=APJh8_j>=<ZF#bxML@qsNz@04R2%Z>n-uj#4ex;tQ!@H%aDVC32* zFf;n_hv_zG^A>c)bwZC#n8C}}Yy)bU40!5pw|tGJR~au7`>3kz9+N`fDx!CvDRCPa#s%2dKLE*|fIiP+nP`?@TZd zj6lqlqV_5~>oQU6bd~2Yh~>ukP(qvTBj0WXd%!!R`LYK&*M@8>Tir3qz(2ucLj2CTE$>m z-;+|n+d_Miw4~%Y#mA?=JkIywZ;LKbTuXg6^-C|LuwrTq;ct34OA@cpfVwk&ZuBQ5f-OJ8Z+(^QawEP)Q%lU2tVrq$2Q;5KZF z*K}zoNK3PS-R$*Hh!aP#MM>#50`a0TD9@Hue`bCYwxIO3zW+5>Cchf*W4`eDVgAU$ zfNbMB!#h=kE-WAu7qVbu;%4di9>R5}YM~;iN0{G;5h?U$emM1*Z?9jMiSAd~Zcq$) z=YL%R*uNLdAA0ASUv2P(7+$~*04 z%(4nVkDWH&Y(~lQ@K;2`u=_)4N|&U#B4}Hv3S(;6VPZC1NQ-3dSS;2h#dOFZHd20% zqkDAc9cWL&C3#R`p(<&WleoF7Ri>S%=K z%6$h~hO|-;cUQWZLCfdad0!IDrtq#D4{4}3wWw>fSlDL1zff18;2FmRAFTcg+Vk?> zc-K_N8x z&b;OOjhLP}NE?%cq|AFkHmc$eU zh{01cEJRZBjp=^t!Rp{z0S%JYa4axcMfWwHJf>nk3Ge*hbAHhT&j}0ZtRCd`5Lx(K zQAr!-PWAlIpGl|~YvtfEvE;_#v1FK#J>lD96nnIXNrWB%S>343Y_fO<>p8v2u8eP zcU;L)zcQ!w17D<&BjB1a5oi>jru`alpUDr0@$1_eOm)R_#bGK?|2k8C{aC1sI0sV= zARl?HPTy?MVy2ix8|uQYFOq^aTnmLv zKDOlYP>{k#lcc(F?sf6`YBV=%?i_Nv_UKVCi4y*m`_Q~$@Bz;o0JoZ9y`DV#^pV)g zRa$;eEpa95Xq73eK78g#PwC3rfxraokK8>9YIK~22&B?t-(YEWZ_9nlM}~sp0rLJ- zw_JQ=yh;+mi_ek~xPUNQt}jg*%BQ)ntUbKGTW(%gVBU{toL-@_E5XUxQ%)F059bW1 zl145i@VlqKSNVcA$}(uAudVPcYBF7kSA#9O`~SGL=hl61L}rt&?D23qHzy^vD(`CA z%vgOIk%u4JAF|eQElMO2+XG8{*%L5tL9Ef#RDJd|M;>^HsE*eibVbnPJ%uv}sidrz z`<*D(?LcGSo`nJDqt+4_4EsZYqYJ9_&duP^X}P|_rh2=x>*6sdN{`{R$0jvam%(qiYGnpu zkL*LPiTJ-fD#nUSl$sU2nVIOD`cg)1vXrrL_rj+$O=F~S+2LvD*mST?$*lP3z)KWD zufP61v0Iy_Mh_A_5)>BcV&JE|md zU$>7-Zs-qeb-eK6&xju?7kB;e!);S`aZ1LyPRRXpjOB-&S=vLhW|DGh7(KRl4`asy zqH{mwlnMvJm9^O~((X`@3lpq*%H1DJ5*#GOEn=h`_GBd7Ilbl-c9sJkiz{U5a)trN z7p#7+Wp{jT4kL6Q;5_Zk3YFMDqrFEDCY6p9qly*jk`5Fi#}Xwaj+fQF{Z54?dh9Vv zK8pZRcU+4^C#hd{`A!uj)X6Z{#9W2)$db5=&pB+i;y$dqPDDW!9S8%>73z%na?{X{mXByoB>hSK8rKT6Swz zo$i@2s8VM1)}lIi_a)l4{^X_pI92d?Y_Sv z&!Kt4k*T05R2!$ET*fU8r|q?x)oV`E>eqr_3C2+!@Q(Ott%i0jJU!fn_V_#0#U|PO znZ0yA9F~))G~X(U5Y2iPCJ4yHD3iTQHOrHwDY&T392bedaA)BsHdpk{J~{Dlxh$oz zWSqhE(|gmc`Q9iY&9GZ+OrKF)s&Y;&Q3!Yt@q|TaFuH9~fL?*8!(XsS$!2pfo@tsu zhW82U-N6^M-~H6pyGorHkruy!LDJuyy-DY?`A5SZ$C2Vsl_aY}iTmL;-X6L#BOiOr z>9$*N<@Cw(sx%JwpM-oK7uNq_-Fygq{=T`4%=Jl&Vh@Y$ymQIGJlpL$-_*;SQSrAM z`xWwkJyur*%ZB++!*k4Rt78Q2RxL~OO5bA7@xz*o#JX^%;+$`~C3ctg7i7ZN3g-6Q zTb##Zwj2M`0+_j~9^6P+ov$BC(VTq_|BR9L=lgnSVPm~|tQon;z$KFW@vUihZrw3A zk3sjw<$PQN*L>cW)n)u+7IOGlJtb^Vv@1?)GRPo*8AJX$Mk<~-R2i5qMykgk^KIPp z{SbV#k_9QXn67W+B(8V~av;*#<%9E5n$JK@C5Mjhawq+zDBaC%Ep7a>Si>kbp$8WS z(c1Lh6oQSlX(ClF4bvnl#5`wf{(>g6kISu-Lhr4alzEfJe4g8jLr#QfQaS13ny;o+ z#566;2_-cQA37CwsV0m<<=KBfzVQ8_gp^8#_%e$GnyHbF(OVFdlbPvm3W{2aBur$@_@!_^r+3M$Yg z?5^S6Ym1373QH7n*g31#{E9pzZmD194nZ&p>}6Q%S0LUkf0+@VJ@ncv+i+Yg{=>Y0H2kC498J1x*Qk>~5%jkh$0iczrOQnLpnZhh#tnO>RZ&o9@j}A9(MQXzMII+-z)W zcyPCvE#P{4nTl!J5n&@CAP2yDZX)4U^C)yzalTsk^i&dDGK4Rluv>;Xqr^&juX5cr zfPVNu!ci@8Ly>%}`1Vgs-xm&hl#d_t9JLl52!}oLC6DQwN&Zo?=PGqn~-kC@=ri(A`72 zzJqLMQB&nGKETkvxDbBurjC`}_t?@jEHn3}FwuLy#^n=(zT7%xVv31+Nt$+=<#X5M zg6~xW$#UI8<^F+W!`tzbz5B0p4v1##+tH~awhxQ)CAN`Jd{%+Qkv)ODaqf4ncPg0v zJeP_yIO>0xZ4Gm(Ov016;*A?VN{VEep01Cn)x+XZi6K;{R!C-7-<5lNK#1NY}%SGVc<+KU}d;vEw7-tHQYFXXmT z0Y8s0P@xeO%1lsK6q`5Jd)ksRAoNWZgv~Hz(OLfCr8M{2x*_1csJw!O&~6ro!}>M8 znKP3JZ=*)wZ8{8$y9$qYbzZzELs!G?9vdKUeZr(DBs#PQwuFQEuo8$WDRF{+f6-W$ zzn12dU&lyO^VPR+&Eetu{)Az759c`E-fnL_HW6;`>fO(W2EhA>Gp@vR9%9+UuOImS zpn(Imn)Rs(VD+-Ft{iAS-JNMygmJVK^?vr?9t_w*B^M^v8d%7Opj+L(qZ=6`SAV~M zI+o|YG2m9=?CP<$G*(Y<(#O9*feGpVEmhn9f`9e!(Mh;(Jt$~dB0|!~y5Z0b;p6}O4 zS{1Ij;)xR0;z@^V-zNW_YGmuU{@2=p0v|A5<{t`o(jQdoyqL?6`UW3D@YB8l4dU#B z@a%N=mJUitAbmaR<+L*#N`m&%Np6x%Oxk%} zF_Ln9YBkhH^^3!l$jJ7BzwD;z1tv~N;Qrfohxef|?iCS0_bTz($5V5kJ<&(Q$MZ&W z?2RPdR@Oj`!{JknSakX?$+)8w-s`@nM`A~0)PK&4KGNUNgA~72(_DL%99cbIMO45U z>5%5Z=O8)a3*9bPurTbvHcT|nS=^-JSf|v$y^jNn=k$5jBuT?nHcFTXlY@3cgZjJ@vQ;Z;_Gr)NP3k@ZuIzO8t zfyxmVad|PY()h`J^$&%1s#|r>YFqMj5ht(&U3Ncn?k(0`=A?#6eaM^{&Khz*Lh{op zL@zPJ(l4-3ZN^2%e>+|L)mfitWsNB)JF|VHrwZ&@#LqF7V%Aq(nN88+033LuMgiAX zslg~c7e#FNi=O`&rYpa{iLW_v%YmomF4@caPce?5&9FM1MC!CvQbUgmw3mxg-2^I1 z6>}ipnMgw*#nIG1)0B$YD zEH*+Hu}pTj=q`l0FqF(#l`I#{hrBq}W{_c=K5SG|R860fsl-%WGmA3cGX4;BW#h25 zbx`EW4f&lpNe(lG3qSp2>w2HM!yA7u))UZLXOrr>9{5MD07YMq`61o@`3Zk}$VHkI zgWz^!amV6Wv&+zo)_tTa;Lm7W>fzYpf`KQXL1J}>Z zV%k2)xp#)+BX1l1!EZ18144p-qVEvyFeo(w8?u`2=cX(!e|jDB8Gk{`Im2vjtdG<; zWUUEIA*i@P=^Yaf1Q#qKiLT!At4-C}20}Ti6f)Mv(v-?xmx3u5G47e+@{1qudET;w zfO12(FO7tzlg7f2MXVq@`hRDp_r z(rn9~=N4{UU_jIrkHSnEXL!6|SK(E>5H*T#mdW{jxv$}|U!*0HRS4zpyd7VQ%KMJ& z^~-9v$2c3{?0N5Q0S&R;$M}1T>^>4!c{ZE8JYX`YUd=6i2_+?J7*kau8`sRZ(XH0Rb7@ejjo-NLIJy?fWc-zaL zO{R}(>oWRfkm=)?;^2HVHTf9v>D_6Led5yyj4)~9gl@vR2qbj%9-VLV#YmO8FK`tC zE2l4cd7q-hNS8f6*{%5Ma{BlicZDXu8O>^Xl*HfMfC5W3EHR1~3AnW`r&oqQA#)nb z9>mhh5V%#^EG<}~!+vr)`^~!YuD|?X=GbES%=a9NF!wA-27_ViV^r80)ZfodF`Ny> z=P&Wu6+v1dL*oE*wEun>e`rKyWU?_TJ6QBpQ*Ft|k>0qQY3SJBV7BU%RnQM>BwOa!i8G z6kKpFXE;&4oTe%`}&(@u| z*+P?Xn6VNMoR|$&;K^4HQ6OE_M*FgG9j)C(ry1%>ZkNv0iHWY$g^>mFO&HkI<QsTevh(Epyh=>SLQ7= zs`_-=*l6YgCyat(&Rb?v701JQ4==Vi9-JLt$9pt|C+yM^ zyU0%gbHbzbJ}cx623vsTuuC6aUhnVv%w}TrAo6SLqr{*45|U9R=Fh%bbKnDWW4t+A zg$@*|1be@re<;?SZ-yQi%TWE*ymc>BlC@|eFYRoD{HQz%)%=U!V# ztxnB0a^CFyL#vV<_70a8P4-cH>##_*?riJVuZT14C7)#*iHrE&qbg!aO;jVNV~9@)QOuE@0PGt z&{X`SdG+(&;RLZp!8T0K;|i$XDXZ~Tyk;ehwbp`kdS3jvF&>?G5~-mYF?Y2slqTl3 zd)%g@pgYA#!Dlm~8WtO4t&o#0>lHUYF0np(Irlu*uz&MmxCnLCK%Y4!6i+w+orFly zlJd1-8nl@gM^=sVzPrgJSYG{`pYkh`S=x7|2)@$V&x--~^+UtwPi0J7ub_w50(b1Jeq`_Vq%@#Inx8)n zX=>ixuhEF|Jn4=syWPqM{2MUuaIh)R-byD_6&>#sN8!CzMJNlgSDOhMq|1M8$Dh`c zx{}ItIA}*4#?7=Y{E4>DbfDk3;q2*b+2$UiX}>zf;E?7oq9>QvIQW&gj*=&ApQifU zME+{6+?qA;B6u#C^oPd?-Vz?KdErW_eBEBrD;NLu+!qZBuI}XaKA|&q_7M;q3X1wX z=DQsQQ>TNjS4D^YxgT2SS{kqGcDBRuaIU5l22z~1oec~SAb$+y=*eRXd}8fv9k7W= z$K11puk&jg$8@!I1mR_H@a@;a_s!qpeIou{C3m}UH38EAJrEVndwYM}r1-C8zc;9q z&1-aYEZ@w7&Ok0leb_GIiM>V6Igl2`_w%Lvv_e;M4D|fOiUozZ%N+gN7E(vjuMItU zA$y@)iFaoY9j^pK3O|k6WQKd!R8^ct-=1`C$mCe!cV?&DJ%*EKF)R-pZv|Eig(Ewh zyShJ!@%I+&+dJe{E_PSs4-7-^FrUu`ZvOg?S3->yj12#+U~0i}iD39A6OH=Q(EMfI zw~XETeGJ|k&D{X>rhmVphj%C?f z$D$x@?`nJ;{)jR_m@JCuw7VN=*rA3*U@zm{qQOm;VByiNjOO7XnSL{Yhnp<) z#Fdxmk-5e94NV}|z=^oz=3fymDSZ(K;B9pFBVMji}Chu zOckLrgv28S-jmZ@c$=g5_fI(%7(QLG_cNcJ9d^#*i_OEFZg+x$;P1bLqn+&#fzD205Cb^3OEt zPL`dR7|KygvB^^jQ`h11(siL|3{w_SvX;ye2k-f=rtu-3&qE1acG!u=3MM>kwulhy zuVk)Phs3A|JxOQvgjXq>9C1@~yMr$vxok7W+DaPn;s)BHUHl2@9CiD&3J!3lsWS`SzIv+&15Axc~gWIB1GCw%` z+?AiieYvFgAabx#p-wDZE>6!A5EmL`6|TUzr$NmU$untPZ}dhyt6Z8YLgK3G__hGX zK7FgQJvZdy>h1Q?FnHMcl*EzJ17@Pg86N>kFtmK;P)o^uks#bzM^`My&I}`Rlnb_< zh2M?a3%Jp^NyA^b+{VK}bZ3gyfQ=8Qx#0KTUu&Dv-ClxVCkDF03)-v#@kp0OMPlqQ zJm#c*8t<>C<NYJ_NfpJoT4N!u{KI)Cb?Px7iMN^LV?^ zc&yqAzY|-ry_mbgPC@+T*B4Dq%{G?5y6uQn(8k;Ei3zhk@2Xs*)1NbjS>;TjJmOuIy1pq#nxXZbRHCFF9X=j6O!r+9d}KUPyyTeE5lZ?tPT+)z^8 z8=ioa+KxFEdn3PF+xM}Sw3xv&PX^BLp46kVgP5VqKwby^FV}@M{~XcL-&$7CM4aTT zA6ABxrV7orz!867L~W2%*@5jX$!cJUJI?;#m9ry4(Q_+5)Qx~Dz)g-WWIb=gpu&i7 zvc{aBfa2y~;w{-ISlCrD=Svc51V8=j9mW9-woP(Zwhwdy^lVguP37+&`!p=NHO#e9 zd*qN`njP`89gRy~gcKA6jRy6KG=qJ85|Wa~moI!kdHbBA^=tn)foDH9kR{B(s^@uF zU&&sVNfLqO0v}aUf~Lu#UWk;8`h%+!nEEL|EcyC3zN1vd9p<=vsJA?g{@dM=*dK5uqlHJN5U_jWXHbcM`*& z-MJsvWoY0$i6GWC@a}Kl{qABs^@_m$81Cu=ZLHHp?(~euVaGZBtC)3nL$B;9%pE(# zKoDgz2krg2j!sER%Q;WI71Y-@)`qY=JNV*?-#nDOf5QbYszPEB8v_#r@>XS&Mdeic zH5}>^Cq4xDHV4ZU46$UTrK4hE$RdL@RPJ-VqYwRT6u-*$Nl8C4p_e+ityDVJ!Q1!{q3y8aEy@;wyZrjP0gHy1l7TRfIJ~Wu5MvTiyi3 z{k^;2gOBXR8;Z*w=}*+?LN*KM5;eNW+Z;5d6v`6Ntsv&d3WJ?6l|^%Ab$~+m61HDK z%ce6I7dvsVqb;yla!U6EhfHtATMqeKc7CxqF$RaQ*_g-R(i~Bz!Zg{;=Jw32W}Rp} z+eh%Nz_7A+yzY&3BhTP-DXXY>lRTt8oTvv?Z}1*%xY&r1vzYrVIoPkG67pW(vWByQ zFT`6jT^4BW)5^L+u-Hrjv;S}L^C~K0AA*?nG)6y$ z18IXS?64McEfMR@G8sM99^CipLrJx6bI4v1JdU|S8D(8opZHf3k5S5K>JFz*eIThk z|J8h$Twx%ad=_!Iw4d8EeJR zi4EB#6n?kYePv2C}RYRaycXJVeec-H-A#sF@R?R#oF#{JU+ z@?f(K0`W$B>Ms_%kvZ++3dP_C?~e6O0n7pSCl{(2rSB~i7xWr#44 z!nMw3)o#O}z>6HC+VR>~DeIE#qpW=7XrowIv>Xc(b40N6CEQ|&G)hS!JO8$b-$MR= zSGUpl3&L%8wY=4G_SzUlU6n%lsZwGcxrSoKL9(-~PF5qAr!|&#TJuc7sMs;{4;6f0 za?CIH?&Q@H<0cu~NS38%D(UL*;b`Zl`B-ZrpPoR-jE!Oah&FmrUAZ`q-Ed&XC}htK z{1jBfRpm6N(RH($MX9JsN3uri=`cBx>)SMA?YBCO+-eDl3C70oXV-5B%E7RzCE&^L zptp$?yS0DD8xz*TMm3V7@+ChPN)sae#WMC3W>dz+N%>oT55h-&uYdl zEY-;Q{a+E>^W5nZKEDELQ{Rcy^2}BcRk63?*y{CbJm#VjJrHFpVcFn|gzor+7Pk86 ziD+FlJ3T0Wv&fkqG1w|yt$R#8!9glu43w|RuYQmnG~ancPR!j#J21m4{JiC3w1PE$Cragh{c`V3y0X$S<)u5dQI_{;$OLIuNv z!j{mk6TKYURgwHeD9!m^OK|5ZOViWKmPTgG#-LR!!d9#XU?~KJ<>cf{O!nW?0W)gz z{ZYfupRXac*S@~gH7$QQ2L~{4&DJ`fR5QE+!%lJz53jA7&DsiHD?=hIWr0$If7L%# zn$?sm?EK#|xrgK8^2ujZuDkcG!nT{txLlhZS^+~#Sj}K{`r>bA>hprAVk(8Q1w3KG zx*#=LYo&!ZYuItCk(tc9?vx9fZGI9sA{IPQe?Obz#`=SS<}3fb@b9lL`w!;8cPri3 z(fOfQo)9~{61Huf>??ZJOl|m4LM-4#)sQvab8Rr1_4T^2c`-`05<0}SQPrZ(3Q$&8 zvz@-<HQo`{QxeZM!7FQs{dhql(H;oxG z1)90T|Kay(mE0e9pNj|sc;|nl!rk!4g_QTUG4$nw6t^qMhg2IJ0m)K~^9~g)ZY)+# z=>``;QiRQ^&(4YFrK~&ikXMy;X%qU?OtyQ~8OA+g&%4pC6xF-)v<*(9ad@XCcEzqdgK^-t z4GZ}x%M8UQR!Xa{4a29Wb01hS6|L>R(qP+AO|-67o}NH?1< zr9oP{q`SLIK)SoTyZgSLbH01WW$YgeelW&p; zY_5$(T|Y5sBGoHh6c2w~Z6|hL zKsxlVQunw?sPKyfbB(o?r9rk&ubiMDuwPU>-PI%Gv($^3a4gF+rHWS4(&}6^$Jdj4 zOCHV3RA%fUb}nFjf+PlNFcwtG6J2b;^zW|yp3mx#gR6AQa{=zXX@#Hf&rX{ zVaNZt0Dh>AJhXBjelxs!BR#9~+TvpVsIUu$A@R+_QsNMu|c3TEZ1%LP@7 zq)oCY-Y40Hqq{5~jALAGC(p0BR@gOZZ>`loV2*N!Z>h0X+ok${K|zo5$$eYux&Qsz z;N9cSceoe5zzW1=&*w8~o91he5q|e-^oq!j`mDO;G;U+zo3YN6RKFj~zZVWHhM4wgr{tHF$;-?0d){AylND(k zRBn)dE&i6ar;+r}>bh*a(o3#x{f|uSdg(^u-S8~BM~yVGn!xE5q^O|c9_m-CdK+=- zN29w+v)L8+f7^Qle^D47A#jqrmGY4|Z)w2z+x4lQd` zEqpyVF5>3sXIXoO-#BXFK-(uy#%9ybVkuru1?&1_Nl_9YGRR-`A=qB>l@B!I3>Ga3 zC;8;pZg_vqw>$hcs+X(06TM^sVDbjejgPq%C4^#tqj-RVme#|VIMI^JMi@Bc=yp4_ zkhjEmJYh1EN@G*Kybt5Rl_OBbB7$;LlQk^o=PgbF9w*@TuJIz90}8CfhO>4aHo; z$L6v#lz45SW|Td!vK32nC}-|p>^hYx;rcUBzj*J&k<@acE=XiMXAFfqqS_<>Q z4|v}Dcs`Vv&aB0`Otl>j(W^cwkbSB(#Q+wuoo1SU;T1Qku8axr+qPy*Ov`!Z(Z%yk zMuM|A!tdtn$8>8B<}bJ}$e{beh%c;aDWNLsjzM}cw?n`Xb`2~=1t{UcWu-h>q2vb` zz#G61pvMG%N>mRpc%K!_l=MR^rlTDP>4)yf?$r-nlS!S++$mhQW;0ga6~MX?=c&MC~_(P4R9SQT|jel<$g`ee0YfIHc2>-4KNmNYC zME3+OE-o&pxsn(aMT`l5?0q+_(xgj3NMO{017mBnV+PdUHIkM3USdU0<-pSrBBGeeIRir;OBM=$+*+U#KSc>DHv zpe{({I|hYZ3g?$44XM8(fxpHs?L&f4E5Wflo3GaiE{ z6LOZMja(kpecWiWWi6%j>=PsqSe@dmvZ~GRmh>k97#UR$V|*>k>I>n4+>d?>mZCxe z)D<3JQ=tHhVR7?l>$8?tllO~Ps9qb~MLT@Xc{E(Grl#g!0Vr^QSBceghK1ew&+YB8 ziH&{DIoWCJ=m8SN_0}6xx95~srB#>6FKlyD)Sw_lqeKJBcoUtLyk{MkeC7;u?8p>4AE;||g|blf&*!Qe%4phcIJzRI%Ifflh~K9^?tizvwL zJG8m<)-=ijo8x}mwBw|Rj9sM*@zB#_hU``wu0|Kf2~(GjkY(-eSnh^q3_a6__O7T1 z_JwPIWzcEHH)@URO=Wg;|5qRZ2hY3;OGBub$-%HAMKNpL_Y>|Ac$qEFLiGlG}JGJsY(=1x%veVA6js^>3_W_H5KfbF>eb3jCNhJoApx2efMO>!tnd%xxZ!K~i|a ztn`qFm3N{IZZ8Bd+;hA*;NgF?d)I{Q3~x163(NhM`*OES(>DsZ#LTWZFi(`L1Ke&-FY8Bdg8e>*PN2tFk^A{mk#az5EGro_F@W=9cG^sWs?5qjW8DVCVaek-r2OKJ zf?syeEmH75f(i@ZNs4RS-bxI`2n!4I^k~(le*u-S@bU4nY1L6NFj!8m3moF*I2*Yw z2I89r5G_g)tKY%4oc&%-(WsMawzD1&U(#UH_0)H%X(+7?Tz>^vu0#pGaXlQH`yZ_N z21GScDF$PM)1~WjS@Acx5Q%K7xL1BzyYhaSD*8f*?1-cpb=lG6T869ci#(n4&5QBg z4k4c|c7f}XfKC03xlrX3R!G0?Ou0yeqANkeVt~Q7CG7??*U6_kWIgps*SL?qbnhfz zMeFYvbfu2GBco5LmG#O0QAlp3RM2dcc|w+`emy?C6eu;YmVU%`5f|0)^?KwQZEC}= zLSU5)ja!;*7`>uOeVrDKTat_(y&^_^{c&VN4n4SP_HhK=Bv_q#|6pj(4}dZ>)Ce#R zBUiFAnR(KxHAmuY6A|66m7C^CF_3q0X1M|OkYymATCWV}f4;73%pj zT3_qkge*r7_bQOOK;P#fl6QxQ7XpW1!sq1)&ijKvN3sN25~wp~Xt-Ye`b!=iPLZl9 z6@pJDCBpDa;C@Tca#s6dRsF@w3;zK62R~zYCNPYk?*rQ!>*Rl5Cu!3CoXD-U8Y`>-eIwYMxu6EFXTun+dr;$OV z(yB=M+1^k~9XEyoG#VZH1WA+tS*D2LHwlq+Z;S~;G&)C2t^f|Wx6bhJjtINUGGqeP z7cF?Z zG-&Vg%88xgBvQH!;i4#)S8NtqoL9=P0|~M4f&~D83kI74@G)Vxe=BEatTfAbVg|qF zoql{1zXjmPk^_-aw5lofCVNKz6enY*iHO(!O-oYtaA>jb<@u=|VZEYk49}h&sjo{grbP&2=xhQ%k&Wl5b=m;5Q*kva@}=;Y{AU5HqWcn^73&<8`vDOd zaa<*;UvYkPTU>~MKyY)ml*S&J;}82#{9|<7UCh;u)gy8z2UM<6%pugQ;cO)qbAQFL zj1$wT8dh`Mkpc@Eu)A>{-8uaI@Va(HiJj1FlaZdsO*QcZx>!q>6&lG{L+SqpH5myfOb|v0K6+yJSH}DX{Wme;PGrb3x#FDzTqAp7#aM6Di)?-^YSB%pNHZUEUifDTnO$ z-oZBBnwPpIh5hSAix_uA4#IiWJz3aoxBA(i2y{?+_~oz}vi;*%e%FP)JzsXlXxh_g z`NlN+RpIWru?6w_J8cZC_p}aWM~9UiAx~4q%6yHGhx;a*HY;UAhXAD-s{EcV~#O_j%2<{l-jr+$N{_cR@u;7Vqar zA0Gge*qhz4%e=h21T|o(Fi2*sS0NkXA=^u-&wd}pU`Wf0z-Qy|o+c3Wd{F7)^gotm zBiG!V&FPytD)4xSPaUUzdZ-`n6mG6J7!{Gx!?Na3h^No?AL(gh?xY*8oO$aIjI;4c z&}RHayC)t@Ix%6p_ok7cJ|^&6Ld|Fl$KY*piJ2t#zXHnJ)66*~p%!_)img=feb%?* zOuSYk-?&;*Z5xg$grd^fT8r|LEAxX zFgPxMX|}L}WX*_!fQV?81ZosjhQ-%n`U_=@nF@X934HBlo4Qp=iE!(zAeqN9Uj5Wk zeP`i(Op$)n{U4ETci+gnt%KCac`z0}R`JRGYDL>bFun`@I=z>ohlc^4qZ)ynGFs36s403;mq`yPBqnNw|u{dm~v=i&?p2L|-X$yb{R~-?_wOx5Duh`Dq0y# zO$GI*yZZM3+J8d`JdWAIvkzM8vC!GiHIW=UV{&0RV_lSh6}7oB zB&Tv*a`)$I)E@}8^{)C-VkrxHhHamzt~adLz|hOtrWvuUP3w*|81S2#OaIo-m=Q=h zsk|VQMY5vHsyuEPyfj9(6cm&Qgw4)eqJnaACfEx6}?VJkp~(Zkw$F*LK}tt3>~wn<2sU#mr$YmwLhtMd{8*By zy*>&Y<8W(|Y(fa^rlPVQhT|k&LAR&L2`Alcid-@h;T7k6!hsTCu8+aEp-*Lo2>k?Q z!RjKaU<3RjQ&RAO1YUPGwfC?fW1~->@weD(m;RK7VSCA)JknE3BAqf57l)!QfyWm1 zmyOt_Z{AOp|JE#(gdj9#B#PNynpCYP^ET>(zDv)CqoZt7fmN>rV0*t@Cn}i?go#s zy}FR@-GL237a(Bn^?JrGvPOBbHc5SYq-zS+0?Zsg_q7k$SLO9CH#ss7RQ^>kuj|Uc zI6ntIFh|c&yrnOzt&PjnAFsD9^__ix(FgC2&pl>!^87tQ^%%DO?%x*UuDL;PTPx{r zZ+G*E5}IX6pP!B@?D<;8=ye|`yi0}8P;A~}q*x9=d@u=%`ZRo*?jZjg2BzsxD%wD* z-*C6i$AYi|F!I_V8GOc@p!|g$NC)CACTwcfuYBBNddGN*;;w#~;8X~V7ED$J zFYeYiq8_P{6cI9k3$B?N-wy*m5SrQ<8d;8p$`Aev7Jz$@Id(5gAFrmW8q&SKyK8D4 zgER{Y(fELb85dVuXjXGxzy+*;35*o3j~H%Ov)XK*|D`1~O6h}F!(z_;`1Y;I3*$*M z#)rUtd8qdF^5ptq|9j%LmfNFZ8`dAz%{STNnd!$Tfq{*F5jSZ@`pEq8B|BEg+d>7h zX5@w;@nM*{B^QeQTU!M8;cIDxN}X0?yWZ_Wyhf~|vFxY!v?#bd;FU-WR!t8s8N<{6 z1ycd@xVYl#8l@nSmz#@?g{8qYFObk{D4)z0cJKj4SylBbb7Bvf9|va$c(C9xUq3e0 z2`uNp`m_V?1nlES?H!$O`4(Rb{4WmUp8sVfs2rAYH(VcvBkI)=S^qJDf4_$&yK$pq zb}0A>;MZzFn%Yde)5KH zuiUiLhHFSMLt6tBR9E^TsLSsS-CegUFfa^-N?IbtZ2X{*e>>U5wZ6=kl+vSsl4iX2 zn?YMK$bUe2r7O3Vwzf72)_f{ld~-`n(5P%9rn4T!P<~Sf7dX9f-r)**jnAQcxeV9j z$zP==x(IrX8hG6DiS;VLUNNDNB-$+usJ3&sR|2Ymi>;0|YxZaq^RpZYv&)ao$tv^21gEv%C z5DM_2pa|f(=nLL8Xr0!T$e9v;fipyWeVNR#jE}!LH$GkoIZ!VROe*0py+`CgOAE7k-4S(_GV5!HH|kNB83}Q^&vzNa27Svh$i;R#dm|ne z9(Jx%{rghJIWePD9UJ>4nFQ7{P(JRx5g-%jqo@l=oOgvuOTk$O`?N_i#bty0$t7S# z-8Rpqh{<#HCnehtHB1atoWpHBN>AeE2KA-w2#kE}9UL^`WbpCm(Glv0#}U2cwwUT5 z=hwI--Jn4us(9fpXe~<>l?&4}@6!KMrW)d#dOh z9PEV1n>JU5uXj(Qs!p13C^|O&jbElgoqzYop_plB;JYlX0mGG_lg>N9MdHv)c|%3o zOt~%f3Zf{USoLQsY>dcNg2&x+{%CC=MU+10yb`2$S|*JM{l6%DNllks(f+mO>o_K4 zrk+XLWY0e`mq4V`p(K^dH|l`)k!ADxWbg~cS9MqN+Rs@qKyZB-1qJq?>D4V)l}v@<*#yX}eo z-=2%#=&0Y{9oleFS}yz^mMg7B4*b%gfCJRdA{+BY><>3`P3W?``AuZMT6|MpJ)O_L zc_e^#=OLbTy?vEVCB|*JI~fMrarY=Art{&ZAyG=rta z@T(La*JxB`V-GTZcgnL!*KNPhP)NjkJCaW&wn_=U5<8?zr;!>#Ey@e2OZYY2r+(HsG1gY@uK1I z9Vjq){)DEKLfaZK(H2OEoJFPdlPgH1E^K}2Fif&b7z$4AG$PjP=M=j$v_O7Y;3xWJ z+0tof9}$nOlbde#2=Da{i=o)yPLQyli%aG&1g2HQ=)vn78{nNsh4mH8P;hbMhzL5} z08j0$6GdCIGz<`qVh9oxMCZq%*;ji0qqyOkgAsUC-?$pnGx{YoIHB}brls!}n|b$l zFB$w6+=Ngr^rrjjgf|beV?8Z9<9lU?IoFp5 zB5nB64Bh|x5{7@j#4n?oG@Zn{G=nnjL`I7V2s|ZJ*oxab%42F6AIcjA5Nv--Y@~B` zvOs-3j`<{UIgw6Y=0*LSLpfs#ZKN~j*2Ils&*b1~-1vf2>T8>;v9OqLcIo8QO3#*b zK>H#e6o>@$A5?IhmHjSnFC%Q4(rxUzl6FY`ZXDcH1zFg&K;Hf~8xMMaQmT9HOg@|> z^;90_%Hjhr6+c=e0XbjhFYl*LZFum!)|<8OizHA)oj)fE_@;4!)hkPN_%C zj-qbvviOAkkhlx&oX=4L3S*-^m1+;I%7*Hz&hqrS7n9L;q~E8gmy%T60}QR8fnTi+ zp_%yt49-QRLiBd_-!oS$UO;sd#yKOynG!8E6&2$t9Bh;0!=DL%n%0;+mH(|`E{eQP zw$_kpwsjU)IpaydN9HeU!`P_KcmUa+U!0$z;N6S{M^%&4JAhW2 zuon_}ksI(9&gY+J$X1dBozG$5$4R;d7rA|cRKe5nL>u<7$3-2oI23T$mNnnKpUefN z?Vxl7Phh~QDIRR27fFpimIxrA|l?-Xuy6? zPfgXYv3a0i?{d2GnVrRNJ;slpchfJDz@e=`u5^!tGmfMoio5d#zO5# z!*NK9n=QwIpucfns}cCXH9Iqp2(huh2j}Z`5+0W*ZmhL0PC?ei`v8q5Co50SmKqp! z7-CRB84mb5k~S0+H0$|4E&wF%o2j`uGY(RPB2*ePApyOkBP!nIkIxxfToUr;u_%Ct zM=`fR8iib1p$nwj25DlZ!sK5O-m^%E77i)vC8o1VOUzY^wLmO9U^>$W)h^8}a$H>Z zGb@bZBuE|e0IdUL?f9{E?>oJH>;Bb|dnOoF z#H2M$5bM!Ju+V5}wgC5Kb!Q^c&a1V;%j;X3wV>`XV)Omp2n0O1Y1+Ui z!6s#f!A^|(_f1el1chI+^OsKSQBzZ2pR6#%UzC26U)kE((Q`klF)%Q|6rKCBQ#L<8 z9~2ZMxzXu-G_t`p;3`C{<6W8>m@X45g$U@T(Z|M?fTSq@i98xTt%|23b{jN=*J>)U zxc`s_kl+73Hbhd5g)76FMJ#)89-v}8Exj0Z?xI%>-h(w!}tkxZ;qaI)3I3x9d4dqpa5ch=0u!; zPfX+i24O#f4P?kcC&a<48ePup3KbN9?^w0LZdsAG z)$IIF!$u|*f`_LzktQ3=bAcp2=zs)PhPa{g2~s)KG&G?hAyN_&e+D)Np1oF5K^bQf z62pE!i8M?KkUmBgvcA?14=7MUfYrUeEG6=3C$6mX*cmVPned75wq*j zf`&!S;4i0pu1kBs7MoL(a&lC$s4&zi;zz7#is|qgm$aUu054|Kq#&iN4Yjsj<;dge z17{nbxx&cX#M{X~6m8s1zntJCU(T(u zmTsh&=qI#=3_q$k!UCo~6~rAgyhJHN;c5~Smwtx#-ZZBF5HdTg8S&kf66wF`azi4~~BT1N%6FU=Wx+l{iy1ix(~ z=Hz4IX7>d<&(0hy!biA!77%VP~*IT$=UZ@KefiA83Pr9G~@0pgT#)Q}ymyR(u z3hIhmO}>{AD-bY@QWlm}weYHTH%bZQ#iGcC`+>KGmG#w;X!F@^ZDR%VDTCEKPDJ~{ zbg&C-)bowmM;G~FE0z=%D60lE_;nA6VLM^l5(MHU)3Ak~;a3@5=GXMf7hW#fpj@{@ zr<4}(>Nt3*+vNuy_C(oX2nlyJ^N>I{gCFbEq&L7&YX4%${bK)pbI5&24_h)j-#&X% zW~pR|o9S~lI29uFXPKXc-}}Tl&Y0oKBWvsx>!+Ivh6j5)V%c8NSBsFP+p)1ObTNOj z9|*3G1+ER8p9%s)!wKm2a0OyJ&C}&_H1nq3QXGOTuhr~k^lCCb*Ue}yes$; zCaaS;Hx)x6=JqG0)_O@(Rh4bG*+W@V6ZCfgWvH`17s#>Cw)I<;Ra7uhQkr^vo?W{H ziOd2n`RqXT>G`IgCfIdiuPZvnjw~+TkJnqeUgrK^_sHHG zM>@4Ej*NwrbR8*cPV{k;*aXMU4b2802gscmKiQvI?=j>&V2NG9FtO7T*`@oA66dTj zQV`Q^NeG+I29+lZztgShhR;#d$S4l74O9QgVgIy8Te_hw2oc|TSJ2xk!3ztNe%||D zpRk9vHs;00cRcLSD>g!ahYXmf61PJ&X)+_he66(6MWoBf$vlb&B;j)L zd3Z`I>K8PgWDt;&z=;N#od-F17+5|bFxn#O5)Xak`N+et_TIrf4Bf}+qg9XF=rRJuG znP&A~*5AiWiwg@Yg*Dm#AkU&B@h1jLx;BhgrRW~+lm*kd2+pgxab)OpOW;~~D zU8xaX&}8q;Wr=IE^O5sSu5=5Um(C@~SPB~Ge3euAstPf4jp@5QnXx^ufAh_Uo`%L4 zXF0ZjmXe*F9gHNz#B0pm@KF+&`1m}Qv*o$Dx$B0<1HcjpWW1xTH&~ywjZ)Az;z)Bj zIoN;&9#c3CtPeI1X}7rEuva=1>bV&&z@01y{KtwhVmM`2^P|sGovJ3e;Lfr0(fQ*( zRT={$5G1Xj#!aL*>yR(zN-u_uMHj84S*^?$TVM#MRi|$|k zAj=8$f=%zkYCZ#_F!AK@A;cv2fzyTQ*yleGeCtVz{p1>1uTn1uL$O1u%46MzSVmg+ z^6W$XzPnc5CZbk;b#jXsEq(0j95T^Yy!Kt2*{2_X-9rV>Dtop4Zys8(y9%bjY8H$* z_56ICJU+Xdx`J~o2}2$EmFT}=o-z@EHwS7UBuB)#y<(gh_~6D6c&>{3#Cx=j(l7#Zr4B&>P;V*uKI0l-Pop} z`DK3b7w4Deo?-@_-tRikG)T+Wg;p;h31aTH!uwrn%>ebp3x$L2E1&r|xl&&M_#Jr9 z->h$M56)szZYI^}J+|1GeD!7!x+*H0FitHljM)zzTQR$QqJAn>;udc^mj^)hyMuHL&` ziVEG}A!$Id=UhTg4QI#FDa=rMYrV)@!nv!djDZLzrX6F?ILt=;{N-vsRAFW5EG43$+poHX*+%3Fa8k&ZxTBz?Po!<~r(c z=Gg4zF_=;@R?*=lH-3>^E|x{bT}RH+L`~Dw*j$;T$D8{@P1Y{+*Drn0RnV{^!FcXE zG+((8k>BR{_!u-D1e@C6FEgOuC+Hw;ZegMH`Lnr2!`(9Ip9PAkvE-47d$r#CT*0PX z`YV%sE`s3Jq;(<1XMQ$=Y8P}-)s07077eSWBF$8yc@~% zEh=sY&bynyD&19iPxnz$_?Q_^SX)+I;O`RQkzOw}TS4Kx8wd8wr!4cILvQmu&#xx) z#9Ybw&~9#LOj^eh9j6h^K7wsxbyH5AoUlhR1AECu zpam1!b}AeCs$wz$fxJ(ak7uXTS7yG=oJ(%*wRuGr@@na2pLrNv9}^4&`!GnNDMWCP zWSms79vz)I=Q}1s6FRoYmiNFuFRY6jMNF zbUn|jSOv<%{e5Pgy=-YUH8pc{bC8~AYWi1%9}E+wrn{hPagC-GXeJN(K7#gQR))#% zkzgCNkBJ?K(Ds~btHb9oHsL z%WWA(LTa5#H;}aLB^ZH8R%dkxRtU5+1spg=sh3y;_QBP**LT+TDICr&Y_A;cm~G1O zE_+tIcx%0`1Q9O>-#cpMwR$u+ND0CWhJt^y4wU#tthfp6V57<7ESCGV9f8RzI`k9NuO1-^ifqHEvcYco?R5%=tJsEH*ZSK&?I#{> z593n9jMep>D%!Cm2phFrzQmu`dVeqEl@5qHE zbAOV{`h-6~&F@i2M%p&7kH2abfC%<3+)x7mgG34@(&{k)dWzq$urfBOM1=2MW?xHH-0;l_tz&P_*7bsJ?0 zc**v9-1}jiE4%L9Wfh0u#Lv8yFjXFvj@hI8$(Fw3wKS>rf&(w~17-stHG&ir1#{UO{tV zhceZ+Y#0#+5j21)t1_eBnmViku{S&gZ~gVrf-~sd4YI06Qn}e#Stq|r)BFQF;%~mk z-_+3R9qKC?)t6tj14(7dQYA9mgAfElD(XV-=WcM2sD2XdKZrHR`!9Ixdem4tBk#RX zSmOrg6jx5*=HEMNbsz$BbhNs*vwN_yy7%$yGP1ELSX<|}T)2>UfdEOaD72=4PNO>l z)aN4ea^uz3)9C)Vhbc&!?IYE7J-Pl87|Q2r@zA{z?0dY=N{KXJ z{pZhIWE5%kUUwFTjU?{-y(7rc=Bx!pulZHaW$`&_o|N2{%9S&--{90)MUx3SG;B;? zpW^x^nWB~(YQ@+e0Gr~z&xkn{G}k>|Yyg=Lwc2%{&n7XkLH}(~7(N!o_eW!3w11{n z4)m?r1N9y1v!I z{tJOSuZ9xXEpvSZsIi0mfBNLo*LCF>J6bi;`wLRB=WoL1bpDFQQ%2Zmdr>oH7_? zbQ70KiR}4(!x)m3j zCj`>|o>=N#sF7OYN^p6{VyKk|rAUbh+81zK+FSl{8=siKKu6Cd6SrQp>yJBdy0~(B z?SrkGo-(S4`4Jlt8HNCjpDdNm+U3|^mWE$@f0q)ZDf~M`@bWiajOM7df@`1EbKb&C zpQAXz*2(K=cRO?-T{my3NaM=5U0UFUG59iAo=e{%WUbH_wq4kDH{Zqo@=F^(C2zC!nbSdI#uI>|nbmS)8`_-Bu@wZsdFD4p}xLvD^v`w5e&JL=j zk-6`}a2s44g|Z`Nii5|h$i)r@RYH_L=A9Qh-b+6#r!bn|9!fHCkzP#3>8vc*?0VQ` z&Ubdh`;NT=Fzevt4^fG;TUwT8X4F2QCdgnDe)FOl8XAK2C3X_=$s25FnULyk7>H`% zhB|frzy^S21aNxkXl=P^BO!z3!^KAhNEwG(Bt?RITFn-YE>a zNekO+V5joWuH&uPdd;}~me2L<3NS^JY##Q);bNP1bUTMkMT zKPDyEo_?J_7xYbsKRH`&)G!IBSXo-%Lwo4{lq^cV3m@IQ5N{|Y@<%CZ?KwO;!xK92 z8h#Qls7UheowbpkG*vxA&Z^zqfG$2fKt#Zu#e$x56*i`8Ef;=iLt@1GD;A@~2!#Ty zXF@_l7ml();TA71uP4LCCp+exB{{cvi9fFaS2$hJ!5*}>rAEuJT^F32!;+3ad0xLr zgof&;Kz$_$ej-tzo`^#n%@BO=z0X!+3l^G4?GhW^yr0eRyHx!cEO(S9{0BC@=5~a= zLG(rE$^8s3#+;ee?-*X199VryL)3XKhm~}GQq{_(;zm-s%@x=&KY1dX(n>K>qT&4< z?SS5UdMC*6*7jI_rW_kfjQ|dSG4?Id3HpRp6k_4{$=Yzi;Mr@sG^ab0cX92T^(;pK zGQvUam$^fml?1}Aol@1kT2BZ2^VNu2Z|6!;GDccWG$9Q5(@1s#zd5s_3*Bbp952*SiwY(sI1SJ6%#P`X-tu zA=-=aBLQ3jKH9mXvdFI(N82)=juvPnv2{)Rj-iywy)06Aj0SL$;6le*Wg76w`uS|z z>4R%n7sr`m>*QoT60^Ovg+{KVT%YGNqG~aJ^**8R_j{z~#>x%)WFPNZNM+p#{J z&23eBomPv99!?(mf%%&MmRE-Wfg+M#%6QTXwJk?P#jFJS&G_ZfP)qu?F6)r{Vs}Up zf-ja+xOGk9QtoMDGlJ|;AiUl|dQjT(+oTQligbtUxKWSPh74VAlN&r3v)i?4_7lIC zvO1-kf@K&Kte$a5BgRMepRhyygjKoj@)(S-K@8Y&)0py=C|Q3DEXNJeG1vO-QCqQ2 z_!L<`hKe8cpeXj*c9OQ{*CTt)b}hrVK(`9SlKhKh+3Jp%NR#Am;6s`9quoU?V&3Nx zoz*8>d?Fr_l+1h`D#;tK=Ijiw>*G`!SY%f&p7p1ZuTc6uPKU#?i0G>d{X@c3>~=oE zYaJsZqOZ8PQ9{m$FgM-;D?0U>MU7R#i$mwsfNgbqKYU9#0DxqOhd=T>4jgN%tE0m^ zC6o-{DDer_p2P8Z$u*A+I|BufUt!(_kKb!`bQ>;bSP)a<`@3gYkg^tIKIBdaO^k*8ASZDD1MRnsB_mO*?;f8$0MUHy9n$&d#2t) zwrs)4iTJdn^-ouKx?`y{DYodrz%Tj88H$S@Nh^OqL09u(>0R%7sgYJwb*^mcR0QZI zGBiME(fkr^#VhFHaqZ}_cQi#Rex_k5wm|<Gfl=zj76^t#_XK3;B%*K-fV;0p&7gq^$K>C=xk zjdpe|4?fh`MF#!87Q)l|Rzj!uVg39yK4E&-TKTLcc}#b^9e!`}mC`iEz-e`M$?VyY*X`hD>{~Jkk-u*r5;^2x0t$fbkMP&(YvVS?=!rA|5 zPegg(S&%s~cphI!!?yBhCi#bk0gjh$=2P}m?ZIYH&XqlqH@!Zy!sK+y3F1%Jw}g=s zE(Z!@t$WKOqYL zj%Y^rQmA=3m%ntPzF4PSJ9R^@BHDy|^}Dv9+nW_zC=o)=i`dGzqoXv9jxq_2ds3i) zQ}=UW?w*%aPnx2}{n-nK+J=lzu=-mn(j4L9?u|+S4GMnS2|2Hz1ilCotTppkqV~Qc ztiYN`ktt|7tU9n|zi`(KQg<=PWp*)+1`L^g^jy0qp4vP3d@W9CPpnrq-`J&%ldvMl zW^=k0(&GLWMyE%%4)3Q8F7sB!EIxKeRxtwC%MHW~L$Z+P)myhy+CzIRjkOflce zui@q3{JaJRA$sKW8?VJ}^w`+=jM0yy!zOmK4mkR4J1;4^H={#VV6Jh7>eeIiV7Y&@ zExp4}@vSzvv$<#7zaqJH|K;ls)}(<|>%RLA3EVy06frWT#uXBhhawZz%@pGz2TGT8ZB~fMOm8JSpHsx}y zU1y~=@)oQF|Bnk0dT=01CK;XTC3T*vC_E?AlWwNrI#qMCls&oUN)qSWQr;LaEXV&! z5E_9(vk0V=4Go12Z0$QXI&o7;M%y$W#A+Wl&s{80;=2u55@le+zo=iteJ~5_ajOvnH>H{@=UT2>Kb#0tv*mN1lIayf zs&2vGKZkWlurb)$R#ia(-y$dCA3grLgHmDW?Yp=%rcVz;mg88@E;?$cWUnHVT^l0VrH_>az9G^`JR@9qPusQ4= zQV>^M%cWPGN%UNAdIGpS1CJx;@U5ZqZbwgdh1H4}_}3*6@^$Xo`fp2*p(E-@ zP0D2N!+MzeCqG>Awx2o+v_B;U{~DR|m$PGTq}_o_cAe-lWk!wKqC!@PcY z;JivlC%m^hoN|*D*AqeCrhZt-N5d2?(W!Y@Pjs}1pP((HeUAvVQGDd}GDNSsE(~Pb zU`|vb6_O0Oe-^^9*fUqb6^|NKG#9o3VM2&nVK^G%=@z%h+mIMnCbr?qP{Yy zuBB`G5E48jL4r$w;O_43?(XjH2?2szaCbcr?BEW;-QC^Y;oJA-KJQm`s`yLI%%17h z-K*DcAO0kt+nUD5SM#Gjh{>trjudo{FO}EOEB!hZO?I8D2pGe7_fdDtN;=IUdt<48 z;?YgXBf5d(rs)&GwF|QA*1U?<{?bID>g-)-;HV#F{nYBrEBJREa0^PB9NE)Mme#0% z+KtZ2bbiL~i|d#QiT>2tn~Yi4qSdQ*<%rrKN3+dfP3~`Zv*nuAh=mWyjfl!D(=Fx6 zNH;mwTc*S7xRRFpiX!Wo6s<%g&N#ALrbG0FB)z$GEaf^$tdR zW7*GM_cjmf&Q1wvzvrbtsCmh;!Kx*v$4!Y+ewv?0uol*a${b$*orLuCX%G)M-p#r+ zY9-s0GU=L=MdK7Mo;}NV0;P6S`@b|>X3US^QYng^Jwa>d@^xmI9Nfm|Ily(an8kMT zu+#m`#w;8rr=K{?aUgMYcG^Ja> z)4W4N6hr0zP35;srf_H~B63oXUqP0V@leT$9M|BmKoY_qjh1*jm@qj*Ti8I#GmX*p zyNhiy^)j%B^L_&UODYd9$xp(58jMt10cAz451>et2QR~1pw2NxCQD08Texoqw3^Dw z@fBIzwcWIMrSml?4*h#+_Br+Sh+CU zS?80zr_<4Xm3b985u6`5L&uq5o7&sD%E+N1&$=SzK^3bYmM<-B0kFK*R)XV(EyT?Le7T3|Hr29;-6qVH$@kQ^C zuA?!p_jLC4)Sx0&HmmKAFk|}}eka%CcQHt~tEh>ZGhSgX$S_Jk)ZakXXrZDd!s0#AY5(f$E7>uVYooRUbuh3$cS=|rCjc7q~~ zS}}0O!IHTw&fO!TU{hU=jveRmSyJ5IL^?bsLwC4HqwOA+RqzUiA46{PEzJm6oz-gd zAw8@InJDaY$bW#-&1GC~DTekPbacEm7@66`Z#8juvQ(^2tQvA2olvT@Tu zWYTLHes0bgxBh%L%6oYI0$1m&lCogbvspuCh3aUZguxe>7Kim}y~!rl(o-SV%)*!$=IsG1YM;+c%^E)5G=f9B z5pY**9}5WRmfhzVlDDTpYvlQUD`Un)9^Cjr2Fkr&SFZLz_c(|UO>^DwvQ(|&pYhIq zbZrEFO>aTGx)W+U$e~EL#tc{>`CMfJ*&+7WUkZw|WBIM6*a0zb^s5^;R@tFpVanAx z6GqJdwL}NVxv4)c6IiWU^^&@vOc-6L_nk%gCHLQo9_LcMY(zTCWDw1VeT!=w-K$Uc z+HQPUb$s!pFdwM;t+v{Hfe)W<;g^T4b6iNF*S2Uhj{6$I(%5*YLNQZbr13du2%kKR zRNT;NlWahn+lki*Kkps??Zvl`BwDJ%_f}!3Sv=%*;A|Vm&X!j3^SE!q z%s7fBS0s8l#)O7+FzFD1LYt|5G)@3aD;-=@UZ!?rv0_fa1pF}{ z!+fuqt00Ey@}n}jU$~GI9Rb$$avUpSk+zp_gZ?`Se5`X-J4CkUYb}T{uHT%XfvN}$ z?xB~ahIBGk0Sr6H{c?N##`XKt!NO>i9`@6|T$n3f(=VMlmN49%axt27G>_${7N6IyGeDPvyp>bXo(^##b}nUT|gz6W?Jq_tZ+;_}HDv zL!-BdEeVnZ4C|Z;emSV|=-MpF#l^>UEF;l~pE{ zWXo{`SB~?{i~9JhOZR@;NQ2Mtf<&$Z(&MqFV)_F^X+;f8u6*D2`P|iKd!}kMP+EHW zJ{}~DzApXj;=*$G5=cLAJ)C(Dl196K$ySPMeYj4f3W@T8b9qOZ4pqH@Z*$zYy6Uld z66myh)#Y$B7U@J6q3v_+Oi4qW_*t1IwKlsvWye(Wzol~|r~#u+1UiTApw_9x!y=4u zA9Fcs%vlZEl|fuNXdrECAFx&#G_lWRqtsTy7W0@(z&hj4chV;qKB}Dd$0arKdS%IlF$6yYO_!HPBPu**^JBs2>hTCl{CClK;}rw7>vZtb(kY0E0iOPypCZ9 z@#`8*yI~bpsO$uC)>nk4?U~R$U&dp&k&^g0>^vyJw1-AEVaoS&o z2)#3VpyUAz+Q&(Rh<)R1Suz6`x(eszgcU^A!a@EMN7I*TYM#^BQ8SF|+?$W60KaqIm+_ z3S&Zh1^I?&NgGXb*={!FI#zimYj1sB(rXbu_HDeRnGrD>LLjBeuGe@aZG$#4DB*#}`IcG241ImaRSC$;AT^xJ1z*_s$P0)L- z?oN%&d|Sc}gciBB(>i#wwd(?2a}rp{niQUJO1#{mDXR}c z!hO8Y-Mz3?^Lx1L*Ah{gDc?Jvk--lzn41|qr)$8{w%L;@n-j{@zg zOGa20twBLBu_X82t=qEW0Qv(`1RU9MLvwEO3%$LbCBZu*LPbPnHexQIv$S0w}GxF%72_WvlWYz^2{ zHU4PVZ&3DFM<(l|Ran$kvlsGQPEoT5*xuIMkDS*vt~B6m`XXM*hY8_iQqT8`Q@6_u z_|P8GwqBq8p;u-bdV%l2m*AmCN`Pr8kP)w#%l9!#&#`VILptf}Ea}wYq4ryp57}{F z|FBsBZN(tk04FUK2&soqdh5#Q%xyrQ8}&liqk%em>G+tqqH3QAC-wX6e%qm)Ds?8$ zA9Yu)?Cn}YFuHz+5h2+fX!2f{<#HSi7FsibVkD@hBqGy?DoAPBY@aawhlYJ$i*H3` ztP2Yxk*k;ohJ<5lC2KQ-H)mdlpN}_p1AKHe8N{1>M8C;S=$q|w)|$F$J9(jRDNp|+ zL;z?IWPb<@kIa|@3&tAj=-|cmd)s?xECvP#SEyGS4ka<*B9lRi^an=pN=MThQvuJO zsth{FU1F^4ylsez?CAK%4DAorjt<+$+vf8jr52F>>W4yI{FcV$SorGD#S0TAwkhQ- zt51Jn;K!6~`#1ZI+#*#NZ%8$oLW3tz9%zzbL2Etj^MF(Xoc2vf$x-z$yRAk}v(~M9 z|6(l|-z)ESWwX}qiQV^=w|;z<>lIzRdT0;YY+7=$L?~MhTDCqdjK1fYby2*YZMhIa ziVN=^ETrG>IzD@ACzC5$$TK;71}R&V&XU*_O{q2^F3*Vi^>r`0FyLbBu3_pHR#=V3 zxgs=OxGM4w?_>3w(x>=Um>GHMYCY^UuP{i%Y`RMfge&RUNOO&6*{Mo-@Wx#Vj9Or} z4_x+|;=bH_YQ)I*={&sD==84c&-b>~W{MT&v8DX+Yd)R~*tNt~;Vq9PSV^xvjKd&$ zT2AqLy*Unk?gwnEFnrpL*(}U;Y;vL==<1|tKc%SOqRG~%+St$p8C>~Zzk!BMq}Aax z89?LB%v4lhJzdLqC-z}$df=3cy0Q#Sp8Z@8*gl9MV!4S0n>OubT$Gu2tpg-IosgrDz$bjR5w1q7Px9Ymus2L<>zr8C7eM z3y?;X$QL@W+~WvPzl*90oy1zbUZOON?z0Y$&bWp5wvXdO$89H*NzxX~?u@0Px`!;8 z-bEtRepsWQ1Mw>wd-_;<4@X=*pm{Dzad*Za%sHII2_E^pl`c>DtxPcD*`nC}dCfnL zf9Bv|hSW|S|0bwu?7Dg{YE|Y*+^q6)rB`PQ8FWpa=FVSRUZSmZLg|c$itEgLe2!5U ziHzXwHbu`61q(`~s%jf$PpvSY_Z61v6m`NJ@=S+l<_<)wwc2~j>8VxZw*s)J7|HUrZmSb&xgCcHH_e1_kp7}pU32hgCIITF4RN?;~s=l z)a~`1QxdRZ5i&_0+p8`MCAx?L3hV9Z+pX~q%$^Mf(}!rY02Z6 zQRK`yw?HCrgCe-9#&y0d;?ND~TNH_6`&YmI_yhkR_{5A*^sYm0n@VzU8n4D=<3>x& zQ~Zq(-gm*HH?}ioT1{!Hl!`05am^v4TfN<4~O*fxCu2ODM_!KdJedfGw;eNYg|HkHG?1#_2 zSHcfkAKrpp0t+?*o;c>Y(c8=ZO$Ps(g;+bg3|TOZMbEzMue?b654D>Yt}!)&lP9mfi$4ijN9vLIWM{4@3q$P6(GAT`o3ll*e6IfRDE^nX zl^X1(PylZ-JvQ{5<9TC-d55SI3H)0LPDvYjq`hUIP(tza5yBYpIcrFVe&Ash7YhL4 zHYQSRx=*$b4mdq7fC)zkpup?eRqZBkPP$<4Ew>axiGcnsicg!EH+#fQ$oV5cUb#V& zEvW<@8QG$Xm8rXj1ZeGv;GD0FN1aYhy@?#;Uox>^QqAgJ=@b%|8c=KX7eEMPy#05t zk?5T+L*i%Ia3sR6zL@8V23S6ViS2?$ym_{IW(`*%l9NV_=5WW5BOR`)TO_ALz7?aq z()RuQEG(yIGIUC*uwVIsp;dw=7R4nK!po~Y7|_yv8(bH-xE{!n+>d@M4$&7!m~(B5 zJ7}e$C|hhO+vo39k4L=$W>kOvw*c*@)JbH`y~pV+H7Ng5et?_=@ynRc6#71!_C4u0 zwY!X$uF9$FnB5QY|8aW*ssSs-IihiJ#+9ckPmK0HItr{4M{4t0)5DyZ9GpYnJAiei zev!~&dpaL4`TIIOKlb)<8ye$dT?}L@mZy{VajGOeE6aCV#XOtX%4qLdlE}csN!Zcv z$^5t<)@Q_${;^^_kqQTWehPa{Dk!&f*&0Hh1jl2L@F^H)e*>E|?p`AQ1Oid~7Cmg-{rR)6^UhQ*PWUTo+0(9-cv2tV2IGrlA2vGH z*~Cv>-N>8FHjey8*#?i>2E>pC8KgIJ&qC_$12IB7!nf`8M@@*c$Rq`|S0~s3;|aa! zXB?C)!&aRoCFr^tC}d=Xi*L%6Qpy&S?$OF34ar&*uE|-l|mT06_dG4rMyxR%`6k+VtKN-Qu{tgJD*!FZyy5+tgMV z*96lhE`Lj^%Ic;bwgch6k8XxLa85p+p)?HL;5<6r5X{i#SzrvJ!Zr$vvcGM{Wqu4U zTLn}ytr-3c+7{==tBI=LvjBrtja9~9DVH_Z>rEw)Vp~dy5TB2pg3X|{)#qft!Nq=o zTOa;dh)JGB-#+x(s*&lMWiD3>G2vQQ|EaAOr9b#BWhdX;><*M&nXW=K))^a_1_&F~y}WBm zBKX;7{CkIS&Nk;ElL!aYO=QK*9@hk!y=+ubVHc6?wy_#{{0?MditjmJB8&X)w%S;q zJ?>kzJxp-Fb7iGNH9FVX{TtTQZ*1f5t$z8n!|}bAiii-Ty);SYTUrE?#&TywU%O3! z*VkX@qK=LakIwo#C2HRv*xl%`yR_(-JtwiZ+KebE;Fo)TS9jSvjl<#qW9A9uR&P7t z<+D;Y&OUALsCalt8Z%-63gQ5+?A%;U0me^t>I_bo5+Fw~$iT7IQ)+2C0Lwyj@|okA zSeYDM@!Ob`WpF1vlM^6jxwZQ0@DOqHy8DF!=vg?))z{7YG$GDY#|dYmrtrYgiMLXC z=i3GR-&Y||MxOl}AwLw7!|}b;2t$d`NiaXuwa}k$!_TT$PN5tQkKQ3AQw!+h`c<=g z_Q5Bbf^C#1R<#O?gA~l&BeP0dhNHFT5Qj_1z1*$lcSeec1JRZeO*OTGa$5OcR7fRk zf*GHjgheOZv+PIXOQaI4oR$&HsANUhg=McH%IseZ&!K=z;pDMChS?V|BK5R4Jf|7* zhI-rC93+Yi5J{owoAyGW{aw{_#v9<0I%fm)Za>{y!qGq*UEN$DIXgD1s4Q=FoJQh) zgF5POGR-m9GIq+NUl%v%)K5GK>lF1^T<~KwU&7&mwUuh|rRS0nQ@4zzYAW~apC@jW zh*cwc2){h$r7iM0`~w(~!_cq4hCampc|hq&XJZZEprhU?ZpVLaX&G&PvXu0=f0fOo zE-STh{2|627DwVj$?+&HIkGlpdntB(;}+vf@3)jXigf>?f23DQv-dD&dE@=^EpeAK z^oI(~6O9MJz;eBnb!3eD`va6a?n3m@%Su97|+Bv5Zd&hQ_njiaD z$_d1--&c3d6)TG>v3eGO%^<%Z$9KN$z21>0;x_7kb-q@X{Tl%g^vBA#%hpRyI9k<< zUR*^JGsi5tncCQK*hOvox zWVET9UEXg+O(CCv`nv331zDY=_%gbNshTzP`qj-UqC6heJ3%R{k4hEY6QRY6!?jHz zUE=W$%J2gMVI}ExM=HR?O@j4Ye%K}*w!0B0*oeP!mUbwDC55TKWChK=nv7QJp;dJ! z?`l`rX*+Djg=7$uxg-0r7VMT7^%8K;3ABH3iZ2dtG!p5rQFF}Zz7+HT5(B+7y4mSs zu9jPgb;FKc4~Oq`up}e{@-+)~X9v~N_-VGU>B7;7XSmcnS zN}!-o%of>FVN0UD|4@27X=Uao-pa{Uzq=Hj!K1D7>h7y6E8~*KsP;cEz;JM(T)rBl z{+?b!VRyoDv~U-B?}W)uIrHR1wsa>#lig@dF1P}hH`8&K5b^Ewx-ISE&d?fTa&bO- znCt5owc1uqOvT(gl>fysNd{(@K`dn*R~-BM5=0aE@Ym%tc*6sGu{o{%xqL zK3m9%+@tJ5s^1iV_I0D@PPf}RF!lBFfk_pKw`)+Axi{V#o%dBgVC@{&7Rn=a2{)xA zLZ5QC&Wfv0NqlBgCx5;}OIS4TL%-attnQcTqS)(Sq0%H*PH7jl##W%iqmn-hMG^ zg0*e^sFmN`CUxIL9K4C?T12QTG`7UCR^FY`nOxX*jxo5h&+uhz#6)5A8(r}2N__H_ zl&3d%M)7zf4Cl}-uV^}9xGV~q31>?Gdc`(LBv!K zB{b~;@}I-hd#GzHz^>BM%~v&a=_Sv!O)%1!nF$BA@R*w6m+@cC5R zOyr^@2)&xsx7De#G%@%8z#nJ6?3otV_nIhjiLsUDI6zRz77u-5H9Af7S;0Q!J+js) z)1IZEQ%gKgR~2rKG`gdk?=_^-bgjKpk9xU$L&iui8d&hOyOe2L%4Hk-7SvxGavj9U z_N`loyak-&bcoJZ$puu+1T3WQre411Y6^07nN4(N-7h-%wkW!!|G^$o$BcV(kp5Fe zGPi0x%bb2{`oOZ(g+*mSGG1W1IJK_sdnWkxa9MAc(VgwEicji(d&g|NSHxGU64qKb@@3!?va1Vny%>I04#Uc_HNnChBX2N<&|_ zVsTAXm5?39BvkUEEHDCrk2v^w)5^#^FuZt1qy#1JZ3J<~<}`nm zVQx81xq55BoUBeAREy|=h8x^t7m3dWD7=-6?^N_!>ZoXFXBR|jgPKbW?#m)FPqmMB zj*b8S#|iuI$H}JU#-KH&U;lcr6Pc^7;ZSt8Kk_vNdMeb zv)@GJghjP=@d0W>Fpu7`=^-+IIt|~oSpOH|`A?5RD}%zxBZ-;G2iH^I*C_t+D{S^b z8M=Y`Ec*P8V*C=)CO$5hJ!g7+S<`?D^DDW+jWB^r7DVczZ|4rw{jeel2>WOPpJ3ty z%qA@1A|{F~nVDyB4i24bSsD*0ZE8Em?z-P%^57EbA$TW;Fc?v7LX2Mut)3&(o*5!} zGD4AF&ktDQUsii)!(iU)Z`|qi^gHTs@$CL8KE(L*Vm*r9ipP+hIpk-0+gBLi`IMY^ z4yb5Po*s`={1`1EbBXbe^jtRKa%+R1e4dW-G9&O_N1_eDI1xF7w1p(VZ(#N~;vBlO z+4$QCvvlRWeS=*TE;lE8^sqjr%vKJMpZ0*q)Vu59LR)b<$h+MSt;mxG`Z!1}4t*H{U-;P?;cb<_dtv$x*}VsS8Ht3S2nkkOEcd zb{xPuJwiRgkIi+KIr4oh*deQ|nRBm`7P;A|ew&u1IRAQ3PQ#Xc3xdzN8FYbO=d_b9!~;4T*Snp28IfI|loFY0I4bY4lIsWCvbQ5VF4v?tJ10pa@hKmCUd5j8r4 z-wP^|0Gm9K#k9{XS~~!2G9@xqp*={Ve+^#@o7Srf8BY#QO>$wfrXnapM% zxWJ_-z7*`w2j2{$y|-u7UKe$ArJc;YN{dQuwRyb&ABNQb-&DANH&tOG3mIP)Q(~hj z+{eoB^T-kFwxvm0=$Lv_j%f$fEBk|u7KFUIRbOdgWT(ypsKocP%NaoSEe{7TojRII zsjl0$W}1RdwVbX$t?!;rP+1F(3r(bveuFAuB@`MWhST?&HPH*1_H{q_TEynLu1+unbRgB8stdJ1-51rg$5f*DoL*%B)bp z1qGAcZ{5eP<_hT;;~z8|7sb>^sD*cgUSR4f@NQ&cRC zL33#(ITe)9rBkaoHp=|62(gO2FL9!+j`wjEbGg;yHug_d4>!n~#){Mt=d)*Yc)r-j zXY?Y4CX=rDY9ku!{A)oU^BLS^RI$}usn7n;hFaEg5)%_sQ(L$DLt)TrgZzt%iarsG z+Bax}>XnmTuWJW2SX4f9J|6$^{7^ZkWf%q2MftK(2AGkXB=g@;POv78bbTE@0{VKH zl24oIYoHN)dd|5E)ATGkU;??jKMmt<%>J+G<6~aKKjqQu!54UA{rX~|8}(MI>ejWb z!v$5wQRzRN@+@U3d73R63;b0wCP@XD;%lB6~{eEVg^*3F`6Hu0QNN0ZOmpM$R1 zcOS|WVA2KCAZ#tmB|eA%qL8EBfkTHe2@{oyE%b@GIgX816RSt=FB+9DZJNK4H1;+F z6^+mEZD5AxD2ql66jAuyF<|O@f1XWnku&dTMb(^px)jiY$hV`xCB1=-3}|Zi`E|Hw zsN$fhW9g}*8B&sWUuwS>Xmm%t$^o4Qn?&wt^dQ%N5$vmCS4u_6qQZz%81wC=m&p#Q z{mHilO5eW98r0NDSzZEmeTZM1E^S6zcqYs9*l5Fb`YEF>0%2>;ThIa~ zXb%(;=fc!HwY;YzKjC$?Mjxq0wre7S{4QK8%QnvClF9F(W$ zILhfPVmuoRd(wt8pCNsdAO5fSss5+?RvmEs=HNOMFvJ#z(wNhA08I3&gn(gjwPxtys7-2A<_h=ti*xSRv}pUUps|}jM`-evxvDl(30C-=Um~IY zm^s?ab<#c38m&v?W#6KCdLr}`v4Vk zx$Kg1mbbLmO}d9zLSV~Q|j&av_Ats4v^24h2Atg&-5JE(Y7udZ5W>x zT?>(MyKG@}@uW^TQ+Vcn0&{Ha5m>>`y2oT+UGFwk|XIR-HF|5n|x^a zI^Ff~_U867has(K*1X3%BUf113vkh1zqc$FHny{~v(52m*3;0?5D^KKCQaq_;RG#} zmCSjw+;~bTaQ)!kIqRB)3Pg1Sya2_y5z}4pq^N#o+dn#>p&4+g1}IjaR?3G+7FazF z{SUT7(VbX*ZWf8?{4lI$|7{9_`|kV(V5Op8fBt&w@?7G+pL_%d>-U|6R%K%TPs1~Sc&59)Sccw$G&|v) z*p7yRX4qD;tPG;@w2(m4QQ8~=7zpGn*(#`-p*cWX%tZb+W9ua5ZO5lreXmG&|4V)Kj2b20*ER`-_p+`t8FC}Yik(6h^{RC0rY`qJo;m}0i} zOEn%}W&0@2b3&YL9aum=8Ykv^vPFw;66U1xbDG~gxWQ0S#z=i7N|p}l3`qcDPf){p zK=S3v-k$46_urRXAHPI3=^%m3x4U)zF(KpP;xAkk`Gn)6KkOV5H)tp5THQS#wjtZ_ ziG7swy;_tn)n+i8+-;+|LEyiC`*+DNF#oQ2EDXQ`*d9~j)3tJLTAEnu?VbUQ%R+Q( z&%!n{I8$jz`P6|l^oiNStFp?Z#Z?b3DctC8yCjSRpxYHPBW<4)5= z6i1B7t*cdcI%R~M9f(m2$srp+`F#gOP_`Ez1JvNDvUv%_>@?6?fAi>*?K2>)I-@rJ zSO^YW2$s1>^WL~QpBs?+97+zjTfzb`xGqhuAO6(YmD%{NCg%1O?mo!qFdApo1^Cpe zIzY<6A7G^1uO}kAaubFS!$N3i>UC9(0nzYhB+t*GMNS^W?YGGEUx}`!zxf!m5`pAP zT*O8SaCzetl?uJ*bS^?mq1wB2fmoswN-KGgzp|mwW|CX}Ds@C8koW1@>Jb;DqN?*Y zt{<1xT0N832ef8r@RGy#0rhzCfZv4vBgsBZWt}it?1*^rG_-#}OS|T~`o;yHD$mB? zU}#YHOZrn68LTDc!ZrG2Ble;4&Nb@FxAK|tcYo>n{jq-^nf0%ZmAeZw``BQezD=7J z7k2Fpf-msMD32yATbfO2kMBaBcVLG*K#!C@W}Z5_VJBhGynSC0{5iFJ|5<$;graKn zLS3{LPC9*QoGy5nAh&84VsRxW+G)Fs6Oew6MQeCOH4f6ij@!pB_J?se)o zOztuKgG&rl`%3fS+xbs)8Q^hB);v7DPYf@U9h+o$a|=bY8cjJjrnWzaJI`V5s@5G7 zKM*jJvilDjLh(z8EWfm&zD5p@Vc}n5mRc##vXu0&dSf3_$Ie3e=S~r=cgI^b&~bBt zuDfk{y}TaxCkvbE>pzm*ug}McF;0RNgA^<3HqVdVJ!wv(&JAVdD|_;Qe)c%OEU}d|uJFSX zS!yTs*RU{iInjyd$T!v0n_S?Z?s&atdR0+9sx|dgf0Q!~sMC@aQ?+w*{d!|>617v+ zD=M5miF1p{+F2ypuuTLr~hqO9euo(KguE*Lz)MsRoZKjqynO@C3dxP^` z)>kC4Fcb@leiVS{E}Z$ybrDE#L-0ICcN-^V#{33!*tWjBO&Js(P?QrZ?n-DU~Z$bkJEK8 z)YgD#xaO0*Wa%AXK=ckz(=RP_G#bB+PA0!Fnnld~-gSQ(GU21q^IOxDgqn{9I}O>8 z!NA^)DG-DB0o@)1j46Q!B(LnLi+k^wKE+KwtU2qOJc+mhnbbdqm666PxV1h~`4cHE ziHHY42Q5w@z`czQz~kW9Hl>gE_q!fO(E%kTQB-fME9-Gj48ifk&5!Z1{N3%ZBO4#u z`~v$A#^^l$a=JfVvh_ZH+VWkG1(A;IC8d@x1;06X4EITW1Y?pM`cz$M7dM*t;8A~z zVB(9==rOS`SIIx_d&xzo@p~NfgwuF>W1{1vaWk7xbdg9x{lf@kW8a>Do;kO0=vP(=U05Rj}>9&l7kZ1r)m0RPgE~?TBufr)T#W8rFYl<3Ok|ZbZ9fddLOk17ltK&#OF}(`(M!pd4~Uo5Q!DI;q2MhVx%F^eXTpzX(4I3z#-gTTUi0PuBm)PP(&H=g{_|<;#a9NNCtb_LVVVzk2 z2XCJAn*0vvUZJsx)2E3~Sy=Y)<2&T@)wr_?t7x@bHneZ&JGqC@ERz0P7Rtt24o`18 zJ^gvpzF$RVJpUtkCa*=&$D+u(o9k2cXu?;NyncN~Y>K!TlJLCyRZ(IIVCodK1g1nM zKMIM&iknAk1CHx=?tB*(`aLa<_0Gg^Dyp)~Y^n9R{2CWG5w*+KExJfa6x;Jm^f0L% zJM`?BK|F@RMWhO7wZvwt^Hqa1rFT$^)wiOOf`yOWPbp3sQkV zlV3J7ADu9Cz>*6BIBY~j6a)N8_0&5b{q*8OxSePY*NV5oo2yt|FbidyRW)pMkRl?a6&i3CB1^3Ntl&eaDql~0(^h_;IZ&!zh@Yxq_lX9@-gC}dHe*Pi3IjZ$=*laX_BmtVt6^!M z&MZLeH-mw8E6>YM0xG#X$7ZeCb&oW!_HxtCn=^}7 zgirq};L*r%b*@lw69U)KFd9ui66RC=N)(CRQ0tML@a9GePj=CmhRxDKi1=hybjz%t zx2G?gbV_tkJhZ| z0=W_I0m;*8*5~3^#Lq-ep55t6D+rkHdn`N?SIF?gD#k4iR<^>vF5bC8T>p<`&0-xE zDkkeBE$2rNd>k47z>QmNV5ztmD7nwG0 zSqOzcy1QopxhBx9cb(=U+kc?U&c{jfNml3xGE&UoKniW7?3Upof;Sd%U>vW2XMOtl zfPYcBcAL7srb`?}?wu&o^;I>n7J{<_@BuNug-wl5Lh$ya7q$H=oAE)oUs(Z!n%VqB z3F7DC^6>DWQUBe(xY#66nBI7~YXi?#rZa8?1iZLS7uQIW29%FyctKt}d@5kw+`x%c zGc+r$jwd^@-VYcwE{gce#;G65;oxpdC@NBMsyAF$jLMZ1sA@}1?S>?W>@qL@6GJ1B z0KH|RMn2fq8s@nPN_}d$v6(N-C>hhpWi(!!v<`2C{Qv3#r zBjpUn%4N9)p~|q>RXZ_&KI`C43r!9KLg@te=FLWrI^?~#ueCzQT4w8T>G9j+NQxTg4FVU-_mM{ID>HnqZ=j7IZ>YU( zZT)b2kzc)EdOi{8-Z4SBB-K;p$hGf452kA$SH~h`96v%N$IEEhvGZ@z=W&=&|Ho`k zOasnbfs{XgG`_gD&Xni$`1ZdLSCWQ}Zh<3wVe8I5)JK2SUUqtiY6KVrylTz_am1wV z`Th+iY5`0GOQ}4mkdKLSl@r1eeC`Q4F&b?9lEf5%r<}Yx?vxh0B&DU zl^bHdmr2e1Bk-0k;o$u+lNF=D;+(g0FQ zGTc@t&!f<>^B5uvAL|a1r&r)mNWA%ev-N75Z=Fu8WYpau-FxBQhOW!0kU+eN$h)_+ zYE~`eeBD>IfS1wtEtv-BuB!F#GN|73Flkj(L}z{s>^0 z&)l0^*veaeJC&wiET3QBb}I8zq5aPb5RW=d`JNO6hv@Xo(YaldSDkbd>PU%;<8J%Nv7tPBYW(>0__fzeAwOk@L8HE>^& zrFXKgee_maeTa#OLTgj%e3yrvscRM7bV-+0ESRDArE9|AA-XNtr%SwGqhPe^@hZcW z50e?1j+d5Sz)%lt-wFS;aOyvZZHmXL*O@=YT3G3*cjvK5XKGX(4U}!Ls<5E7Mfl_itL*rVDmXATEw>c%@xXAR^w;=jfBow2);6if`rbz^=jE z!W#{`W~`~igoIfmSBj)Fni_Pktj$kgRb zmN9b23<8X*21x`R|DFkY0s9|)7`JQqQa0nX+>f>M2Ky-U<$l&57G^WYoh^TnH}}c6 z?k#cNR&-ZD+RiXR%(3fR-EANFyF*ZM`xLC*hko>n5q|@Lnil&*2z?3Zr)P?7bx^D! zT6859P7*g~-Kx^Pio}UiB3e#z4jN@&bzrNOZ8v4PHb(fZ>&#^5jzEN;$1~IHN4jls zMHYWr1oR9T#(ZP^qJy~7*4oi&SlMk@89Z~V0StzKhD8>JYk{~0Pnhd-rfCw|uXpoI z!JvYE1kL1tQ6)O1l)Sv_EF=xTH^7hiNNbgrkGWHewvoh#eD-;ioD~35lO9q* zf5xA8`!oDb24--{jJL_X6MP~6_e&X)yIIy6CIR9LnT z{aFs%A@6&c5hQ`8oYlbxNxRbVxi0L+tO1BpWDry_ZmiU1)eEik#}Tu07FBTS;Zib( zKm(VP;1GZt1CzgPy(KKtszv>M@+S&zOew_1of>(va;mQivF%qXb8&|OUM^~KQ^2sHWdF!WhE+S3l=b*Rn8^yLI%Lw-9JBBvpzNS&)qQ-+Kx3pB z&K{b;0^55HoRpEH-_-1v@e|MyKB4c?tz+Y;WwL!tUboYNbh7AjOjvH+z<1Ue^9BqH zm`QM&y_5inVWGNv7;4OIusT-&oD3zL>L?KZYo2ofbVFt}Yu|G+>d4j)aelw;ADTu* zQ<%_qHP1jK4QNFkpqVsASrko96lnHvI4O6b- z`iTkZEh7$%Q?HNf%bpANZ1+DGCsLO;fvl|lT<+UTlT93CLr#QQJZjDcnp?Ne9VxRL z?gA5T{qR@K&ZH=z;=NGc5?-QC>{(jC&>-5}lFB_J)`A>G~G-Q9fKd*Az==lp|;E-{w`gtw)7etSjQ$Gd=uXy8z(x5@iwO zzxMUhkcbg}m6RSd6^h3MV6G*%p)*I(;2PipI=<7p=y|M86)6@Ahhrw2*BW^)blFo< zcYyatT7R&&cQ0pR;0KEa{l)4b^mEtn^Ucp#hGF;BYf8z=kXH=pj|QIA_lkv*_V%mu z7_O~mbrUnwRVm%yJ&c|%>_pr*J|O-RC_e4r{EeKE<6j!3;2YYQoglqWEl)Vq95Z@1 zJjYC#Q@=MgOBYez-&a>aBMs7cc*(^J==a{%-Z^4aZD}Ks0NK!dp zf~R!kVKqTMnm(vkIRb*KY)i86|2q)>T%pYvSm8)^oVIAC82J7P+7B_ zpSY6J-+RUT&%GP!G*{XJh|a>~P{`=B$x=kavF za)|zXw9lY6G~+T_%KFGMBBS%q%`pxC&vwA*i99vFtCG7B+MS929Dg2@q)bmd zbF)rw+3rSV^c(hu=8cHs%F7@W#LM9HfJS>aijz>Vo(i;t(CU>*M@ymybw32~&h~c0 zeionCfsO@2WKbIGDBqC4CfqkCIU-NklcrfO7dt%%1oH$7*O z2$mct>6hS(xJOa?j?=i2KKb_o1;6h*z$>&knmU?FJ>X%+pra}1A$$ulH(s8jRP2Ft9ItL{YmOU|Y@_aMqW3X529jXO)zD&{+3d#e0 z-|9J9RIO?OUhlatE{Qo8;-S;Hl=-_Hdev%Va4x@WH_AI_KfIOD(9lp(Ng|oKB?HZV z#KpxY)P_)MU;FGSPdW;NO=0-*{&ej;UG_#OkZYXJGk~m5j9}*iM9t)>#}>Sqqq@bt z%ye0nv%55>Hg|$5{gko++U&`+VpT1vb(NtRCz6uBhr>!1nUH_qj?3T3sUjt1!N}k7 zkq#%|P&|A9al})<02^x4)d9xrd2aJv*Y#87WK6`m1*w1S>dWS2XeybY3&BX}0QNgu z#`mIjCw{YbBR(j*iit@GTL=h$AOMbU@hA>Xvlb#Ro>&H_=*hTW;eOi8D_wNWQ@t%e zd~o-T+u=6hSz(6&VpHpQXiW$9&&yvKx8`p%_g*z(XK?h9h0@+J%ANaKSD*s6Arwm* zy~$}v@LVxzS)^c&`bW273z?1zKIQmk4WBOcIJ(ZR?Whd^EEcNIyEa;@Uh9ggW&7>DTSJF+ zM>XjRO%_qZ#aU{vC52!u(9)QUYUWnb>o2D8S})LH{+Fjh&lYUzsd%8YqrK8t?2%xw z(BT9fmMJg498EY`F?#HPaTd+cAcFYTCy)uT|4zHJLcZ)1fRLE67+0mNYkRA=m6GdC z&aBWC@+Iac*=*5)n~+yC5d;Lgh=^?m+g2>ma$_GD-Wp54;egcHii;8w!i5NN)4Hn; z8hfhZ$~_2tdDQya!Jlj-b=Wio7I7_?z5QFXs@UjsA~6J!eNiGyY=!;xXLCMK4YMsz z%eJ)+jcO_>eY#o}9lKo1gwvzh&+*zT^2xUy% zg$qA!LA7|V=*-UvV?uzQ0VTg}MFy9U59WC3Z1%yRDa^I%*6;iaB|4kk{N0Qu{T1eB z7s*aac$h~+3HqYjtNQ(j@;7xSs}6QgH{>tG6pZoGX(sfZp3@KjOB&JFAt;I{Pst_4AM4iiU?!Wx%vze z5FyZ0nRp6%11|{eiVhoI3g=wbJXQ@4D;m4i+-iih~oF;O(8t z;L(4(3@${fdYZfGt-0qxpf1M5~+5CHz#-*P%?o!)U<-akp@rbw0ppQ7Wc z*7kgC{YIYcre*y_Ly+Y6!z{~kSyTaD(ldqUK)WNsMSm5w7!*@KIt6ls579HsYy`2e z+HQr)kG1`j=&%4>fNu`2ELQLCWuClAxmF9iBcz5lI1T9p$0w)5sACHi4MNhWHr zVBn=Ki#BVgJ?qt(F`PFM%*RNI9lNjY8F8brFn99YGURJwcbq2I77*ItU-z7a-ZWb) zh29!oTSGA(UT(CNfxqZ6A#}zcLA`~(294iO$EQ^^+ipDXU-_fD%IxLhP-C~tmp0}r%xvc-oKoR~4uIc^zGFpX0(`wg}?=~7UtzJJ7h9kNWyMVaT(OBN@^L z#7>J-ta9Ff_qG-b4|D(9odtFXe3n>>R&eRG3x_PRr7P>dm#VJmKZs$Xh_!*hYbR}Lk~EZxP+U|t2c&Bx<3QP=u7tU2mY2e{T76q z329IIhu830^?E5pLDm&rrUmOHlc0OaStdcFeSd#3;2n2{q^3kMc_9CV-;BwTkeT@I zTKR#|5>*JvzjK|{?dGULzc+3m@TM+$aNF-4Vnj&D!Agr;AOemwXpnNTB?itgJbkWe zbUMYw!YXFO)LLmt-&ZmIR;;~*jV{r#D|V+5>`k(MP6P?A8Oo(gjMq!2gCTyGds*Bl z#(4vi3#>5UjU*(89vYBC>ccyRAD2OJRzv^GMeVlwJMdf0e3f#(!EBOXU_JaK&NCc8 zsPHswkFBJ%+dO?jzqPSBWIqT1%#|K}ca?`#8S*sC4JCVh|Bd|P?@35#OB{b{jBj17 z<7KX{wc!{dWzm#b!hh^bdBft~HeHfjfDvIrTkWP`g#L$qo{DFg{Y>J|N38V3gV~gx zqS^T{UEebu&!7PfFLnN2&`<}z=>VOoc-i7`OUZWQgxB2g#tDg^()X$8QpCC-1ai6M zb>z5dR1Er6gWG-AOCoF=FJ0Tj;OgCD#mw@ZjY*S}FmcT@^)9RC=pXlVLQ$Iu#+`R3Aw>3(ja!S}~kQm@Ks)Phq_4|VtyT$!wlj1VSW&%t<0DapN?>ys(vgOq5 zH^Y*Wezga|s9I;KkfQ~4bNb>_q7Q;R1epxZ!bz_DMxkt3_vh=`KY#xCz5Ngp9)3KL zC(-11jDW*#54Kd^p{w78PEAdLmIRArrbCgbM=wvo3U;macB&;?zja_UY1Zvdi9SJd z(w$0sbaIis%kUrFtT4L@n5ejqh^R_4a zfV&BC;IOGStIO~b)3=4|o_pATilyJ|Z~m_Q%t8Q@3Es+;@w`hulubGm8#i~``tuA; zw-{mT{u6AdjvUM}1?$6RDHOLns%)392J*) zCZk5(**;7Soh9MONNYIU>@C2PaMr!SCP)By<1>B?-a8O80A~#u;?gQ5H@*`Cb3ypb zq182#J@o;)b# zCQTgs0h5uGfFN7BT+777gv0Sjwot*+6D|w}4i1yuo)j2*w$QFn`Wt$!cQUYq`<$BT zPsT+E{l}IEejG^pb?eck4v&2I8#kWXx1YZM;THR$#-M5*i66PO;79#ZAd#+8TUqWR zBY{|DiEIOimC>|vkP{O74;w6&wmxp0ei3dNbL-mDLTK8&&JMk(l1N6_^>j@2SdU|> zQs!CBmVwXL|MPG0YwQ<`@=3{TPui|PT@n4X=37DfxTWXo(JWq#hhk4`nw-YtP0tCT zUz6W=6Z@<)LD2pc#Dzjp$OM-s#^&);FBU`a02O;ns?_fvc@<9Ukk3Y?Aib^gwP5hQ z@v|PFpfkJESM1$$7+niTcS)Fc%+n{I;_3QvZgw&Y@;E893!uFP#X80>HsfcCSY%qS zl_ps>zuK(YyLgTiW=6y}&=Yc~qQ3_Jte4* zp2!BPP@_Zemg9cbWG@i=>b?sEo0`@%HaBY&Dwv+w+T}JB6`6vXpX=-E`n?h1!ND%; z0T>9loX%ie&cy6^QUQmoKyU_xXime6-O6Uu`-S=V2>@ACMO9Uk8nyJ~9|r?()1?b0 z_p8-Pr3>s>n-@|LA)HCr#>@DQdUGEJ{oMnX&zBE8cuE$G=oS^W6+hAuSWds6K@`Y5 zWPZ8ki}OoiGF80^;LPuIp=}y|`4dNDSe~(zP4oX%+Q+|DT8%Ie#O6!3FGI~;x8jw` z0pUHN!Svik!pFHUB}FhXJC`gd)% zd4D}CVva~)u)h<++jN!nk!t^|C+LPF}KdrphUK5AaWsrB0;_o!5ouPMXXA(xn( zv8P}P>Wun7_N!Ec@T&oq@#FG{OR?@nRe=!9+xx=xrk!UJ}_%vO1q`F_j zm^Jel9BRMCV)%n3Y`e|H;-{@{nvGFu!~kzX0ay=-31;yJ9uK`I?-fIL7PA`dEt1;p z7kaYeeL6CnJu&IMH~^{Rah7r6dLHZY`VDntpL9Y1RJ+0TG$yXLDP^jQsdQq{NMYp< z2#rGjFA+$>vM~D==*Tc6$lmxc=zNv)MC(r1>?#(j z3w6~7hlRq!*yGB}3CSooinq{lGs;qK9fp@-eCF&Z<$nV(MnpKTiHIS~^KVma>eJ_R zAoKfnKoQAvM|SEhJ0&$v$g2DzCzp3RNh3!;=f2-UNtfQOfqUye25K;lrm-;?4kgvs z*MlRgxUAOr6cmFj5~QLrVG$A1qM|`zVR3`oU?W8-(BmpH^+08VMH~|V6cxGY{@iIf zHfgqRj!*O+`D7eU*{Vg}U^7d6D}3E}F7-NM-A?5RP4gU=RKq_OP%?XYuoP1Q&$YL-Rjl!Q$?VlqW1|wq+5Azz)B>WE zDKb@j%Un+Gr8IO_MG|?~!xpbg3FmJmc!U#eAx&yTkBs(_6dm}e_{)5U9IH;dV-*~sI;=LI5Bedj~ zd8mVwrbuFjgotejZ9of?7w%=}Z~ zzD$dkW2rWa(*<8RB#QdLq$I+mOv5T24!r&b=q+Yl+0iCp=N{g+MS_6(%*EO|o3wRv zDQ#tEM+PVN##J$g@v04HqLPWNN_sdwk*&@}bg9uYc9pf3OpDk0k7EGXr3)nXJC^boO6$CIUf%4|_l(Ij?|8HNi~=WQe$!SYNeYLC zRtSHgcz-_t67yV=4gYkIUk$$&0A!VR?2g0CnXv%TJ9o@j6l~`E zKWE$?SOrMXHjl37Ms{sYjuAeYUS6{~p!4J?$w%n(Z8!BB53i(sYtvrc0`#^EH2zb|N|uI4%D!1LEKvb0 zQDiIQ%F{>Lc*V<|{yIaZ^bGu9?L`B5DdF!V;{0O1zZjc59o$3L458c6;t$n-bw3m( z2Rf~~MaJh0yk8Kt;Wf42o9?hpR3;W96s07Bg#+V)Oc;AQ2x~5RgoF-q2pz;s;+M6Wbi3gK(1DJQj!$CJtY~Ox9#`WcU`jC9*Y}Cl zTF2G(p-i)h5%WR29pnU}prGXD<_ZW1wn1IKBwsbQR9_=o|wL=n9t-JaMXD@c<)Y~bcOY>>n+mtwNg^rH~W|r7AJRSCwVZo@vHe%G_$*_$} zRLB>nl7atRI>XHg-`tsb_~fPvL+p+_)gmNKo1P{-S(GWp$RO~A5}sDKpn*BE#}2zt zQ}Fgz6)<2lKO__jW;|RqmyJ~5qTu)yK0$GFMC^GeBPnmfVV;05F2Aa zg$8-TV3%!SpNmY8pn~Q=6e?B<>fZzOxZSsQPrNqJ;HUt9fB*WnI1VKK#afHOfdNb= zQw6Zz%9l=mI4p0=;PG17MuywX3c9N3adaIBjf_}T&mEZf%);lLBCqaMRrC)NnU{5D?*syN#_3^aj6;z1Y*wEA02k8Nz zR+$jt$JF75a^XCUf-B@W1qsa$A97@G*N>AT-u#Q%7Bi)#wbNoU zevsb(yu8CZ4x0~k?qsEoz15K1ku`i-}s$3M1KD7wC5B6v4O{n>;9=UCwd%PfScK#rNh z!j<8(pR*o^!D`CwrIk=y6N(HH&Dh3oBV}&SRw1dMZv)Eqm^sx5b4f#p`gM;}-kZ&C z>Aw5of8;1$%&>or?hwycI1wMGh?eln?h@7I&A`F(@j4WPcFNQjZB2)>2mKU{hOi#S z>?&J+!sxM@tW?sFg-QbnJ-rQ3-!eAl@5l6l^y<`?@}1Cj;dGti0m!^iE*wxSyi_pt zyN1x0PKzu$o~_E_y?(y!?TtA8?e(-Jv7MKR`}}AhJ?bD(6mK0IhYu6m-(`=FxRw@; zONids%wO!kCnJmqg9?j{aL~*2$WngSt!Hbq^8p-7 z#cOLtAeh?hzqxHo`Cks+`T@MD!rsD+-A(=3Rh&m7PQfIfmFPri0&!sRFrhZI*8zLV z_o1;}P`tD>zhoqDx#^a1f{H2?wht~w$!XG*(yHVffwick8{N{yAGMNEU9fXcDU_iA zZhE_OR>t_UFfl^gZN^XUqy_4YRPY$uaWhlh2Mby3_`~uec@OJOt2h`CcUx$#*9@c` zDzYghCTKcs7Ia&zV8$<<6sVJ&6zl(rcW*%kAnPl8ag%c!*bb+bT&Q*wBKw%M}(UuXFn%d-i zzA-c;S)nr25(@h2%$x7FNmGKRFM8+BoYaYK-wL0$2Wm9(9%{ukRTK^Erp}BqfW#QC zR2CdGxO$IACJRj52Ftr&~T1Pmt|bo>hqm zj4OA*CCa~9;|ugZD+-O|j((dL7JXScvsTMi2D=s_^7Z;HZ>nXP6aMV2?je9IiqKC* z|0^+LHU1;^A}cBL7gFLRJk%jX)2~)9?h94KP4nWaP^=RNH-{`t1{ex1#E-dUM8_YO zi8M%aWlNp>pl3QrA9OfUm@iIM6XM!t;Qx$)=HEtn(V zMvAP)TxF3STHu`%rHg zt>$R;+zk(HhSfDGX;dAz#^z&k)XMvQ{qhFUl@j+Q;4LvJDx7s;=_JE(YTI}dO5pH> z;^)>Uokg(mzE-Dl0uv{JVU7RpFIdc3h@(kZOlF?@*>`u#%5l~m9M(#76O#1VhwU7Cn9AhQI&5P(?JIkL-U z)?C=yTv*nev0M}qv}x#zLig|_8cP+qWg%5$rgsWq=z9$AmxcR4Hm!{3&EeeSi>{OL za80c)7Pd>2OLgh+Si$<(OzWKx;pbXkshIJNEa+fPEkc>70TiO_^Oz_dEgf1KS}xiK zZF3gjx13|Tl(wP5)?sLwlA(6#05cD1UG@IXO|n!0clwg2*B>FL{NG#qsDGaP@wKuR zF78?+I1IdAPlC(=d-3S&=^882EF)olR~_@T@=0N?2QMZ@ARxt_l z=@TLn{}(wnA0$%L#-Jb|A4+#ZKTwAUlz@3QIK9`t$&isoz@yD_iOl#sOqj#Wd2OH9 zUwu3fphyy_`usDBP>tNL$pp~ORUpq!fU3aqe_QTuXe}uV08bB-<29jPGfJPA;CxF? zv8LsdjmPWC1$+9fw5Xjg`@c#CZjynEbFq;5$;uNy zD@yim7^MXMWRB`lP@8Iks|A@3m-0{(5Now3nGsK@Ikq+14GS0PE(H+yQ6w?e&;hRT z@J-Y3>aF_OCFp_O-&sFjk*atQ!euw`FLx%ZK7fe)h{p zCg7E?3(Oc6L;D_0INm=D3jJiN7GlRl+5yQ%c%A);rMKx%rcM^9L37qc${~iE;lk^(*Aa_ zwY_^)tMw=oI=nRaN)ds_rYtWg@r8agIOZ+DYg5t0B$lC5xA>8t$^5X3xIduN?b<3u z99dAyvHzlBRg=wbFuiJ14<0}Yxj!v;Bjf&B3Hk#KK5N{+*%d(w;7)IVfVk@ZA4pH@ zvVR^;fR~4Zy0Jn^4Dxw`TKPHfGg=nLaBr)l6-iuMrfMJcRFc_5Ib2@vgHQ> z-?tN8AeINZl<<*BwCS#>y3NGMDyxOMi9=lOM0S_H(Q_L!e1^+y&`wofVIUftxFSxlugl#|a2;=>_cGnac+8en z&pujF(dXtsWc}(BX_8~Zjz9_y!pFT#KUiip_%oJ4h&!uSYw=`%J9_x?d-2dARYdI! zdg+a}l#~g!vewU(2|Lf_5lL18I1gq!s2tfgy7d3}c0;{?@uqP~F4_t&^8&7WF9w{T zRcFFV16pk*bIJkv3_W)AOeA8MKre9kL{I-_HMJ7)QpFrr1b^qOTch>zhkqxA9rTD- zH+HN4Ve@dJH8deYn`^WGgy8G-err#1rgPo&lu8A~JuGBU%B^1xlHyNgjQwe^#FyBz zAf$mJJG2ojzGjZ}`h_1~-&_b%6Xm6W6f#n|pJs>!62h|Vd`K+Canzg%qk5xevu?(= zC~(=+fsy6x?qN4)CkA!j=zYAi99aE#Nm126-ZK2<;g-Ld_CfE7Q`1gQ_yiVOD@!c|6r)|JZ8Zb`hg-9FU(GA2eV)0Er9^p z?2MNk9hj(jT?P(wIJF$ab7yeaQ*}LO4(_S6tqFMekaV2% z6F35X>G?IzWpT^9cDf*nA+7T#GbsB2CMCj&pdkVY|J@(za^BnsxnMI_&YH6=E1||B zOl~4!!pD-sv8y%f(B+p28J^5O3g@|K`{y9FQb*WCnl0N8Grf`2PM^gfsW9l2Nvi=Q z>?4#_ZJIBf^L4$()kiBHj<+XO)3^4AGsZnb5ZDNZ3k{2AJP-4qy)WDT4x#`M(0r`$ z889*UqPs1;F}wgQ01c|iLIPr}r$7uo?CuBrwUIz?{8MVz+qd^;g|Gx4ee|_YP6wr0 zh77A@N#i60U!|m@h=xv9Ed&pHC}R}jl*-axH_!brKEYO==vJv#@uVir(@CkDB+a=* z%pd(xX2A0&y}Cb=3gU=X=v>Vw(L-2_>BP4Bo9ikv{iZIWnn+3KmpVL|xE-Dw zIj&84?juItq4jv<>fBiiB`mzOpEgYlV{J*p%)v=`_-k&YYo9k&*l9DF;T@rWt>^Wka;Up8zx-*zf?qj8nl(LUI0!=%=&hHAcx^8?6|gvaIa|SI z?*8WRe6oGLrMOKF!zFuh7BnqDa5I%3z2Qn#8=eu<+`+uQK2&Z%$r%e_OC^K*fVqlx ztKR(&9CIl}Gzp=jvK&Vk>c*xY_vlf5$c)_g@q;T=JAwwYjj}DT03?3oNrtq2@g~pQ z$djN?E2YM#2f0HwBGt~-c>mFzFJ%63_T&ity01pQL5b<|-!1x=5daNz3h&#ba}w+r zrY5P#(WVa=HqMV_TBl7H#eoLI#zwSiAk}p3PckU0J-bK?N^1xbW*ac^2q0-mNQ3Dh zDv;1zu~I+}>LATrE&xT{b zNeIcQU8;Tc*$`}mkipG}Ot!Fnl}~<1YM`SC#bpFJL7k15vP?Oem=wP+YkhizD>!U;a|Cao2`122!G4J{j@IcVw1VnDc9KG1217l^7 ztBug{sudf~XYGvU3sVJVvNcN2O|M%dhO^%}I;95zh*9f^bWvDQL)ss(A2M-1Esjdd zl|NNHHys+`*?hm9+rsf9VU89_IJAFODt+EQ$es9+PO9 zUs3iVC2DIne`6c}tqUF4Nls;Nkk%v;oaa0D6DD+eqiXUuL{?=bGO&d#ciKbNyDNz^ zUIe?%yIQ`)QnCA#`#9=SdXtCC?zXjH_Jvz1-Ylg?M)UEOpF4BVUT}yPrZoAsbJPs6 zQiU=t^M6lGc9#x5H4@~Nrw4hUuGyZ7OW zua+}K{2r?Qv_}=--36111y#W{oSYVf)=O{eh}_45DRYQ4BW+bBIrrLWb;4_Z&W%m#w z!mw=u=E>^*<}WDGR5*PV1v(^?6?f>cA_u$*(SHi+k`JbD3VMn%y;yiE?$+;Nkwt;C z`D7Gp7PgPXFxM}I^F(f1J84(#i~(}5S1aKKgK)Tx-~B}!8&>CbF>7kSO{FbAuFSPI z&E%0XT6`;>ay|QQ+Y#KO!7mh$fFJZwzbWiom^GN3c4zS@W|daLoCZa5ad82b;n^{< zv2M2~;Yi5VY}?&M_p!6hTs8(axFdhuA}dP{uH_^~aayQ9pq6qx@rh45=YP?A%fB~x z>$z~#4FOV#4jul*mffNMV#`J!L8ruX!>V(#O4fY+bAm}so?*hiw!s$#RrfNXw|=7d zY(xc9vipO%@CVrkPl8*Wmnh~Fv#}^|T+x8OdI&A<@+c~eDO25Q(t}!IF5A-|N8;U` z5$0&PO?G`<`4^-CTB}yq3(JXRt_&lOq>A8Es*~*2ehPO$fXhPwz)qF1`nU{|mdRn4 zUi9biTpY)Pg$50o%;H)wxsgburUOCsdJRiZgvD?;g$Zmtj*ZFs%~YG*uYl?TT%KpX zx3>W{Sa^OTj7}Q^P>a&m_h~Xt!zXh*vHL+uK1dIy>j_lFUSDBo&@}&DWZg)m)zw1% zBn%`#BZjN4`=_zoCvaW;ky=agIG4p$y{Hxj?I~NoN`8_C)&~txu5V7AjXZNiwQb1_|%B6tgS;juvsqo z0n;B2T0f`v;wM<=R z&3P3UdR2II6e*sk%?)PLa)tR!Px#<%rOFn_01|GUOZ?}Js6GCv%~V={g8p~JNJfVN z2lz3Kp%2i6s zu6(m!z7>+-?=}h1n=Zx+OQ$t+{_Z|UVpV3uP70#`t@qYg{Ki|M9v}HzUy=R)*&0fL ze-nHcu(D*PvAa0>MsdabWwL^nSP45CJxS*`7D58H4w&L^Vk>EEUG@jNJ{mRuJ^rrK zPfFijQ#02p>j9nHb)PvPs{C6uSem}c$ED^v*tcVX9dIrjS3u{p9BsH8sqjE7CR?wX z3uQ+GgJ%Ga#MSWkDLG72cP_`)k)r878%>j9igK*Q&La* z(C*X_>%-vRpdHh3NP>~juH(%|K(^#|yH@(T1%f|bk>&NOh)}>K?(ZJ(df+%$!9IH) zfK7)3kiWuaaLW}0A<(e6MhiumQDdjteLwA_NBILeUgyz!6)eM~X7Od#@*;f*8c->9 z^p7H01lizYb8lBc`Xwd$WNl6xJ}0-GFMgI-tV#&~ZiLqDUa-a(Dd=|m-N=Z+*3lQA z-G1*3>#Xzv@}N*))2y_9Fdniu2E)z-6t1YR92eZ)MQK-H{pU9KJNNoQWbH z^<(V5in|;V&8Meq+nfx$9g>jO^i1oKH0wKOTmEvun^gCw$S6IlCCEC_hxJvl-e@l{ zLgX@UBVm(mHE6%fzv#0~FS{)&uS7${iPNNDw4`Ap-TLD*XHNqfqZ6UR?Q6}sX{=yf zU6tvXn+GY7%PJeYA0ODFhng>z((&(IY!7O2*N75fa=YK9vDvxa9FfI~gItzU)!zmR zi^&p3=JlR0%qzRs@O9-FZS?Nv$A{g~=h>;!)Cj>a-`NSl4bSY}YMs{uE zhT8dQR(!=+Jhx!)IO+sL%ajuixIsOtmKzG|y0Rgx{Y0Q(Sn{16>4>hVq|rsy=>i3> zHbn@TXx59I#P=Q-TjES(pq|eL3LEu$A(O|d)p18R&>>9xDf_ivwBm|iPAoHCTlup` zUPK5Hfh4uXIHM)+si8SK+4`lZ%+15y>34_3{SSs!^F7-$O_iJ-P+XNKo7k*2$4eHY z8TmIU)nd_of~GYKmUV8&KgY+%V~M3wxIJ7qd&0$HIGaz8Qf0j83vborHekPa4U;niFnMVrO&jyHDV{bUR``uF)Mmm5sxssGDx^r16A?$yv9?sVfo&SKgn z{G^YwOw(^-UEeJFZ~J21bl_bmr-5F#^y_^4gXQk(F{N*}J^m2Lz27k?b*$)@|*#)<1=SYPbi6w^Z64lF?_6qfbUm6`fLSqq|m>u?Ou>DNE!1q%S{Z5 za9lDHKQv8_wZ8d*L>kw)_lwtSN!!luac(lxDmI@EIJ>1ml&Yo6)6d)itj{-uXwpLQ zgA%CJ9S^3&$m1cswalKj1HUw};1-dd$IA08&Fm9|xn3^5sxw)vPqt*3-|m;qhiW}t zoN}p3zU%f5A9N(}HqyfL-~Hb_k;`W=Rrth!)PB}=qNudI^3(~&gRi3nh)~{|_lsn! zEA0j$X*49>r1W_%ZP z6eq42(^DzV$ePeUowg&+PNN}m{t!a4sy$$Cl{16OjzoN^S&w6JbepBlL_$I9(u<8O z^ZETPZbDBsHQcm{&w{RKxQ8G(JWr!l68}ulwgUwf&O*{Y3d{23>J4;gQ0Vu~547Ox(_u5l(7x^&0 z0Ya|0Jde>mx2iQcgGU&(k9ilf2-oah{UV2sfeOPW+bcTc`HWlbucaj#)&4=t&EY z29fIWW?^*}ZA&-3>+=q0d_nDFx1MKjE!pkzy}(F=lk`dPvAiNW3IGkq1y;R|;$VKv zFCb8^-8N!RxgvnHwm%S@sP&Z4smoS{Fzpg_u!vaYayd2j8yFSZ2GgVciLVRF#4tHF zn>{j|=Yq1bNPI}>Rmbf!og6Griq6GhH+C-JRfHhKjIK>@EdW~ z{KWNKZq;tZKnlwY{;zSM? zA9yn=`_n?6+(=y*uoQ{2|0t+UFk0IZtPu}&)S4M^qA##k#SZN>byOL44ECHGNw5op)(K=Jw~ZO4ta06jI%HVyr&M()g)5P)N{A z`?3PO4xuStFD*vw0G|R&d7&o^1iiFzRXaE==i+)6QPYsZkz9MV_M65vEDFB6TQP;C zZ6)h=E?@4TQwNhZE1!GeFHL&P{+CmAbiJy?15_xEEXyaUKXra4$%t`B8IJnSZz zc3^iSmYprSdg0q#3T;xi97I+!mo_!4#(5qV#`hjaZ{<;$)=Ss_AMtw}PBvF4h>@onto{r!RWWv|11CY)yz4)g1R4T>uI=7pz||`A zUW3-+3~AT{HJw4m4*-LejceD`Xl!IkFXYDyK|2`F#LHI{gkzZDuN z6*%cLm6E#X6(@rLh-4g*#4Rv#vr6WV8xI*`GDoOVDuDwpYPIHM(W0=BNc`Y1;{5IA zILbR3R%}nNbX7*jr)wiB%F9%6e6o@?{N9pN+BNL z{V6(PkMG%I%+ls{BjG=0CiU=hfG`=ZbK^Gzkh;b)(7z2WbIOxCG+^G4yFIz*n6>az-N#vJ#i=2$}SpfrZZKY zSylc@KR)Y4BRMGfHyL}XKA0^>wza!Mj@{Bg z=G`L;%q3bmOfC|;K6Mh$tDQ4g>i(D7MO1`-?!1SZ_Oaic<3+da6p_(s z60U1M9}iYabilZ@dKimlOxd^ht)ANkRyj)&6*@=a;C1@~cWLV}7BN!@Y$)7}Y0X=| zY$Ze@m>ieOo#VwiL<9s!$D#&DYNyu({lJ?Hx`V?b4Tz=KUIWLb%__Flc#NW+Hag>- z5V2@j-Bcb>NJVy~_IMBqCcFPqc;mlf1ov;`-BG9ajnT58H{1^hN4!(k9+au$p{0BwIDQ?GZyD0^8YXe$zOuOeVU`L6mdSn{lmiON^{Wyik207 z0#Tpe*GHxqa&VtG*la)pcUIf}LBr|`FY`YtMdO989cLCDS4j(_ZSy45X!dcZcM8-W zrEb{WT1o>|$PRr=XwYjt@3(tesEgrgibI>NC!Ewj$RNNdtBQN|z0UauTAu7b1_!$6IKp0yPMbSZ`Wji?4JV+oZxO_mLqc?VSKKt+R2Rz(sG1rZYikZY z4;E%?XKLzde9TS>@k6piPg{unr;<-2jhRC~sqrJ%pKfm2G1%>{bbgN+N?YaHO%t7$ zCD<->pk^PrVmc6v>UyZV6vG$c7`B&_+3KSGKce0OD9$F>8eTLI+&#EE!GddW2p%AK zaCf)h?hxGF9fF1676>lEEx1GQfAZe@-M?yUi=wu+w&t1X={|k>obD9H`>WhdcW32+ zi&VV&JL>F#a@Myj)QBWlw66gYV`Eblxhau#?Ve9BsmR;5xWK0c6rJkpIjC1Y>FNT) zZ&g*51Mw^W#-Pkeq=^$f53S6aqtf??7gQBNEv&-NY!@xpQeC%}D@T74qZ>RcE&Iy8 zmv0~BxXF-p>+|F8V!l2otb!+Q?NcVsox3PC!Fe zQ~Oq>yMLsfaoNP98jP?7zPwjtqra*;rfKAKp~FeGOy(fpl6VAkp+~;&WuwuJQqjc{ zvf_?H=gr+^p&9YhBiy~dp3iuB&4qV1%<1Dczan8boexr=4U5xF~OzYrOO0RP+(_Q7GG$DCv5JpyO$}EaJn!1cG@FFL!q~d}K%|9iC9@4a3!s z1~g@Qg(?mylk_<;zoxj9I6=F=DNV1sooqJjDXd3tJN?FGSSK5mQAXDMR$&qzeOGu3 zmB`TlTdh*`Pt)*Z=wS@sA(R1`JAxFG`N73DWn31&ts&AIG{+v@g5i;tm@^2d;}GmV zMEKz5cjlQjWvXed*8LSY6k>(Shvj4~6g+{ch7xL;fjeQIRtX}4ObIG!mN z{OF;icoOj}mNVBOuBKnyG`%PqtSv9B$>w53bBsvrz|&Og{HZI+ua zcgJ;V4FYOvSOa_9A2@suH;s+Iq#S+pJ$O3YF0Pg*QF&U*vimM{Wv@F* z#-pG!Gx_Lq^;~U2%Z@CbL;pV;2thrd4-r;Ot_K3+AKZo25v2?E&+!7TPXZ%@+h*%k z<9>mKjx#(>uolzyIkgxhSGAM~da#+pZ6n;HJLrXitdY~{M_G_6gsrcQ2u@s>+C@}C zTBCbOJZ{_i^i5YWDg$XwjB2cFhGZ{2E0SF>PDrWuBP)Au8t42i23Ecsb5i+Si2vmYV?J%uoCk-rl!4Y751AifCtja zCtvb)BrdC3SAUJxiiFo)_Txvw)j6IL1*$EXy1$Lx`Ts4`C*TXeH-#mg15Vh#t@8ng zt_lk}uhYQ)m;FJ##&k;PvEq)Y)lz1<7<%8xna_(=i+OJEWb4!|eaB}7oxUjq=W`3#N02)h|k;0kreV#l2(Q;U?4+q)>aEq zlReV&;pSoBNyhE{<%7v{_!_F6)1e8rcDw_DO_@Ilnc7 zlgS~$E|akWkqVMZ+u~k=?H0b!tPM@#kD11IONve~nh^W-ug9kXTh0@tOIqK~sULA_ zG|c_lVj5)3pbSc#++6+!XCR~|p7!I?rnA4RSVrzu-`o1Q>?+|TJ_>C(mo~G8P)~k9 zZQy@LwGl*8gg`e47{(Gx_rC@1v|IV(jI&T zZxtq|uAR_Agd;>pVDk;hWG;RO_;HU3GbN)N@1cEcb}KGswlueWx;7t-9sKb4zo$&% zNpuqyIu8c_EwV;awuQ+2bR&7w`lla&?T|t+?VWVVtFWAZ%tj{iGib<`z1tVt*&xgzykjLe zTj#0HZJL#}i-HzQi~gFr-e^bx7FpGSh4naSxbUUbMdd9kKZK2)ed7|=FUS4wQ*Ly_ ztIBT2BVUU;)JHw@*NxS>J^~#Wb)Pp+JL)4?0-;@3{=$`TSM81Hl#tr#csI(x*^&Qm z6b>wQ!3r1o!@}*kJF4R|S~$sNBhCDm+B!B2{gqauoiT2yg-#=3b}KR@p>23g@X2;} zD^0lTu})sC*rLF4Bsqx@!Zy>^UX1d~kSgf&PK6+>%-Ge@+|uv1?1HF~dJYwiLzJ0yoofRXzR%w@ePvyQO|0j)h z8TSP-`bh`j-~EjMD^~SqV2cqN=;LXMhmtD9yXzqT82r~8;r~~ht2q(vXKR$P)0lD`!9Fu8M;&%iumD&?c ze2$UBm^S+<)AX#}pgM$sfl(m3P`9?W4nZMm1{7~?jtnzG)3^P$=h{C0L#4$bdYIB@s-2%iUDPKE5p7N9 z;kDzJYa`~ zxEoa`5TA!BRW!KJy2w+Dy%h`PLm@f%?K6GY3sz&$ese+5o@m`>DlUeCL558MWOm(wmG5J0o#IMB7B1H#V#YlR28bGNgDY zN7``Gn-vE|t|N&26U0tpx7;2(d@S4F2)#O~*5dXZ%rGP6v{CClpSUxlLX2!t61}d& z_@C780D?)2jzCfnsc?viar^N%7l^PZrt$^H$9RXoK3a6lbe_6}A;cFmPwBA%6}>?< z3QobsZt)lH-Br~4Ig5^vQOZIfEPU``&$jbuiRdkWJjA5!%p~*`!o$Xt%1Yi}SD9%- z=rAu7@I7r59t4K?^^eIJdM0@BA=%q2)sA*zTJlaY^B=l#PsJ-RXiIs!%w{HUSQM#b zP9odfI8PkLgP{Q7PsoRRmaYDNXkriAKRCEQ6fNBim5_h{7*n>jw-XT%3@g%zCSdFn za41le<$j>v({Sq+=q^0{gNn6_#@WOP>)(O7y5GK`nf?9}F5imC6e2RzHexZ2j=(JX zk^KJp0j41(7GHqfeL5|e-?{oi5q8;_cTqdy@{@*2C?A4qm}3d0@dTodq4gKsF6;db67aL;2iZ1n&#M zC2jc$g=C-|^^DCm&wv+FXn$ElBlTO>OEo`Y9fC%g!NUCpy3GCHNj&vo%*t%;Mdld? zvFzrGRsQwzC|ev^(Zt1bS$$yTkwjc#;Dy6cbhM)4WsvqyhqT6~Z977Oy%)Oo!suEkf*VM+r)zx;sIx8>`Ch?9wPv0VV-N9(8H>l8TnBD|BpqwV5QxrC@LO=IjaHF`l<3C0Q;}*htNTsod5~$F>TW`Ixz9Gc0k(zi{c?Qir))GZ^EZ zE-fe=g@-WyVR1pl-JJ=<7`k7pf86?f)6|6Uo}X*I_i*r*sm_Q`&T+7JSDyV6@cNwF zTB+Y$rh^x{{O4+lMm8Od#EtBzV(tEw+?wL&Df1d6mDKKzIMz}hF$ON)KueriiINZ6 zOWLn^m%!^`acQz_^x5lIb?m4M7UnJz~8x=!BLas^6Z9i&h zDWr4C%*Bk3`X$9(v5~X$G3t;k);SklwO}sXk1aC3cOk(RDNuzX6JR;s7Ov6jP*N7q zSwlNU#t+K&oBL`cL5RFfV=FD4&~dfb*>SX4v|JqZ+*MQ6(7#0R@bA1koL(R$P^BDY zDnkGNJNWg#9lQbq69wyN8_E7j+2eD-E|weJ)LPxN+HDVh$jVr&E9G&yBL8n9RAiCC zw~5jS!%L-ac^&@8;0Ok?fa!Ai;cO;mH;^*or1Zh~kJ)cH$jN8@XYE(?^fJ5sZ3K;1b#=ZO z>Mol#odqEr7LDy`b)))vah6))gw!RmqDA)$+AR*XR+svsVob@VPNVK(hGiljJ}E1I z(953KGI46tGASaUroIz+17%=iaHiXSvy$Hajl0F!#`c|+=X}ereeygz@t5%GiBwTN zAv_2#vEoW-DJe$}84dqlsGO$L$c)al1b1r8d&Q3n_!Bxj%`UX8#Dg*k9atD{7e6a* z%aT=dHh5t@-hp}Ki6T70I;?cN>eXW?hAMSPS(mUv2Zd7e@POF#5EH0rnA*|c32U#Qb1o!tWcCv z1oD{ZlDHD^Utb|RzJ9*!#Zky8@Stf$>0^Hsmzhi64qM*;%&Txi%qB-CuzQh!;kq=BuEFVM^%T8w-)k(n1A9^YCEs|z=3Zk0CD!$QKqVz3{S*r8IAbdhDmkhrT`NF=fVi>rft#Bz&grB0=i==rHlxFIm4psUHuEG$!|VtQ*# z_;flx{^y6Y%LG?%1rdZe%14^+lO*~6FX6jerP!_^(VQs?r)g5mV^$!@+y9k7dn!etswk2BH;QRB{re@ArlhU0tS+cd@Banir2o*8J$7Tl zDr>>5)Y=sRhZQ`Mc>?a_w$3Lbrxb?(GC#MY8v#*OH<|f>_aD%8;Prp_#XaR_D72jF zL}|Tgj-0F?fkGK8I65=@Dd@S_q{gDSjz71!)Ekt?N{&cRpNt+9L{%81CMHcyMNS>A zgz_a0U4>podT1hgLZ?ICdig8AQ~#Il%^Xd_$C<&shR${uPSOj_15=mB=w@rpw;>8? ztyJCL(1b)~6I)3IP@c5;7lKPnhFW4Rcb0!FF{J8$d$K9zW2$7v_iqTWpe0IG&`b?zPi*!)b?=XTo`zZ%*FFjN(_8T) zVWqaby8ipL4tP&1U1y&dY^L-}5LP7V&}%Z>%YO_<&F%Q%$u-bTHFdqB}}rC*GwY6(DY0g^EAdGg9?DeH`1S^$p&ATo)dq!`s*y-sgo^1STb*|?+n`gX)~ zLERM^rGu;P9WXz?K=Yg^djUh67!C;DiC!ONSq0 z{IxRL@FPRZnf2xm{Y}#Da^~yNAV^5*KjtunzOiDx(0D>-$ zc1Bi2l1I|N*xp_CZfV{Pmp4_>7(n!BG_q{cU78)vd0Kjf%{0NT4#g|fla6waPxY?e zLsp`!pb+XNN6~rX$hc6X)h#5HS`$P|Jzo?PEJ6k!92y!DI=GdVk)dOMW$ZLVBu9IB zZL#cD5|80^wm!GJ3y%+vAG6{~;B}$sE@oP_HiF9h>FVp%pW44;NyQJ6+I~Ms`&%FQ zp6b2sA2)OWK%BUHaQ@0eOLEjVhuhnfRmUunYwd*E5?8qJPyorJ({*4K$8T(a9-9ha z?+V1>5)`<8+OnlKvA&MIRG8tW%*u>F$f3jaIK5IC%S4O`H;3QN77(n@&y%MoaB*>k zJg@%zDv$yShtU4)#sk(1wLOcAS|p}CRCRTAr>mVrK$s)hD`UtdU;IPaOo3D^P`r5u zOq#)0bU)u$6f>7oN@t3Y5uyd)GMl=itdTn9JzJeUjs5Pvd=m_nslcaB#qe46YC(-V zW5iVTdO_`GFV$22_1ki~3!{-mn(Xf-*>uYO&hcXxW1;WR0;>YMZ{IX*&Yl!|+jP)J zHOw~rv6$bKb1;fitss4ZpR|{?c9@Hj@_S8H9_69(d3iZ5K+(5K{@cp9pel>9iAg$c z$ni()r_2asDCL46M=hK(syKOuWSJt<6uj;cxtJj()CnbebbEDkbrkl(hB>(F$a z($=+PWi(1b+qieWy1MGz7uMYQ@ORQ2JAq1{_H(6>Cu2!z%sJ!qL(40FoxKnAN1hJP z--VyL_P0;AW;k*^t}5VP2Z*T+gB%VocBSiN(oMAU@g}4?bJ{OUVutDy(S&%x+|PxU z&F|KkUkd&rg1T=KJ1s2@NJGLxNJ(>g0$*t^zijk|QofI(qoXSwUN`#*7^Aym5jcz* zHG0v0)oLX=Ny*8;S!W%nJ`izRPc|}#X;1#s@)Gp?-R5L=ywqeo5OscWG1VyP0tI?o z5(W7sx*x*hy!glqg#vjUD^pw2Lkt(%w!7c#{#H%439FfQpW++lO|&mg)?##{Eb&Dp zsVNbfYJ5lNAEWAbm9c5IiwL34f2nLY`(PgF^MK-PDVeZ+9;@W`{-r=e?l0!A%in!5 z8r7o3KBv3c%Coij2D(h|A>Xf~x-H!iM1jklWB-?Px0j*a)Y6dzKZWvhihDA~k~Kc$ zdV_sU={}yR)oewCmyhMT{f@2zp1dQ2Jh{U#j)Nv43;m40(8`%WH%Zg( zvLGXxuTozA|2!lJtmqJ2I8Y*_PmKU}bwEyKu1cr-_YM$F+20>FZE$jOD#*`g*!iFf z&RhnM9gFU_LZ?NS`i6$A%uERie+STFYdSHzdsMut0;^@Cat9@o&pBy2z1tOCr^9UG-Ddf@wN; zN#4Hs&WqXn^|NWVfO7xAnOr;0_A4F1t-zi&RA)=-1le67K~SxT4GhfB%a8?*-S4Za zry$KvvrT@n(5GPV)+bcY*pjA~DHTsECFjh%P_3{X^o(jU*q6dBbm?k#QRqXV9tkQw z=s}0*y!rjgKW(~w!@cV1BVlYN9SaLQ1gm+eA2Fhsl9mozfOo-ZVwHZ`Ey`|fRh=&7 zljmdcV7?&ItzLC3urZy!huh$FeX;yn3oS@Jm+HsTDeakKXlwl2%~?ue`HTP2)fdwD z&o?XrzZQO*Z38g?;$6PJzOtSP zRPVqUksaxqDN|kR@Swzv1nN zaYo9*f?kEj8PCjYkKio;(i|Nxnr)T=KBFrV|L>qd!vH*d&go-W*e%nZf(@FP%Kq{a ztLX=G*2^4yh0an`Bo}CY!B=(#xN4cQ{pSDP%G9D{`z^p*uQ1nhd+K{tcdZsqh3HCi zDMHp`nUh3CjjXQAH=PXLcE$;MNx4cUtX9`m8K6dfOvLCs9 zoK1zLln52`RO!Ie%z;-tHaI>qF`_3AW404hqU|Vmfk>!T_;i^N?0n29p~H`(<7fpPb;l7OXvUy1FPsTACU;VEr-m`ootE{Z^1P)p4Jm zMOPu{j;P5$G@yc#cxyK{i?J@vSV-S^K5JpoyX21B%Z>PDH#(iCgzMh7tP<5b?j-4M z+^$&woQ&+~WSMK)wT4e1RJMq-Iw~6=l6kXdcaI=}8C|N!#E|`a+_DC=e5w2vzquTO znTn+)4dx;pZEcp1wFXO#7CsL*J~v0xHp_RHd!QG=?|EgezEG{p86WDY`xy|@U!f91 z{7ptvd>)QlE--JuK?9&DYych}A8{K^XbW`R(wgX{qPG6V+z30GAKg;3(_%ea%WH*L zj<%X&kz8A;jU7yDQ3Svyz$TE%)TzlsMB{>zlAc(T<5cL$AM`26sg1-a$f>{^O`nk% z6Ga~jF)eM3kA`H5=Sw;Kp4ub5u&OZVNcbG_13Wa}!f8g4G&Cl01zy!bw#&c$?z)L~ z(cwauH)P`MfN!z$Eh2jQv#sQUWWJ%We#0A*l{Jt0oU-1iT_Tp^(+HL_O2*(py;&<9bj3Nd=jernNeQW{uq3f8vc|@E#Y3A3cuSMB-vm;T3)Z;b?nt4n zmezj_NG(Wa56!v~qI}j(e;sNw(&2lvaovFSd@QKlXmP_`>8Kzl(MyRL!NbCvkfFtC z`F^5laQ9T_ZhlSb)at)ytanvT->yNLCSIT%FZ2&QLg@uL@twC21eu6?tfxm*W&)(U zPgm1Q7pZ_|-0rv|+a%+NjEoFe4tPMn4de=$iIkQ2mj(Ug^)HOsyc z@3nx~)8BmyLq{y4$Wx<>iwFw(K!@|1N-RK)j4TKTGa%@L0{P&^Pnb;J8|=xtzNA?( zNFAf;{DiNtl06B2+KW(2{)cJYG9;|xjR=jm$JbSmb)Z6#?e=ok2b{2sLsn~`D504? z6;jo)T%20bH;n`q5>mmQ9|uxKdOt*2yy0CkjHjMHxBa>Q4KePbHk^o{#LA25&ZDed z_B%V%Wd0&sDtA`ZiUV@u6Z;OP@<+Y;u(*gq%se%w1liyq2{Ig{BFq4_%yCw)xVt>= ziefG;G#Uy@N*bP$;N;m-44c@T%HV7XbSiVsDpg5IIGKdv1HU)DY{WuR5uA{pEVu>l z;ayKR6!O-oWV#eamOOWV4n}z=D_yOuD}tkZLZF>pEG8sT^ta{q%r?3Y(FT+~y*ey= zpRvbu-|n_I86SVDys56do`_(jv7?$CZUz;#stJd$fH8Z32qQ{LyBNY;GJNf-hJ6dEWJs1h^1Z1!fAktn3 zxY9Mj59YN0C9AYlBDD&Ks^>h2_3vX^seKc5QAl3H-g&K^qD#Zgl1`S!XEj!owGf)} zk&}l^L`YLo24`Fd+RMTC~`{(uGQdWMA*_-ymlf9cIz0ps1@IGF!6_C+# z-`HAuBbQJpJH?mAcJ=Dr9g2&sae)~ugre-q*Hp}WDb$AK6>Tccn3resvnpMFFK z>ux)R3?WnJ$>mPQ~3AaLkCgC;ft&_)a<2| zfknri!Yl>yQ;om9U)5Dzt3>|;yh?LG5jsK$oYA_vx@0{=LPMpbqyQ$};U2G8GVe{H zqq7Xwf8_0RjdqhINKFaH8Y0XsdHMO<+uH~G`=P#rdiLgMvA`nI5{e-#T7*-P4PqQ3 zij=s^wJ$JhY@cf~>WF9u03Hs9PD^)g)UXhjW5gn8NbY8|Dznh@Ij_>#CAY=uXtiz? zDyJ!alp6_XReRwba%T^)n95Ur8ue|kzGk|0(PppLvO})LBF%|vZ_rdu`wk&mWU}{5 zEdvkfv#8}MQMZLgS{z3D8^N2O&yL}fy<`Ta4GJ{Q71|^*P;=vs*pT02r5O+rm4kRI z1enU`w#$L<@jUmek6n^zR)Ph{dc*0Oc|s*T6F$!D8T#9r6M8u-?}Hh74>Le1>*&y?s!XB8ehp9tW~+$| z9;G(5+>bH&z_W!}r@8Xj`QOhuJNvtns(-T9of8+A>&^FtOt0Iw)ARbDyFx}rM#D!Y zE2~3t@eu3Pjyn*OM`%@MXH`CYAS3EqUe@VySgbd>=wVdXOtEWeY0*rSfqYO_CMPWi z!GA;vE_F27?F}#8_d%9Yv7ZVc`*p2oZKfq0&nleX0 za{dJl>2vfyXyrg8dYa1i89j_f4#bI;;92ipRObWG{Ym_aejL6MPdj9T-`hwGjR5%$ zmC7}v5T6SRIl3a;b5w*5TVZcc{mY#8hx?C9PiRL(KH;0zA-9B3<(&~yDj8WBF?nf; zAZap;WI2Wr>PHS`kFqcwCMHJoBy0p(N5suB6``hBC6sgO4;#^V4?cjHRF8dD^dE(3X zM1B!33!b|t!BQyki8gAr!jPcMDosQDzEpspL;05#A=2-Rj*Z6pcdmxihqNJ3;Z36%b@K;SXM>Ve{b(4>lmInZs(eHXxqL+%7z5F!wC?3;Y*Tz+!c{9j_wjSW}t(7lw&aD1wi_~mkjPhh|>C3*`_ zaO&^4U5mG%$I2VSBX1ip5BE!~Y-o95Im9Nh-_F{k4vH*113Lu|*Bpa))M{oaOxW_z z0hcL0bhMhuyEB?sv+`3}cx2me9O|xiK`kGT1(G##VpwS?I5#qQbPd zTN5!HggkBUked~e3e372aCN{hsCm{#o9VyG5kbORbdp2uKKc`?DP^qhdpE2m#X=bk zI$98YDn0@N_IG3k11-9#EW(q0AzTF2NMn{+B71fC9*!rI#2 z#wH;--r2cs5^8H}0~AyRIn^6B;8{@)(p5DpG?@f|<@^hpNp5n|(&n?}v%sK)$9mzc z=s=`M1;`o$7~wN(?~fnA0)h8m@w!5VDFaHGomc~a4(%_u*frs5gpai#L5NXHJe*9l zsDT_PwtlmfW_#{Sx~j4=`{$uJ@F~VqTs*wJy}jFMC1IQ2tr#^dSD&agBQ1Y%C(bx5 z9V%H{SH{N1s%b0q%!8syx6At-AKwyCrSwo@WMl-ld{h)NWTD>VKQ2hnZVv<>+fyeJ zH@2R#;%MFUPvejqH2gw%pRjQR(U0SN#yH?Kq83E~HJj9-feO{vdsNbS^zEkc(Bo*U z4*qN1#@*YK30xXxZ~2vP%W$j1?#hYc_&{eYXeVb^jv8 zAwr2i@>KEhXS%<>l7Wt+iW7;W`rz;y(!ngRL+Zhmtn;DF%1!4~UmML(d4Kr#7kV_* za|vzjo?wXMugkad_m7i3)@P$X(5qWpm&7x#JF>1i7z%eLE>34`RMMu22ieM0>^N{r zV6|JXT+R@i&ka79L&)MHa`pHas3>=a`UH0T7Rt>ils{DouowZ z%o*MId&RRmZwQ;Z(;}kQc93izJ~9j`X=r=_bl{gy?8t?%=iA03HJT?TxT#$quSpv6 z=C~#ZmI!*+Z|=-cG=m0Vb3L}6Yo}ZsX;?mNz zs$}F+m_R{Y@mSQ|{Q|&6z|)F~iW(UmH8wH=N#5n(^O6W>5R^AB@48=}A5yn?`S{)l zdAoy(yFL~Cm^W+&{?XCVMmeN@kIHX!H+FWY@$fB?awh!F)&nX9z5m+p+ztTTC8Y&? z3Zx?k++~gcD=SgV!VW|f5D@Ua-!B0$8AFSt+6GSLP7h72)tLU zwaH-UN0e*cUute}Kz`vrzK9e^6513V;(%7J4bd5OW!aZ?TmC7EE2^ndofP3r|IPq~ z+**Yf#UAAKAn_^tTYZ;5+!uPbV2TRqWMEm#Eq7=bf zCcV`MHa;BVNqhL6X_gSN7A2dJlI9;TyfFS^&>k%8l?fc8{q$=sf56y+D^;APD#iT! zN8JXe0(Qr{BDDHdw}$Hj(|7ll1J9NZqd#cG8d&Cx6)_=n_$<^FVKP4;m)v#7hwIa$ z)xj8nC=it|?pZkwY&ZQ`SC&)LWr&MdQ3Eg-2>#4yCpG)CUUN~lZ@V8FmN1dhoADt2 zgIiGk;n|*=Wn1;3WA{&;Y7DDIk$XeR0oBzS5HfVR=a{G!&r9}~Zn;iEk%JzGKMPaA zRKv@7ITe1*#nKv%|MvKV#`tRPckHU5p8VLH>51-6e#o||WtVKCc2C*gY#l~(XKe|I zzU#wz5)zWZXrj<70F{#)zdSzy6NC>j#P2w4fAfy)QRo3tf%~W1wNz#unt8;jsi|xs zpQSQYoc`h6pIMBWG?kT=U_<`d-KAMO+}Yvsef$d&jqx1eZf!5{f4ZFbaZ>>Mb%NwI zf&|!gv$wP~0t6janZ9irxP`eMEs$G* z^TqFW@}bP-O6UFi=R^4Y)z0>dpB$u}QJ|ikvl+0w+XyAyW^sHS?0A1=(FWM$KY#uN zC-3h0;grX2wZnRmV{w2|Dh8RD*M2CDT%V{xNE0b$D<&r9U(%ar9%5~rr92E*DfTZo zPk@e2+o$TvPN%(}ZBBa(CoV27;J6;ut*!Y8ca>zyTp2l|S|p;3 z+D7}FY1fMNH(kZH-v*c5RER~08+RK}yHE`sQq{4%A8m|C85EP_DCo6(IHY#a3ne6E zC4xp|NAELGj}6|r*eq{^IPdlsYSu@a%Kr@ct}IlHiYfMu;_*Uw|5S}DOIwS?x2U1X zizqRB;-Y2`>21=L^US65FFP&r9pRrSWtYzNJR~)ivnsXGdygrC$5#pvf2!fWsW06^ z@3UiKlQ^X1dGEs;qe4yx_)z zKkxjGc{FZJ0a)3>vwao<_P%tdwcu?*c(5U`9vIKykx7u3k$LBFvHkaa>p#S5TS7v@ zJMAG`w#at1;~hKuIk>~?nF0U(eySxSCB=1n2tzAFv83DgX=!AnT!j?5cXvEv@H0p9 zo-amZf5H3cgeC{#*oX*67niDfGa#W491Xz!H;L>4+b}*knc7XB@uwH))baE4FCH6x z{J4-O9{SmZ75I$8Bjb~udI0SRD=RDNW_pkU`xSI1t6{{&r>8U6@$+l4c$Z@SO9>+V z1pJ-_$jH`5ZFyr}9xo>}G&F!YVX_SYkL@Qtz3l9%uRW%`XbGuEXRT>fYmx_I}(&|ufVTgm&w$|z(uGxp!R5B?>hMo=wQ<><(*w4(F zdG8fUs-ipzF)HxQDc0l6Gxb+;k6OKLDnZbPHa(w_}Dmq zz3jKh5XJs%s^^h=j(bOLE>oaMvul^VkY8n`rL_o9?43Je6;)MWR;QH+odFo!^lZSL zu;y->9XZi#1_`Pn3H&Tc+}s3jnrK%KUCY) zqzmF%WmanHEvQcz+8uZ^iFlrMDc)JlRd#d;Bv6H-5NYV?v8?ghuZvJSsgHu*@Ak2! zBx;%pMS*QwRJr6E3}^@v9!uqvB#YTd5`7lGTT0WN_cJJVlAWvfX7f=S2dS>JZagU_ zbl(@LBnz|xueG6>nMP2a3qM_{DyR|nf5X0LG+p}d${bLtRj~3PdiB`iiWE%%AO1T? zSojT9xoq_pvJKVo@Q}<#HMNu>1yf}$5+;7m?G6+~sJ^ZRAF4RjmC$t#x|{>Jz; zN#%7(wmxCZceGT-STeFDUal+i9wXT?iP89;6OLH-YfCBPHJ`}EM;9?jw8=3%2pe5y zE+4f?y_$8LVsb>Z&*}C|eRe5?OI%cbn@gM7ArdO|(!VmwcKOzL*fM|Xv00;`SmA1~ z9vI;ISq9o)lVJbU$!T2vS_;{!prd5q@&l9z=yQ~I?@ExI-8Aboc`k$}HiV)ef1oDVt-r*n<@k2^PW(=%^&wpPHzv-8Q?nqojcE~=}_q5m>4zz5Bt$&KZT zZ)k|vi2eM&0^AjY-{?MgN|g zmb}aC%$dKkFMMR=VV!liklfho!W#9&6!nbO)XSDiV!5n4jw-AeL#t)f1|y;_`l0)^ z!&lb?pF;R>Tdb7a7xNGOU_@G~_0qWuJzu|motsBNYY83v#chAH&FZ!=tDVO6maL|zMnCyo6C~}#L$Ggk6Huc}zg+)c=|45t= ze%ws3+v)Ozd5n*l23brzg?h zTwW%6rGbuhl6%^rQ&TA-GrLSxNoRHx>5JXL7Z8wM!NL;ryE1WcH9a4WVH@Xdn=m&L zt2sdjm}9~&H@?Glv#}jz7ow>y%1>CSTOOfa`pPCH7Z;9|1h0uORi6^xtbTBvl9T~&;g9)_aLdle*YAh1s07BUyJQ>SWmsb)m|7R+ z9y8QzH_F^eSPZ=Qp8K(H6>qG0SbKB7PL245F;}D!l_bZZ|DNd5m;;aSUL7Cud%OD= zC6hyv&KP3^!v(I`Dw}2VzbSdva09lkfB$yJyV2ym+{3ozLxn|PeF-4(gA*y9)D`TiA8CsvBPsMh_U(B{_e`sV^L9 z=pB}klS^y?MN4_s&xHm2L5KWuFUm!dEaWd_M@L8HBnt6BJFZOa-eeJxK#hTmlXGTx zxNPbMAfL-iOLLa_tjf+Fj1xN4y`Xuvs=*Xf#elt*w7$NcPAr!9;qmctJ2?~Z7Agdo zuRFA70&cz*c7ZYpAZab1hcUIFJpSo@$HBd;TRZ}e_s9esg#Zx%y>S=(#p&s{G&Jw$ zSQr^qRns|Uzx->cor^;|H``JtM6@r#A{64Z8@1peR_M@yDw7$lgwuT+7LqB`A<*4F zw(8nRc|qA|*4b>Cw~;efb=7q0&Uh@t{W3j*O?*b`JQi6$eU_E zdkt;*ty0gpmcqNgEVuIiX}|{*>>}#zQc$@>N&^DJIw7HzZgXAn@NgDS!m3&ART>j_ zV83bY6+V+7P2#x0KKp_vGEGL$lyUt6GQ4VZ@iDx$JfD&f);*kQpqV!my;9gSZ! zM_3s*lCkY0FXbXHWG@>c!0Yv;EP{-*Cy}gv&+&81T>I3exuLDGK3kz!t3bp`?s6-)yW{tz} zM-a#p=bTg^ar4y>2qk5K<%5^!bH>KaozpBUzpA_*RV-c^uAQA-TWSX|29#y>5Ujy< z$rYq2J8hgN<<1}h-dp(iUlT8L9{hxI{J>8Es6C8-U|=suN8U%_Z|v`DU4Hoz5kMc& zuhvNLADNI8`TJKxwtOu#dis?YLrq*^@o8KO{+u~C@xZyvI1H_`W;M0l($j^d4i{sT z>|8@o4`Yb&{rvdLbJs0)9?G9!+T3UPu2^0iqo+HujWWD~C;-9LlNoB=a>NP@YU#iE z>?6H}!}mw0g?<07o=u`_C4J|}5S@%7$gQ4XuyrP2f?Wn5^06U$?o|xLpUW_hR89?- zuj*juxc|LE90gphH(bgT>i_*3*J(`Kqa{rl0W zdQz&Enx2O8&X>*fz^%WllgalXMx-xTA`Zi#CooK!g)fnvC5aWQ2b|5|)4|dH)G6T23;+ zCXR1aMbiHH=7jT6VS|W0?>G;}MMPtavixry%<^o+4)2d5GhfMbH|F=MY_fWi-qHiR z9Ly|Sc?gL=*p2xvsq>)&Y(G1y{k*7+9BfxOwPrt3|7Ei%1%Z6ij)L_cY$Lx$%YXzA zA@T)(duNUvI)JPY$&Xb-Xdy)s|30S>k$H*+^ePTON1HAT1!7e9RiVJ)Yt+EX7f4J@Mq}_Nnuh@JG{T%fFG4+;FRd(UJ@Io3vkOl!!xrUIS+O2*sc5$A0h+MY@x)-&F%r)>lI*dk;NMdeHu4 z6YYbH;?m!QK8+R|BWXyZ2MXzI^Z%WgB`|?UVU+Hc#UUsY2)l@y=U+Qk(vyfT~0vI+EUk`W)5!D5#^)S$_HF+&uy(c1#5qBVXe`YhPhHA9j zd|R-`51Z-P^-)6NLtRdVXc!zLvQgFUOXc~XHTuhwH?VZnc#jEk8IMXc%0yP2@MR+@ zlM0BO)45zEDNB}md6=0oUbGrnwUnxlDvE2OF;VY}pJbH73jorp!i!Q2u0a6Q^8F_c zqlr8jaGMb#GIGi2YG~LBmeYeb3UViaqFZd2xaJ0d7=2POEn1xPMHk7yz;C|_fq(E7`L#n;=O>e-CaLI4lV^wfi2~C^?#mEj5Nt6U(Ss>nK_H5z{~4To=mEv zqoZ!Cw+A>z00yJN_JQ&j41~kN#8mboqtrbOrTY0l4M+wSU-pLC;_8zgd)1bC!f3x4 z%Zp9nXHw_8g|gj~zt0xON@ev-B?D?fp$b4iD#?8NT|p%3QHDzj!N7cb+W1&XCRLT& z`pO%!>fpNJV3!{5SKC$Y=P$vK%&}&G27$zUl~X}ygUT>zODF8nszeb{?Ej|aSH!c! zo;Thldk?NOMz-6_?qE8IvT_=Pe#raD{e1q^c@tYSo@e#lwteT~1@ykUjD0<&venn$ z1q0EnakZVA$Ag>?xaaFN-(5J=tE0?qP9>6B*@q@< zmR0$)TE z@Mu6!pi!Gh{0+bt(tuLFBgVsfCU=~{l6n22gT?@HHN5B)mI2m2>?%&{!fgCEGHcxY z6A6I?@ad8qxm3)PK_$esv_k8i(+cl5-e9JUVBjdbrA-_3+9E>K6hE@sd>g1w!fpMV zUl$?>2{9eQ!bxR5gb>#%v%Xjnswk}?6^8Fj6B1?r?UcXzLcJ7#i3|^+DwHgDE-dKy z)_#AnRs2fVM5#D@Q-!vS_~h5DTXpov09$>@~yv8Bh&PdQ{k6g#f zg5ceVS;|FCj6Mup4jIu>O_6l6GQ6p zaBU+ZCuq|@FaV&2*&K#kAMFBNvBzz#AqNCzqH)u*JeKUQ6p6-Q@h!HY;n;W$c#XG z1e`z6S_8coVDxiGJXkGQ@PV_1%$b^s>I1^7=aZJ3#QKH?(2itvQC^sQ@N2M+hQ1J= z9_Pk)g8-nQ!d7HsW!57G)kerMMR3=zhS3p1j=mWq#`OLw0GUDJQ%A~U4y?e)?)2Lj_L`z$u z=^(_UEBVzjOYIf*(xs>uEAvI9Sd`e~4v)%^QF zjEF2+4kqLl{rGV)jJHJ8r6$>l&*E)i7S=rqB+gKOzrl(xT)q`$`A}UP3Z=h{(XQ(+Q^!-IcT1=y^I@ z_l4u-#J4cH(9q}KgOY0~m0ua4FLUnUE2-1js=_9e+0`&?=pY4#PE*O39ic^YA3hzv zC!Q!g@E~c15N|K?vWP4bBX?@^*z^wJuI`(_LteG6E)T0Uu|Ml*Dt}lqPBEeE*Nkd~`0v&mF~;h_SKv>NTnf7Vo*uyHA-nSt}HAq#odMk$$Vp&7Ga> ze=q^WSz68RX8=W`OC~n?0t6* z6h!#avi2NlK)^rU;`Q&=!N zGO`XWmLqWSs!MvM9^lel_9p>+K5f@LhRc_6va_SshA@gV${D%w8k=?&!0D$;U^@pI z7&hK*pbR;P+!;!quttt8cTJ_Pg;856!${!<*=DiGNw8!$vL(JH8K>Usm_tzn~ZSRMOYa3o+5)w1K zLE)!4tB;GEg5oYaLF0{y34H6TV`CwoV}Cm(QCA~wc&2eN?d)K6a=EfVaxK2md3%tT zrenb2?}zy`uWye&dH9!C)~dQ%+*M7CJ#j}$nApek5zho}teRSpufATV&$>HfP_USU z%Jw>r(yd`~&MZ#Uu|e4pnq7MP^I5CzU;S<}B0(=|nnp=k=K1c(K}%bD@x!$K?}meI zLSRo>oCKV^0n-2YO$a;l4}fl?wQICy$`TGE6CMsU6s;O;Yo@bK{Y zIXNt@reN3U4wIof#|3Vxr8H~63Kgjor*PZ>q!lD6x|{%UP<8vn3v*I;+6=lB5Efw) zG2@26%-ZSLXlTT`HffD92a&+iC*07ryzG0n-tBVolhY{=D5AQDOBJc<=&r7=z|5?= zL;|>Y2WRJh>(%$Km+QdY5owE)RxfCAcW>`Zi`EThzxboYO^>B_f86iiPD^JoBx3m7 zHlP6yyT(QzPtceC0kQKMb@65ZMeGRDHrjW+fC&6ngYK5m1T)IB3mSX*<2@jqaAv|ozM-^=-90=uX8;vcn3J1be z<+ro27U^!xP~jMTzkKEn9lpsDg zg*6Ha+ne{EKF1|^M7)!`mu4Dw8#ihA&0FR}uRUtKV&>WknRG{3sJ8?c!_LR4HI}lm z#{a55*p94XxUti&pzB*0X)7vMT1|8-EL%O#yCx5A)tMKRhWMJ>l{|bP^V-NFdDZUs zDY5@%xkr@8xM*C>7Bx#zt2gCSP7UsZ&$EYBZyXHX+qYxRDj^Bfl$0EtrZDflL)zyEqV>$;Le!}6abKc1In>39CtQ#l~b)H7LHuneT!eXUAmygVJ zhAk|$D$f}e4qibLKmDZULfd=Tu(<5^<#(^Xfc7_xOw#(ST)5vUL*7((01bIRaG}P> zqdHKCuRku6^5qFn-aRxi$-dxYEZ^wN~#ZGB-ORj>ilqR0nrle~QD z?GZ$RPM%WQ{06rZ16w$VH5-qF0PI-EI+97*VgEn)qAJ;OGcXwqAxRQB__R)>y!_`T!5 zQObTpvFK6q;dkg2#vFoZfB^P-xGtUSWuT-)KtVx4Mpjl(h`C=y2&g6lPEPWAU2B7B>=^ysyHvQr`5!-iOrB^u>`xY!zk6dhSG5HgjtGygQKa zhKCOUq!r8bdqd#+03ptAueGodV1R7maJqB>$en@Zt|&88K~*&&De3m%q|MCKbXsQ} zwAY!m&#nNoIEegRRRxqwaHvEjMMYe|4QtvI-X{e1Nx*gOR|x{MrM;tL3YSY!Ljz}6 zcPNlwgodK~R@<$#dU|@k2#*X|sQ8W)k*xuU1!^VwvC`e?+GkK)L4#%nN)&*i12#-Y z=Mey-KtJ-*<8`WBkLFE_Z-Dx8DefR!f~bywm#wImp`Jo2L~|&+8|C zq570ek3-+^(RhJaz~cqoXvsp?= zbTO1K>?Aw_XTEN70@k0J?Z$fjV#(pg!&`*hJhv62TVAZQK3&xTiiT<}!dc8V;!uYx z^0C#g{L2y}G6}**&a=nk2pp&1-78kCANtJxo*vgs9jdIH&{5Iaoe~5PC&(>3+|H*+ zTm+L+G<#f;${a3yK!E7uVpka7b~OYd25|V?J3qSq7=N+I11!|vAEM&$yA2`0`?Wnm zRAl7!%?;3CG@iyJy}aP?+lGNBjGq3uGXzxz`3e~R0Q;2&V31pJ5s~gu{^!M6s8K;6 zG$w{f2n#CT)z;PmL(0EKu{VNfPft%SP4vOw|KM(`at1R-TmaewdrH&k5>SXl5pY)R zW&J||I%{yo(CFi${&VVobgffWQE35m3OIj3OAQAg*%k;YK;&{kQ%tqcXbJ`HPK=pfO80u*VZnH-V91e zmOmz7}fEH1QtE;m!`zaWgEM$P|Ltoujm~ovI=-&B`8((;pjT0`}xk;Y~H^O{S zuIYDFgYxx|8h;a?UjN&3!yXCOv-U2@TxbR+CVvotF!T{bn}z!JG(JsFct3I zTK3Ssy!5&2MRzS6Hzg0cZsU`D#o6HX4*OUC~T@FmU<7o%N z@9YO~#dF%{SYvV?AHw|6_aBMBxj3Pk=4`V%nChyIjg`jW2A3`p<>ZZt`u2ZB`eHCU zlp!jU#+`(Q1_bHRI;KM6Nf`x&7J)RRAO`&-T%ZG}HlV~#o=~2C1%Dqd)Rlj~bN)ab zkB^P*3f6BUqYZM|YZgfH9;;7I-aze;rkLQH-)XUnlg7 zhK7cTvGMI4>x8G0mKHbYC8VS|b1YNfrk25hfuP>uZR;OM^PFFZSFn*8Wm57=6MT>k z;8e>Y8TJ$9kS3qm=kq%+SQH92D3Ha1yZl_tUa zFqJO_hFjk!!QW=J64XWEUyQs!X4S%SH6cVfVJ40LtsmRvHO^F8x4w;8mE{E{a_5t_ z%lTg5_QI=le)JvQ$?l$h@27GMHip;nr^kJDh@F)URy_}Ldn9NGKxLQ!bYUT>AoBs~ zMy^0&aUNbUnhm-442Uv@lbA>V(9Xm2543Nf65`_G0)rO7Y{Bg~iW5#Xdb_|%;p%z~ zU|HY_1QuxU3JVQ2XGuv}i+Hip-QBHCUpE&X77mc0t*x!41}6%@GXPov#Hl!Q zwSc(?RN{6z89D}FnN)`e(pzvxx;Qa@T%_F40`h!V3JY!nRRe77!b?58bsLdI};3* zuqczUwo=!*1dkI&pZzwT+|Exhf1AuIs`FXG)<6V0->J7b(b{ZChCq*aX6wf57Or9q z@UkfE{f&V7)zoS-`@qIssV=W%TU1soq(Zk7&*oJ{t>Tk*7f#Q`D^9#|p;s=4WM}_5 zHvG9&)Qf^Id$r^GojpJEhJos~yjGJ)OG`L13YY^^0T1}}?{0tJ@=my8;|xUIDDPeF z2RD+xg21iX8es1pZ(EokLS6;bKW=ZF#IRoslI?fV+l-I8-#H(Ybo}CNd9D=*c!Vnb z@iTM!n}tt^%(d!-JQVu5lVs#!EB^b3tUDT!U&ZAOM|}iHu&4`8Tb^B?-CYrT zqkHC)%foRpWgXM;+ zngSJdsfSPy9a{+w10i>9B}UNJtw?iC%YUz3H=L@vIy;3SXD(g}iu_!+yH^pSS}*pp zsbZ*Aur#%|x64?6v->YR;Pg|~Q?VTJvgl6NAjcHs zmxPt?+vxvUgLRxeCz0xDh=R&|yc_ovEk4aJ5^HY+T+0aPJfOrvAOWP=%Q?ued8=5T zT(J_ZEG!zV=c*L4Mf=S{I6^w1AT7bv++&oOeiR|6cu*k}kvG*+I4=yy7YmciSS{i~Zct|JbEym<98dp1GQW z+H;m}AI82fsim~7zGqcAM0p(*P14sWpX zBN)@q1FslTSdMVW@Uo4b+!ZH{@hIm`WXKgf*E6bQgjt{P_o4vz^RhHif zD0-JoCSA(*+^b-*-WX*_SxK7&8>qY4J;?N86MX}jU&?amtG0`SCvc^DnDsZE3)&V- zu)SwK`8ZY<#k_t=jXvP>68GzSo!(MIY))2>b^~3skVPQ>_*;!%id6iMoGmMTL_9=x zKt2EUYv|mWhO#myI{HUlR#))w+2o|84ifcz-x588`xucTU|pLhuUK|-chQ6cpssa#sd!O59T1o0qNY#e5Dgp#u?T;>Iz@c?8kGpq*Y0&t zr_n3Y>nw+YSduh^Q2UDbg0%9iF^vhOR)-pCJoX!*9wcn`QPC!!TmL)f=F)hHp>k8f zIBtq?Woev+$734~WdWqxwr|?bCyZKu?e~c8%#T)Z6oY)?)6k0af7kV_T)*Zdc)Ui5 zmjpMqoB*0S4Va^FzS}d|EsY>55gzHmU5BOedsRlMakF0CWJsD4wfr^PXjel0`F+k@ zAacPZr+#B6WUa*kIjkwEZ|gLNHP10?tPr}_lK{LspZi|n$TiL5kKAFLJ+(a5`F4M= zLZ_0;DOMTdn`($*%x#}7TnKnNg4(FAt)iWDV7!>nD{60{tw{^4O>zo+I?chCw$QACk# zY(BvXqP^9ynzNj6QD6Kd0zZz4T)~up(LDcfitv;|k&0xsH9w#-*R{DwV9EAJv2%R* z&yj)w4SlE#1S$ed&HhQvaTBGg+56jRjDK!kv4XoS26insAW)2#;rwyo0-PLC_> z%u?#;kqnC@Lg=N3#e7{$L=eM~nynPslzB_vxE3+#i!qCQ5HKWyMS}b0T zcWrthucY2_YN$m8t7aVq+!7F4$c?J~WU~LUZ8M17F2hWmRW#=+Q{G;N(8Y$=g-!>> zh8KlS=gRYW%G@q%rmTf6q;syx%}(U2cpHpKQGGoJDJdxSdgHHR;;Vb z#~^%Ew{#v-zQYtEVma>cD@4zgga4SYjecVDZ@n#b@25jF4&T2|vLUsJ;?Qh!(A zOkd)|F#1Qc2qX{m{qv}wo4=;6O$??b^74tQQ2G2WT2}!El5)uqhoR}bbV6&YWyKXs z>OoIu@O*$PB0S^o_vwA9^-oP~zC;(x^R$@^q`Z)fvt#p`p<+2Pot8aj)6K1I;MV`G z9!rkAj}cir+pCo>2oHIa;di&UK&N)BT$%g3U-ZYQ@*IcTr!i%tyw*PHL|qY*-0^m8 zzspNs=-z8XMhh^#wvDc|ZH@n?kiqtj8#;9$A|b!ruJEujJ)#++i#IM9LcODK6@#ZG zdYXvba|*UADK(X%5f`4*=g2F}&CAWtEG;f8Rb#k09j%P~8Qhp)iE*_EWS9j7w+H2I zKk`>TOGtdL;AeY5KLflCfUy^J>-T)#^^RKuU=9VcMohxD0pc=1wE`Ah$S=URfgM)O znPXkxW#V$Z`g`+jFhXIzq4@)OCtNZzR&;>OsH?Hc79|%!?rG7bjH*gxa$`Sa14^w* z>+g}$Tr{bKjrR@=gopb36%)Z$&W2m|wOoS;8Bydf>Q5JbpJmjNi(JA8n(c)SpZ?)n z$evISJcP=fs%YecDXT|oNIA1W)!xd_8!c9IxoRXsrhGRsx@3W(`eTRL`azYf9x>Fh zx3pBB`1_;P>R*ZZm6d0}jsvhPoVRb=wsF9HicpO)%7m8XCFt1qw;${FCjch727*97~jQJnziJFIHP)+jvu( zT<1s%X>d4;nN-t=MRm8-3*R9&qv4Kgcz#!Rl#daM`mOJMu))4&(G@$F`GKYRfzR?8 zvA4XG7-46sBu_MH|HfIpHhoBEVQFb8z~X>A3iM%M>;y;~J^i-*4~KGN@b=h02j%7E zWf=(quhU0>!vP0qPY)a^{Yp}nxUa4_u&A;! z#X`0QQ+G&8=lM-waB>8x_{ZD3W7Ms^&^Kb=4}E<&W_^z2e`g|Qpi|d}GLR70k`Hh} z{fUsu!_|SUJU~Z%c8cJtJZ%>!?R!|T=HR>9Y{8D2t3sJalZUC|Fh?5g z0uVG2lN<|wEp9u=rw`A=^Enei&iTo?!V*rU=T{B0G3H9wuL2PK?s)ExQvV#=PBb+E zO>CKV!#RNHUWC*<5u~(ODyk|64Qu{EpILV=%&5aMO#(%8IW+JcW}6ojV*Uy^g%?YLh#5G*tuFLtIf%ne46D&B*&1v0+ z@c=&s2*Z4-sHg~tN6>RY zR09z9gJ&#F`La$||GX#KiD%$kGuq^yH{=mS=hi*;8&upc;yYJU*ZQG--ch476SGYc z)y7}8Yu_atEsSB34)K>eohZ_EnclT5=Ou0+6|(*ET}I&C(2?x{pRQu+7-#wC(E zgOui@>w6+W^Koa!KeUtFa#d;hgMW9BZr{a@cJJhie<}&ji&fCb=jx#H5|pYEW92z+ zg}>?0<4N6F zN>kYTu!RLo@KFb>mW}0^l|&Hb3d@m4plzYlD{OM|Nd-Y;=6By5nBl!2KLilNyn+hp+_ne9X46w-NL5wU z`nus(VFxL9ZfNV5_Vbpbwo%5Lzo{8S#%3U~6%D1)<*wrmb08E8xDg=wC6mDxj8&4tVFm-5@N3 zv$PiSAg$;9d>I%povvwg(U9UCzm^x*f)b+dpIddFu*9#~tu`(((b3VdF(ztiApR6@7Qgl8OC2^HH?C>GjWYuF{u|t_ zJs6v;JSFbWM{mD?1@Bx{#q1TL$6R-ao32Ftoun<4e8G>vH7ONkJj9uwgh;KFS7#Vy z{7vs~vTpp#Xlmg~(rUxdssmO8SKiq0MyNEII`0|Kp&=+LDyq|BhjpWq6H(L9Xerbx z<_!Sk=Yc}r_mv=8&YQ>$kb@T*`ARS+SST|mx4)t$b&;iU0}G6$sL;}Zc^1Vc<+}n; zTV*FqbC&psn|gLpWLW&58%T!It!fWPc0%5*IPj298SXlMj)sBFW+U`|%U$SdNl1e%y=AFetx|2^$>}I50r&JzAY)prcOapn+5>WHAi<_& zR>)xFSJ2fh+Z8|q>N^<0lz^8BrS!nyuhiHF@9mNq-d`8U=){{#h42}qMP%dKBHrOe z+cUG43tW3#R9x5&2;xu>`LjG~Zm2&;a&IB4IR_L`NjbsNv`A97&M>_d5ywV7&dy5C zJcd;hd%t>>;r;Q6%=U-*N4@KdcfSb-3~;r#p;VILZ|*nMX@BvDS;Ytn3mXJ{A^=Uw zv$Dp=9Y8f>M4r$eFrMLgYIt93-L^X}SvvG?4Hlv{x?~k`k&hePaOH5j(UtY6P<$V; zFBog=eHexaJE~ z{9z86BX!g(DgHYYE$=&*tu1bXe0NXJmrM~5o1<*`Iy3-jut{t8Kpb7#=!xopG^{cg zxwn0ITKW&pVtrD>U|27cQ z*!#Q$5{u4LrT{m>5N`u{zp|b7c);~l^3FmGO-V#`svm94Wp6B5G#iL?gMxxUZk|ZU z1XqQ6$=|>70C0IZMZy-DKVJ?}_FA>ACq3$GtYp-R3D+bOX4K9Kr}rdAPC0YaRVZHS zx5m}E8JVG(bul*}>pk>MzDZC&BED=n7Ryv(EMy(_ptaamPb~ez4Ig2=n)7%}N9Y!M z4Rl1}sMF!53OJGDr*uv+i1;H7yb+$eH;Vd>S-(+>vTZj+$D#<03&1&GO7J{P5ueJJk6W&tm1zOn1#FFQbM3zOHQP*s2_FPCpzs&?wxmSOHKHeT>X_} zF&HF2%@b zf#O_$gxR_O1pUl2{g?Q;p`E`jdzAwYcT69zDEOQ-g4NvObZk`V8r@EzA@%7kq){sg zJUNx&@V^(T_nul5w=Qhv>|ljNMU9%BoxQv?ou@#E!yxDSwAU9ZwZ|ME`2A5E;7^OZ zBJdy4ja~`5rE(q~4gb4$5F=z+zw~Uhis`DUyn~8*B+8`)g-*+# zkB0cNO|gV-OeC65P}P>n@pEt8=r9e}| z$}_)0Q}39%n0oJI==m=7ao=vOM9}Ez_Ov96#IncphUuOf|74Kat&K}0y6Z8(Y{Eu# z&ioy7p)*?s&DyFTPs?fV#OvXowOI?hA57`v(*%S3 zs~DeM{&;<@)NIm=3vepVZQl1Yse^sP#RmQ6Nkw~Na{I%XcJfn8a&6@10-__$z=WhE z*Z$s~RRNBQDwKexLVp2oFE6)N$$QR%&mnK1pr8OK4!ZBxuMuSiIOG)J)!m2rODr0! z^R~Nev4^9K<5P#f@-=?wC3wpfs(BmXZvS1fJiK}Ix;_Xs5J31wakFwX?_5c&#`SfH zbZl9j-Tj%Cpf}3;j{8ZnYVo+q{!th|0{`6^ z=t{S7{)#)&0V$sVF9jM56f&dRugZe!p&p$vAW>HxCKQb})5 zd^pBJv6*{R^5)Uqrmga;#El|OZ7Zt-5aA5cSgg#=SvZ7LRInhsRz>|Eo2SQ}441_j zkUPu1u28_xQEifmVInQ}mOqqzi(eR_z1Ure@7>b*E>19KHq3AlMfurONF}1-Wbz|^ zI=;`n?d=*z!;;!(si~Qj^ihno*{|4gls^kqyto2YHRddlvZ*pdLqnsZqsJAy{gg-$ z0$At(o5#cy)4L&|+Y(3o4Ma+V>82dq8Uy%ZFxt>!({OR!hrIXwJ2BDZycZi@CW0pH z{IXFXKm<@9btB?YVq)GDk-t7lWTqNwf<=vNQ@h^Ulq?QabD?Soj#HHshtZhOW7E`+2nmrEvl5e?>gziJBb-x$4cAxqFE~x+Xblwg1Q1c*;TmemG z_S)(>z2V!S2Luu*qqB(?$Q9o(V)GGhc43{6wV8lPRQ}##UzPj=2_eMWhTG>c^LLb< zyY)PV=Lup4G00WMrqkR!I2hDtY~_%tcM_75Q6WF`Ij$%>)N?JTS0$Cuc@ym*H6&?0k8Jl%J1?3y#fNo5`O&h8%GGB zEC(_fAVQEbp^PPM0~t9$?1iv0_4h9>fIJct6Hj%(HeuNHt)halP%n&FJdASVADCLs z&2r}3g@={jup25S0j%}rfYH9P(@~{pKRau)(@t(+t<`20Q0bhn%A~jxBU1>m2*V28 zNl}HDIiVn^Vdd>R!x*J1{~@iRjo=Ln*&tU12K{#CL9HnY|B$ffn! z;q`uG~~Lc@x5XdJ3ZIO=#6O%AChz; zzQ{Dq<2@fH$0n+A7=zC5rVoq6!$Nn6FoHicY;DUxm|(T&15o^Y7UEO$=5;$J2t|8B@Lv~ zvIWe-!@{-S&J)CoDeNn_DK%&gWv}yS>fi~Zo_!XFpa8EtGx}-UyN<-%__Rf<9FuT9 zF`<-jXVXwa`;R8Gm7fiY*v~rM20FCP%8QT&9hlUL{ZU8dgDvZj<*|#=2L9O7K~1K8LkC`#Oqvn z?WKeHF{<~tqzKhgijw0i1`VBT-+Q<@_6|Z_-hwytfyQ`=LsO?3ZYkQJ|`b6c{xH1l4D zQhXbs{+f$iI#fC@3F_DHgfV5S_vkR?e5E@WtcDREtoi-NF%(@HK#k~eJsH2WfZd8$ zdXtgte(G$B2n^SDfM6CB6a?_riwS_TipnIoKXWw9^XjZg~H zci2v*o7Tv71F37>r*5|(Zi(o+a{dfP{m0n72R>?(x}CExe1ZR#EQ{xgTUWFc)#*pI zwA9~mHfpL=6^*`+(F=Q>g9yrb|FSYM+OMA&;{YQEJ_1D`()n+FgFp}hW@~Lyiehd7M1Zbsij*RVn?ji300yGK`2muX zJ%UD%&Ei*!zJXBmk@-1M=TSPW44>0IGp48($XFrj%QlPt9q1-2^e$cc=BY(#t*Z|%E*x^)*cUpd**Qf@@1(EIcBo%STw1Ju!j`H9B76d&@< z1izDKn}1Z{Dyq4E{-mt#9dH=6qd^IlqX`CJ-qe5n?S^ zocwtWsh-&Jvvnr=aXz~27p~IuuZ@$T(bPy$`eG)J*OljAsN-K?%gB`b&iQk7`11Z7-dLEMgMvf^925=aQPeuloa4_fVFNCOssyXHHD)9nD_eGHq1wIE zn7Q~`Bx9hi^!59_n(f`=V(-?E7i2OA##YV$pSlF=`tr*xq7)NngG*I46Ft4Y&YQ5r zi_(}Lb?#*7{a`xij(b^!uJdwO}Y2JSJUct$h^0_G+NS>Drole*T1WLnbkgY*Ejp@XB_CK%49v>PI>aTOlCA`o zMdBEdo$PBgYrMA4ZdZDr8Rcb^$XLnD=5FB0QRnRG&MVUbEvR&Sh6%-X6e-MhJ$Xq7Q2u&@Y=6ZdM#g6fBggpu>< zSG?(thih0e=JrNbzL)O%gn^{K8J2>5NJZ6wBws&;grWcv0+5sj_^lv7Wo*7ifQs5Y zL*&cYyg(q*`?C`RRHhr~+TaVKJ3#;m&o)xMHB>6iDqE6t)*1^kBekrFJT7utdk$kV zCV60ozC12VTF)OmXQcGtiT&jQj`&c8LXP+Vg#uixUI(mDq-y&YhJ~($d)zpoP?Mdo z(E*QLjan}K)!Up^(PdeBg$WV2+ZetHyPcM$OP0oPCAuBP%cT9sh$F<<@P6C^b5yZH?e8Z7bySE+jJc1W6!i#;~y=Qb?>A>VPOXL8x{f?l!N75 z#V%Shb}Mx|z`3Y$waJMHXDhWlYKy_%BT+bc@c4Q!4nAsq9F+V~?LC3B>%6aLmcW=) z{mze{tMVcAAM`Hkui_Ysro*U=b<7wXL42blb2tc4HGvh=1|zH+2}rGxkj5t`m7Qq; zzZI4zo8D+Li2eC<=e8V{#*!&F2?>ehhTq`c{yq{afT9xzb0_xDb;F3i;l3=S(S8R0 zF#@uCn0;g%65X-%Wz_(Qv1#%To>;#)dGCQk9*+)eg5(pw8&CSuZ z>|4w&5qUxrxI7+X6Z{ZSb`*Vur)OV~pm&`2oL*k(qi58#LpGNhn>|jwIjI~Gsw8`r zD$`9>$%z^|SCS{!nwr5fY+4^z#u+DRcJXe>=mQtQsm@PkDqONKEM3J5@%6K(MnC`j!Rw@;1-l7S8FGX1XLJRJ zfAgVxdTyuWnz%G^vNi1N#xwTEx)KSx&N5?TGX!k?UbDt_fVzcHG89K5G*?bXkCZSC$@XyxY_%9wnz?lv3 z7bsJ2(dhBdUXskJIr)KQRhjzAM&whX{skgY2KcPegU{N_motPi|IG_=+t2UU5ygq3 zR?j7fGFHzd%KR~_Z<&X=_sV8QWt*NmJ2rT-rY>jA(eLVSt&wPI!;bAKmNJ(vheqBc z#p!BP9oicGyR%%IDUTe#I`A2dR%G)Tc(AS^D5uqxzgFEv1@|th{p!qew=o?xXUDkA?d1r1?Q}e~wK`)= zy;1fK&Dp5`&X~EoA;k;D8sCQmeCE#1Sd4QkhU+i=e71_6Sx|J6f4 zHX@vpAu}QeCf7RM~R4*^@-nYQk0L;im z#ZgowFUG6M$?zf0u669eOHmZV*Opbq{7Hox3+8vt)L}7xkWY%k3_kMiw1u~6EhB$y z8%gL`=a0_PG>6J~ZntH-dPP%}rFNr;Hms``c4jc`Jg^5ygj3+d2b!7xbQwh#UX0)< zpkGIwF;?SQZ_^Ubg29wRJeU5EK5S}X{78ci9#k*h;h{FC18P@Cpjcu7mRBXAim$zw47DxMgCu)e71^1NCUq>H5$xsYK7&$q~#8kRB(ij*=;V zx*XUTfqdy=U-JqArFXh2JJ7n?CwEus_{MF-(XVcq&7?cN*z~xxNM8DN?ntC53)j_L zpc_H0;V=l{gQ9@skYboBYcP= z3LhF{9T=l7BNK7@Ywo={n6o;pgBXX2*J=;~zCi(b7Etzyb{9AuVjp|9Tp59zRP4O! zP9A_zh&0;ZeTR|LaUUgL4j*6pXekw=%7MO#$<=YXwb~#$49Evocy^3$-EH1*;(9*L zIk+i0OgVS$zFum&MZfJ1;S8dDm4sOfM~j&Jo|9{%A~(s_u5YU<}mebU8na z5Nh3{p3TqkJPPl0HdS%Rv2yG87osZ95#%uZrd84h{?$CV;p*FkxlNurb`kCHGa_p) z@FN76vz{#vit8O8O=M>~&u8{Fd*WQ|FCjD3aq z(!15r^_{rwEk{%g1}~@ea*D|mJwUj>X5de}UOX4s(R6bxz z8?^CN6|Jb8t9v4cy(zl(U@gbO3O+<5eb%`vb=#^No^0Ygh+tDWz&74s&2=g-7&3bo z%OJId4J}P*Hh;4g7ce{;xjBPbvpX-9T&Ht&MB#FtK+0J;;Y6M;G+5rOE00HWOKD^N7nSk_db?`KjIyRPI7 zz2o#!r|0rO3}myXTTD^!`~6KYZT)2xl>g=fC1<8K7kBbY+(T#<^qnfWHHLuS7o=hS z^5t{^&ENwi8s-(wnRe_Z^)-WVKn-rE@I#rIyP|m(xejLTF$Hewk~G!o{QNuvea!#u z9xPua6f|}#tRISp?^uUvNxC8LY}qU;zP}el2cwxRHFldG?8jg&4@4!dh~G6exnt%$ zKamd<{>7!q&yIi#y!E_IqQ^)nblTXG({ACDRjycy_Y3)cXa8PK8qxfjO{=rO#G0_k zPqtR?%0=kw_AUad_GT)X-Gol}TZ&@Jb>+wW?7Z(GnZto{>&6|XbEx|T7V4dYK5ETM z;e&6#5<`JGSd5!1!r7JMLfn#n`3|O%Z@(wQ0Wq})`MUPF{(mQ?7C$B`5#o+lEQL3n z(=*CO@`dHh=MCOxH`_`Mi{0}-Mllw{e>4w2m~p_m-8c~7&CWC=(m~K(ecUtHUmlL( zOs12fr~aTM^|;~+x5iQHw$u>9j+JcE?y&eP(ALG|C}d_12^sqCRlMktxm5?i7ecLx z9f9xOZN2Ne#YEoNp7TrBF2zOkhH4Yh3c_mi79rk$kHsM~sWXE#S*F9i)()bbQ#c}s zzctQ`fEpAF5VLQ%_9F29#NVovvWplT)yqa%%-0E!D;yFq;8SlA#oH5byyQ)Vo)BXD ziUu;r%z={PQ%ejZr(ieM|KaJa;<|pm?(GkPAd=G3-QA5K-Q6kO($YwWbcu9HcejFc zNq2X5*E4>9&;94X6Fu-X?_p;4-fLYeWg+SXgNFDno!z5EX~AcqiuAhoph-tQf4BrQ z!SlUV#UZC^+!%PJhTOv_F+bX94=s5)Nbkpg&>v|`&Og z61mrz$!}NGQwQgZ0w@hVQ}!UMGu`U@WE#~x7hR+wkM5VCLe2=DZytjt#ggAMwx;=X zEF7-)_o;dQ)vprgFzE$_Qm5`q!WH027$(Bsfr<=QqPaq*#@X`TieN40u2XqKysS>nXVJ89 zfas;`EIzJK#6i8WsXOxMlF&udFhX z0Z|<077=$LqG$ku_V#>0{u$Hr=^PzCM2(OeQwXPBRV*>~^U+-PYD73P9PGDa_`qtD}KjlLV>?*|S`Cp!+0 zt3u`*1VXunlt~c&2uz5+1R>7w@#w}w+o$k?m<7trv{#vzA7${AT1&p*-aF)eF%sPh zp0{q|*+-P36;y~RtAn$Nz^E3|9iHP}yqpP=e?qXPD>rRue3l9wMbrz{me!j8n&1>i z&xsx5zgv21Io*})d}iQv61s~`c%D)rZi=NL)W?|oEV{YlzOP=5EsQmcw%@laRcKg~ zxwGSPU}%$Hk*uyt8leLM^VE;C2qYexXP?)14yMO87h9z?GCCIApY-J|-J#889=faK z9$bmF96Ln~78E6FhzmC7KC&#l7~*U%F1V^@Ris9f1w#qPFvU;Yz)JYYCKgIGpv`;R zv}d$$rxxt}77C7&{)@j{)q)A(7ek^-_*NIs0|9(Z8r~RtRdMki(1{1WIMHlH3<3oI zT0!y;sj~8`Woz*O91dzWAcg~lHUQw+vHigYINl&Qkb$J!ge8p1l2t7aUOEGQmW{uR zQgE+U2qK)*1Q+bSf-h0;cQKfIMa`D234^+qn4(HM)zc&H>L#V200+@)&K9f*Kpy@O zUtHo}qViS#t>54lfb)YJWPg7jNMX)FPUrYI0Gj}DU2AJA5aeB6UjB3A0h0|FeL=FM zr%?G2u^I}$rx%D%9Tkp!w8~5!A1wC3O}?Rmo%Lu?8aW!$@n|ZGQsQZ_8mv(yB(dbB zV%&k!`Q{HiN4wX5rjAZ6Sj;z$j^)9-vov7YM1f=Ppsq1L7n?bIo=Jo z*Yn?U&auH)8psE^W%pZgwZ5+Mk~^8`Q32)6R$8WVJ^^82ZW`K#{_GE{@GhimnqyX^JNb2~doAJcrWcnL zD1nJ$>ezmSX&p=F<{vQa14mN>5Fj1_2V-X)4e%$UipSYr$c-u3TreZzv6+24y&cOH zU+~jw^HBS;y0b&|zpltX-$7Z0z1|Rt4_5PiL2DdU5brIAm#gkbm(jL27B}+3cl_nUyPx|< z+q1sMO2RR^{m>S&2Xj0mX=?VS`A6ui<2yI!mxneaA)fDG@LS`*TrO{L_&iB)FDM)w zu{O7C{MLyE#tYL6LGzhBo#uh=A)vw0*t`4m@};?WrR zwkZxZsI11yN7=rz!qbqzH+sKya{YJ$TH&0FXe+dyo|XZ=Kr93r^4C6)FW5-oq{EuS z+qxZzop);dCv@g$MOmUxG^waF*kM9o832h1x5O4m32Wam*YF97_iGdff)dONn!{4bM(P9oar}AHq)oT}ylM>* z$EWe_Lbtt#^c%IrbHv>f&^G%oOe#R|PlY^vqm3K=Fcg`?YsRo% z?b|L{>}RTU5#7^53%`QAR)K=>GAi|yF#I+-{luMrie6GbEvXY9zTwq0lzMUZ=SSbc zLU}J-G~WE+fY+Yks1%`|n_dUe)nVjnW*PkWfF#oX_O;mKn)5k%2MY`C5O-pj2%81B(8`96&;y_c_-fP{Lep#u6ImACtM}5?r)o3 z74PMF(c6BbQI(boE8XuS$pK5b1YB?+&;SndeKHl7L=tbxH6FceBOVt-WfT`%$;k}^ zE*5y4cPy`*cDy`Q{QLDr*K!!XQF!5#xnid4uh)?MpwmwdCHsy9oLyUUQpBV;Z zsZm~q-e3|r;5XFNs5sLP=Sn33FTiFs9}syxl-cG{oM7QUD>^6yNel5AG7@ME@do6~ zSKmHTsivV#+lLX>6us56UZUJ(ofJ~_3LTDo4Z#(Q5FUHDiJUJ#<9dQ!`K}u9(*B;c zD40E*5>lw7Bg4jv2+>|D{^C!5Vs5&M!#OJzT({A#u0Qy^_T|s%Qno!pIAR?;XA~ZW zps!=a$o9Bx=+P%5L`VhO9|d_?yj^5a$WpR5>%Ftc z%N4@UBfEtZcsTQjt%Dw89IVHUs+oQwOoEY)z`6iMN0GTKyIE<#*r6aLeU+yniy}NP zD28niHt;_8lP#9_Jx|m%4Z=^WcwEn+^hgHoeyk zXuAIY<19W<$-aY&T7!|Y@oWl_>8lh$APuI|a&VoW23G0*{{HZ&d>V48ab~G_bQX6b zfh*W~t2@D4=WjAzAEj8)LT49`fX&`mt#<-?`&&zW2&(N_qcau8vo!onR#DUbLguL+ z|HgI3HBU|{p2c`7^)DApmCtCkE&5b$z}igWoF= zi7OUIJ}>l@c$idYO&UXqTFpn981?iEKVJ6HmfyMCED=d0VW{baB z;PwMRk*T_IfSQi3tE+Ra5JSxq`%ja@vWD|4(~!TQe<)Ki1lp*59r_9F+i3hUGBSWh zy>CV1j2-hXj=Ts>V|5MfaOj6B0*4OXQ9F}NZa$i(_3x}gQ#A^_65byr2T%K)j>8)f z=h0s!P8;}9v^LqhyDF_ESAuGe4+o3y6_~X2g6|bZjG2D{*O>YM&1=86DI5hfYYBdr zSYw0Q2kGNYnJG{Zc}nr{x5O+0Eid&SbM^2w5U*M63y>i7;`e&PXNl0=|EC4`mSHYc zTdy6^ub4kEejaW;`^ju^C+f75`SAV@&daCE*0`+Yd-U7Oqm3QuY~}xiOunb1g_|KK z6rs%=M#bYd>Dr(fovW~dB!pkE`}x_pFK`(L7M$TK&cuDb&NuZZ$EKrepMj0Pd{;BZ z7x;$KM6!XbJduFYK>>&vL~EyxavC$gzM!N|2C=~v|JWkxye7|xGI7=pHAM=a$?ZY zhQAiJ%o!K<*s;)X>kyj8$$bO2xJ0<~;3)~R8JE-fP>+}AQkrtuXU+_@>B(Sw{xHKL zBjP{oK;z)_{9>VuTH|JR_;xlzg!96KgToE}8o&2DH}mIxl$Y{fe@$?|7qzsO5#SiE z)!%7x8_+91e#AtN6GDrAyCnK`yZylfSn}FBCW>E{$esj~RghJI|iWSU7qzLa}zr z6Yj1&QW~{|i{z768f0~T5AI}X#DvuY@tRPeCOV=)0HoZ-?e=Y^>o6uHsy5u~9s!xN zZ-`e>Q9hQ_&D}_3_P{hcWmX4OR))NE@b6#Pr35IDckkW}Tq6YlCV#?jLlAe1xJ8AU zrzJfFCFMFl5diQJ0Lh|LZ!-r*@F2+=(C9SjlK^-ToMq-i-?J+!m(>;BJue-$nQ-vl>Y>HWo;~J$AjP-9 ztSs5-G#z`$)YyLYOF8--7B1|a%UwZ@JXee4Lci;y-`kiKpRuPyS#0BtqUYrfz38|Z zp1cpJr^Es+C2cOBbBAb- zGY=1*gp)rp8j&xp8vRjcC5=ECfh?%TfSG$Q>b2z`fM@|;BV9ecJuu`lUam&WZDy-sOsOlSBWFPY3HUR7A3QJ^>WDKc9q)&1D|X2BpPTjS|UIyLP9}+ z0>m%$uf=|a>j+k^`Q;whd}g;<9Qhq@%jU1^k}8J18KrDAE1@caDwmd z?|J$7RD8v*(BF*1OisfCQ-IdL>9M4ak>5KQmT9|2L5Ukl?a)9`CXL;j*7L;Z>=1CH zcZEo6kBLxFX>!X**18Do+MV6`{6y!qaO==$EfALVEx_={fc^!XJ`oWSsRE5hw_ZL# zO9=Ep1w63)v?HN3{i?sDghXGtZ%&D|Ycl^fT4mBR50!caeQ2`X-+9j|_sYTnhkc8( z5iu&hyz3%dBMv3b*3N?T6$kd} z)tCVnVTOBJqs51Ys^{b1OKrWbdzZa+54}W^p2KyqNoKYI#07;pm{5gIvjk<|4y^A` z%DdqZPx0AGDndHYAz&NC?`pKv>-PETO^2JRb$t^HxJS7tDzVgLGnZ&mcCE(ctb>E_ zM~DlgCrJKX&(?0n1-kdwuggwqgZtp)`|&|MYC{8;R16$v&?g+ug9UhMa6LzoD(O%G zy*JH&TbK3M#u&tC~78a^BFco?qxZm}PNO>{9O z1AohRY2hR(#-i$BlvUOkU$)7On^=~fKQ5{d@>Z0eu9n1GPT8M-RL9+p=lyp5*X=a~ zTcCHcc&N3x0nhfRsB=SrG;GtzPF@JES3e5b4Uh|Q;1f68AA*=RrfhjVFK*ikWJ0bF zkG3n#L^JQ&o~A>V8Xs6o_FNXrWZ!cqC8$Z((zbB8X>#HBS{3g*&eDf+% zj+(^Q_Fv43mZs*LyBvEe`^b))SCH>E+qG)O|NJbt`7jy|eHqe%)G)#plk!aSA5le{ zfQ3#^jRBx+krp*P8OJ_ZjuVU(Ft$)O2rmL=V^KkYgd2TiZX7zjE^I$Mt9+Qry_k#5em}$f>yq0e+@|`{Y&)=% z>#1%|+qyM*-bxFB0!;>~#zoLz#5Kbz-$-zV=N7JmgYdrGMPzN`P#3o6`vyN|@3NP# zvco5wro^!~B()M)lBkbDXtxYqu@bdQ-5Bh+wAT%087f%o%oD+dT9pGRBWC%4w;hSq+ zaZ~Wfm`!pjcy0_d!ok&xB0eF3dZYYW=x+z;)ti*GwbO~CiUNZta5YNCIsdKK*||u3 zH{*94D(Di1NdsBk-WGQwj(jL^6ye-@z2)EeRyYi6uur_EMi$Ekq1e&CU)91EoW3AJ z8F;_ywS%p_#J#>ip3P45-;J1yslWZAj;qf3gYzxVS_ej2+TV@c(kp$lBBKl)rM;KI zm-^*KvN%bP)Yp%@4L_5$G^#`$SAWO*F)Zv5@#$&n>}1*U{bD`MR{NRi(HKFDR7qy7F}R?-<&k)|2n9ww?w5*pDpVur`N>NTrlD z)fz~Al#>XMi8B$g>FMn67{xieD5F!*sfr4(a${e(+ySatlz)o zeP^%QjUOSWK{@e@TDo_C6Vw?R`li`f_&LZ(6O2LusS4mJ&o*GB{cAcBq{zoGfaYU?*>g+-ME(!C#XZsQx?)}q{=fZtT3lp>c{=RvC zvDjn2=Z#AArSZxFIs6Qo{*q6IV0P+GCzRgPVVRvT+lyo8;FS?q(E7`v=mO4uEII$E zotz_SRy;wlQJ6yt-OkHWcuNVnH`$R83X>W0`)tp01Af=!ExaIEU(uzZ%~uho zB}@vkQ8)+S#9vtHkf~I;d%p6?|Aam##t> zOIDU|^@Vb-DR`*{L{yFLTwWm@@3D0*n8vhB zd@YQCq#yP<~ekrJ1&W9+&>f`F>q`w)!8vdwy`!r zS1I~(&-V(KJDVL=;Z5a%g}$C10X8-`N&E2Vv8(~6320bFzFI78+K%RA_#R5ek-L=% z4w$e84miD5eCB&2r zD+0`)hE%BoVvUkLJ?wGXLCRb71ZG3=;n5^)Y8!YRS@=jV8Z64*}Kh- z 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 (L&@iubCKZ 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%0AU&O^4K+*mEg~0<` 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%0D93w%X+==Dc@!8A!_ar*d*a>`+UV;T^*%ztDb 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�p8gd{F^iA{M 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�{0ZYMTHA_$=}|z_8dKFJ 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∈A9;Cs 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 literal 0 HcmV?d00001 diff --git a/man/ndi-package.Rd b/man/ndi-package.Rd index e81e0fd..131b2f5 100644 --- a/man/ndi-package.Rd +++ b/man/ndi-package.Rd @@ -9,7 +9,7 @@ Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. } \details{ -The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also (1) compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) compute the aspatial Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (5) compute the aspatial Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, and (6) retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, and (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. Key content of the 'ndi' package include:\cr @@ -17,11 +17,13 @@ Key content of the 'ndi' package include:\cr \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (RI) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. -\code{\link{atkinson}} Computes the aspatial Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +\code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. + +\code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. \code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. -\code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}. +\code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. @@ -31,6 +33,8 @@ Key content of the 'ndi' package include:\cr \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +\code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. + \bold{Pre-formatted U.S. Census Data} \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. diff --git a/man/white.Rd b/man/white.Rd new file mode 100644 index 0000000..813392b --- /dev/null +++ b/man/white.Rd @@ -0,0 +1,91 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/white.R +\name{white} +\alias{white} +\title{Correlation Ratio based on Bell (1954) and White (1986)} +\usage{ +white( + geo_large = "county", + geo_small = "tract", + year = 2020, + subgroup, + omit_NAs = TRUE, + quiet = FALSE, + ... +) +} +\arguments{ +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} + +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} + +\item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} + +\item{subgroup}{Character string specifying the racial/ethnic subgroup(s). See Details for available choices.} + +\item{omit_NAs}{Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE.} + +\item{quiet}{Logical. If TRUE, will display messages about potential missing census information. The default is FALSE.} + +\item{...}{Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics} +} +\value{ +An object of class 'list'. This is a named list with the following components: + +\describe{ +\item{\code{v}}{An object of class 'tbl' for the GEOID, name, and V at specified larger census geographies.} +\item{\code{v_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute V} +} +} +\description{ +Compute the aspatial Correlation Ratio (White) of a selected racial/ethnic subgroup(s) and U.S. geographies. +} +\details{ +This function will compute the aspatial Correlation Ratio (V or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of V for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). + +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +\itemize{ +\item{B03002_002: }{not Hispanic or Latino "NHoL"} +\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +\item{B03002_012: }{Hispanic or Latino "HoL"} +\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +} + +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. + +V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from 0 to 1. + +Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +} +\examples{ +\dontrun{ +# Wrapped in \dontrun{} because these examples require a Census API key. + + # Isolation of non-Hispanic Black and non-Hispanic white populations + ## of census tracts within Georgia, U.S.A., counties (2020) + white(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, + subgroup = "NHoLB") + +} + +} +\seealso{ +\code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +} diff --git a/tests/testthat/test-bell.R b/tests/testthat/test-bell.R new file mode 100644 index 0000000..2f50bcc --- /dev/null +++ b/tests/testthat/test-bell.R @@ -0,0 +1,48 @@ +context("bell") + +################# +# bell testthat # +################# + +test_that("bell throws error with invalid arguments", { + + # Unavailable geography + expect_error(bell(geo_small = "zcta", state = "DC", year = 2020, + subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error(bell(geo_large = "block group", state = "DC", year = 2020, + subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + + # Unavailable year + expect_error(bell(state = "DC", year = 2005, + subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + + # Unavailable subgroup + expect_error(bell(state = "DC", year = 2020, + subgroup = "terran", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error(bell(state = "DC", year = 2020, + subgroup = "NHoLB", subgroup_ixn = "terran", quiet = TRUE)) + + skip_if(Sys.getenv("CENSUS_API_KEY") == "") + + # Incorrect state + expect_error(bell(state = "AB", year = 2020, + subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + +} +) + +test_that("bell works", { + + skip_if(Sys.getenv("CENSUS_API_KEY") == "") + + expect_silent(bell(state = "DC", year = 2020, + subgroup = c("NHoLB", "HoLB"), subgroup_ixn = c("NHoLW", "HoLW"))) + + expect_silent(bell(state = "DC", year = 2020, + subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + + expect_silent(bell(state = "DC", year = 2020, + subgroup = c("NHoLB", "HoLB"), subgroup_ixn = c("NHoLW", "HoLW"), quiet = TRUE)) + +} +) diff --git a/tests/testthat/test-white.R b/tests/testthat/test-white.R new file mode 100644 index 0000000..07e618d --- /dev/null +++ b/tests/testthat/test-white.R @@ -0,0 +1,46 @@ +context("white") + +################## +# white testthat # +################## + +test_that("white throws error with invalid arguments", { + + # Unavailable geography + expect_error(white(geo_small = "zcta", state = "DC", year = 2020, + subgroup = "NHoLB", quiet = TRUE)) + expect_error(white(geo_large = "block group", state = "DC", year = 2020, + subgroup = "NHoLB", quiet = TRUE)) + + # Unavailable year + expect_error(white(state = "DC", year = 2005, + subgroup = "NHoLB", quiet = TRUE)) + + # Unavailable subgroup + expect_error(white(state = "DC", year = 2020, + subgroup = "terran", quiet = TRUE)) + + skip_if(Sys.getenv("CENSUS_API_KEY") == "") + + # Incorrect state + expect_error(white(state = "AB", year = 2020, + subgroup = "NHoLB", quiet = TRUE)) + +} +) + +test_that("white works", { + + skip_if(Sys.getenv("CENSUS_API_KEY") == "") + + expect_silent(white(state = "DC", year = 2020, + subgroup = c("NHoLB", "HoLB"))) + + expect_silent(white(state = "DC", year = 2020, + subgroup = "NHoLB", quiet = TRUE)) + + expect_silent(white(state = "DC", year = 2020, + subgroup = c("NHoLB", "HoLB"), quiet = TRUE)) + +} +) diff --git a/vignettes/vignette.Rmd b/vignettes/vignette.Rmd index 551938b..41d338e 100644 --- a/vignettes/vignette.Rmd +++ b/vignettes/vignette.Rmd @@ -453,15 +453,15 @@ The process to compute a US-standardized NDI (Powell-Wiley) took about `r round( Since version v0.1.1, the `ndi` package can compute additional metrics of socio-economic deprivation and disparity beyond neighborhood deprivation indices, including: -1. `anthopolos()` function that computes the Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://www.doi.org/10.1016/j.sste.2011.06.002) with data from the ACS-5. -2. `bravo()` function that computes the Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://www.doi.org/10.3390/ijerph18179384) with data from the ACS-5. -3. `gini()` function that retrieves the Gini Index based on [Gini (1921)](https://www.doi.org/10.2307/2223319) from the ACS-5. -4. `krieger()` function that computes the Index of Concentration at the Extremes based on based on [Feldman et al. (2015)](https://www.doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://www.doi.org/10.2105/AJPH.2015.302955) with data from the ACS-5. 5. `duncan()` function that computes the Dissimilarity Index based on on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) with data from the ACS-5. +1. `anthopolos()` function that computes the Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) with data from the ACS-5. +2. `bravo()` function that computes the Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) with data from the ACS-5. +3. `gini()` function that retrieves the Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319) from the ACS-5. +4. `krieger()` function that computes the Index of Concentration at the Extremes based on based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) with data from the ACS-5. 5. `duncan()` function that computes the Dissimilarity Index based on on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) with data from the ACS-5. 6. `atkinson()` function that computes the Atkinson Index based on on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) with data from the ACS-5. #### Compute Racial Isolation Index (RI) -Compute the RI (Anthopolos) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Anthopolos et al. (2011)](https://www.doi.org/10.1016/j.sste.2011.06.002) that assessed the racial isolation of the population that identifies as non-Hispanic or Latino, Black or African American alone. Multiple racial/ethnic subgroups are available in the `anthopolos()` function, including: +Compute the spatial RI (Anthopolos) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) that assessed the racial isolation of the population that identifies as non-Hispanic or Latino, Black or African American alone. Multiple racial/ethnic subgroups are available in the `anthopolos()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -486,7 +486,7 @@ Compute the RI (Anthopolos) values (2006-2010 5-year ACS) for North Carolina, U. | B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | | B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | -A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., Not Hispanic or Latino, Black or African American alone) will have an RI value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or Latino, Black or African American alone) will have an RI value close to 0. +A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., Not Hispanic or Latino, Black or African American alone) will have an RI (Anthopolos) value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or Latino, Black or African American alone) will have an RI (Anthopolos) value close to 0. ```{r anthopolos_prep, results = 'hide'} anthopolos2010NC <- ndi::anthopolos(state = "NC", year = 2010, subgroup = "NHoLB") @@ -522,10 +522,10 @@ ggplot2::ggplot() + subtitle = "NC census tracts (not corrected for edge effects)") ``` -The current version of the `ndi` package does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +The current version of the `ndi` package does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI (Anthopolos) values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI (Anthopolos) for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. ```{r anthopolos_edge_prep, results = 'hide'} -# Compute RI for all census tracts in neighboring states +# Compute RI (Anthopolos) for all census tracts in neighboring states anthopolos2010GNSTV <- ndi::anthopolos(state = c("GA", "NC", "SC", "TN", "VA"), year = 2010, subgroup = "NHoLB") @@ -565,7 +565,7 @@ ggplot2::ggplot() + #### Compute Educational Isolation Index (EI) -Compute the EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Bravo et al. (2021)](https://www.doi.org/10.3390/ijerph18179384) that assessed the educational isolation of the population without a four-year college degree. Multiple educational attainment categories are available in the `bravo()` function, including: +Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) that assessed the educational isolation of the population without a four-year college degree. Multiple educational attainment categories are available in the `bravo()` function, including: | ACS table source | educational attainment category | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -576,7 +576,7 @@ Compute the EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., | B06009_006 | graduate or professional degree | GoPD | Note: The ACS-5 data (2005-2009) uses the "B15002" question. -A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a four-year college degree or more) will have an EI value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., with a four-year college degree) will have an EI value close to 0. +A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a four-year college degree or more) will have an EI (Bravo) value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., with a four-year college degree) will have an EI (Bravo) value close to 0. ```{r bravo_prep, results = 'hide'} bravo2010NC <- ndi::bravo(state = "NC", year = 2010, subgroup = c("LtHS", "HSGiE", "SCoAD")) @@ -589,12 +589,12 @@ tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) # Obtain the 2010 counties from the "tigris" package county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE) -# Join the RI (Bravo) values to the census tract geometry +# Join the EI (Bravo) values to the census tract geometry NC2010bravo <- dplyr::left_join(tract2010NC, bravo2010NC$ei, by = "GEOID") ``` ```{r bravo_plot, fig.height = 4, fig.width = 7} -# Visualize the RI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts +# Visualize the EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts ggplot2::ggplot() + ggplot2::geom_sf(data = NC2010bravo, ggplot2::aes(fill = EI), @@ -616,9 +616,9 @@ Can correct one source of edge effect in the same manner as shown for the RI (An #### Retrieve the Gini Index -Retrieve the Gini Index values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Gini (1921)](https://www.doi.org/10.2307/2223319), and the `gini()` function retrieves the estimate from the ACS-5. +Retrieve the aspatial Gini Index values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Gini (1921)](https://doi.org/10.2307/2223319), and the `gini()` function retrieves the estimate from the ACS-5. -According to the [U.S. Census Bureau](https://www.census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html): "The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution." +According to the [U.S. Census Bureau](https://census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html): "The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution." ```{r gini_prep, results = 'hide'} gini2010NC <- ndi::gini(state = "NC", year = 2010) @@ -656,7 +656,7 @@ ggplot2::ggplot() + ### Index of Concentration at the Extremes (ICE) -Compute the Index of Concentration at the Extremes values (2006-2010 5-year ACS) for Wayne County, Michigan, U.S.A., census tracts. Wayne County is the home of Detroit, Michigan, a highly segregated city in the U.S. This metric is based on [Feldman et al. (2015)](https://www.doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://www.doi.org/10.2105/AJPH.2015.302955) who expanded the metric designed by Massey in a chapter of [Booth & Crouter (2001)](https://www.doi.org/10.4324/9781410600141) initially designed for residential segregation. The `krieger()` function computes five ICE metrics using the following ACS-5 groups: +Compute the aspatial Index of Concentration at the Extremes values (2006-2010 5-year ACS) for Wayne County, Michigan, U.S.A., census tracts. Wayne County is the home of Detroit, Michigan, a highly segregated city in the U.S. This metric is based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) who expanded the metric designed by Massey in a chapter of [Booth & Crouter (2001)](https://doi.org/10.4324/9781410600141) initially designed for residential segregation. The `krieger()` function computes five ICE metrics using the following ACS-5 groups: | ACS table group | ICE metric | Comparison | -------------- | ------------- | ---------------- | @@ -666,7 +666,7 @@ Compute the Index of Concentration at the Extremes values (2006-2010 5-year ACS) | B19001 & B19001B & B19001H | Income and race/ethnicity combined, "ICE_wbinc" | white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile | | B19001 & B19001H | Income and race/ethnicity combined, "ICE_wpcinc"| white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile | -ICE metrics can range in value from −1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. +ICE (Krieger) metrics can range in value from −1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. ```{r krieger_prep, results = 'hide'} ice2020WC <- krieger(state = "MI", county = "Wayne", year = 2010) @@ -676,7 +676,7 @@ tract2010WC <- tigris::tracts(state = "MI", county = "Wayne", year = 2010, cb = # Remove first 9 characters from GEOID for compatibility with tigris information tract2010WC$GEOID <- substring(tract2010WC$GEO_ID, 10) -# Join the ICEs (Krieger) values to the census tract geometry +# Join the ICE (Krieger) values to the census tract geometry ice2020WC <- dplyr::left_join(tract2010WC, ice2020WC$ice, by = "GEOID") ``` @@ -751,7 +751,7 @@ ggplot2::ggplot() + #### Compute racial/ethnic Dissimilarity Index (DI) -Compute the DI (Duncan) values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties from census tracts. This metric is based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) that assessed the racial/ethnic isolation of students that identify as non-Hispanic or Latino, Black or African American alone compared to students that identify as non-Hispanic or Latino, white alone between schools and school districts. Multiple racial/ethnic subgroups are available in the `duncan()` function, including: +Compute the aspatial racial/ethnic DI (Duncan) values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties from census tracts. This metric is based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) that assessed the racial/ethnic isolation of students that identify as non-Hispanic or Latino, Black or African American alone compared to students that identify as non-Hispanic or Latino, white alone between schools and school districts. Multiple racial/ethnic subgroups are available in the `duncan()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` or `subgroup_ref` arguments | | -------------- | ------------- | ---------------- | @@ -776,7 +776,7 @@ Compute the DI (Duncan) values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., | B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | | B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | -DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The DI metric can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. +DI (Duncan) is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. DI (Duncan) can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. ```{r duncan_prep, results = 'hide'} duncan2010PA <- ndi::duncan(geo_large = "county", geo_small = "tract", state = "PA", @@ -810,9 +810,9 @@ ggplot2::ggplot() + subtitle = "Black non-Hispanic vs. white non-Hispanic") ``` -#### Compute Atkinson Index (AI) +#### Compute aspatial income or racial/ethnic Atkinson Index (AI) -Compute the AI (Atkinson) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on [Atkinson (1970)](https://doi.org/10.2307/2088328) that assessed the distribution of income within 12 counties but has since been adapted to study racial/ethnic segregation (see [James & Taeuber 1985](https://doi.org/10.2307/270845)). Multiple racial/ethnic subgroups are available in the `atkinson()` function, including: +Compute the aspatial income or racial/ethnic AI (Atkinson) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on [Atkinson (1970)](https://doi.org/10.2307/2088328) that assessed the distribution of income within 12 counties but has since been adapted to study racial/ethnic segregation (see [James & Taeuber 1985](https://doi.org/10.2307/270845)). To compare median household income, specify `subgroup = "MedHHInc"` which will use the ACS-5 variable "B19013_001" in the computation. Multiple racial/ethnic subgroups are available in the `atkinson()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -837,11 +837,9 @@ Compute the AI (Atkinson) values (2017-2021 5-year ACS) for Kentucky, U.S.A., co | B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | | B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | -To compare median household income, specify `subgroup = "MedHHInc"` which will use the ACS-5 variable "B19013_001" in the computation. +AI (Atkinson) is a measure of the inequality and, in the context of residential race/ethnicity, segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. AI (Atkinson) can range in value from 0 to 1 and smaller values of the index indicate lower levels of inequality (e.g., less segregation). -AI is a measure of the inequality and, in the context of residential race/ethnicity, segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 and smaller values of the index indicate lower levels of inequality (e.g., less segregation). - -AI is sensitive to the choice of `epsilon` argument or the shape parameter that determines how to weight the increments to inequality (segregation) contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The `epsilon` argument must have values between 0 and 1.0. For `0 <= epsilon < 0.5` or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For `0.5 < epsilon <= 1.0` or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If `epsilon = 0.5` (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of [Saint-Jacques et al. (2020)](https://www.doi.org/10.48550/arXiv.2002.05819) for one method to select `epsilon`. We choose `epsilon = 0.67` in the example below: +AI (Atkinson) is sensitive to the choice of `epsilon` argument or the shape parameter that determines how to weight the increments to inequality (segregation) contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The `epsilon` argument must have values between 0 and 1.0. For `0 <= epsilon < 0.5` or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For `0.5 < epsilon <= 1.0` or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If `epsilon = 0.5` (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of [Saint-Jacques et al. (2020)](https://doi.org/10.48550/arXiv.2002.05819) for one method to select `epsilon`. We choose `epsilon = 0.67` in the example below: ```{r atkinson_prep, results = 'hide'} atkinson2021KY <- ndi::atkinson(geo_large = "county", geo_small = "block group", state = "KY", @@ -873,6 +871,124 @@ ggplot2::ggplot() + subtitle = expression(paste("Black non-Hispanic (", epsilon, " = 0.67)"))) ``` +#### Compute racial/ethnic Isolation Index (II) + +Compute the aspatial racial/ethnic II (Bell) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and adapted by [Bell (1954)](https://doi.org/10.2307/2574118). Multiple racial/ethnic subgroups are available in the `bell()` function, including: + +| ACS table source | racial/ethnic subgroup | character for `subgroup` or or `subgroup_ref` argument | +| -------------- | ------------- | ---------------- | +| B03002_002 | not Hispanic or Latino | NHoL | +| B03002_003 | not Hispanic or Latino, white alone | NHoLW | +| B03002_004 | not Hispanic or Latino, Black or African American alone | NHoLB | +| B03002_005 | not Hispanic or Latino, American Indian and Alaska Native alone | NHoLAIAN | +| B03002_006 | not Hispanic or Latino, Asian alone | NHoLA | +| B03002_007 | not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone | NHoLNHOPI | +| B03002_008 | not Hispanic or Latino, some other race alone | NHoLSOR | +| B03002_009 | not Hispanic or Latino, two or more races | NHoLTOMR | +| B03002_010 | not Hispanic or Latino, two races including some other race | NHoLTRiSOR | +| B03002_011 | not Hispanic or Latino, two races excluding some other race, and three or more races | NHoLTReSOR | +| B03002_012 | Hispanic or Latino | HoL | +| B03002_013 | Hispanic or Latino, white alone | HoLW | +| B03002_014 | Hispanic or Latino, Black or African American alone | HoLB | +| B03002_015 | Hispanic or Latino, American Indian and Alaska Native alone | HoLAIAN | +| B03002_016 | Hispanic or Latino, Asian alone | HoLA | +| B03002_017 | Hispanic or Latino, Native Hawaiian and other Pacific Islander alone | HoLNHOPI | +| B03002_018 | Hispanic or Latino, some other race alone | HoLSOR | +| B03002_019 | Hispanic or Latino, two or more races | HoLTOMR | +| B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | +| B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | + +II (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. II (Bell) can range in value from 0 to 1. + +```{r bell_prep, results = 'hide'} +bell2021KY <- ndi::bell(geo_large = "county", geo_small = "tract", state = "KY", + year = 2021, subgroup = "NHoLB", subgroup_ixn = "NHoLW") + +# Obtain the 2021 census counties from the "tigris" package +county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) + +# Join the II (Bell) values to the county geometry +KY2021bell <- dplyr::left_join(county2021KY, bell2021KY$ii, by = "GEOID") +``` + +```{r bell_plot, fig.height = 4, fig.width = 7} +# Visualize the II (Bell) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties +ggplot2::ggplot() + + ggplot2::geom_sf(data = KY2021bell, + ggplot2::aes(fill = II), + size = 0.05, + color = "white") + + ggplot2::geom_sf(data = county2021KY, + fill = "transparent", + color = "white", + size = 0.2) + + ggplot2::theme_minimal() + + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + + ggplot2::labs(fill = "Index (Continuous)", + caption = "Source: U.S. Census ACS 2017-2021 estimates") + + ggplot2::ggtitle("Isolation Index (Bell)\nKentucky census tracts to counties", + subtitle = "Black non-Hispanic vs. white non-Hispanic") +``` + +#### Compute Correlation Ratio (V) + +Compute the aspatial racial/ethnic V (White) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census tracts. This metric is based on [Bell (1954)](https://doi.org/10.2307/2574118) and adapted by [White (1986)](https://doi.org/10.2307/3644339). Multiple racial/ethnic subgroups are available in the `white()` function, including: + +| ACS table source | racial/ethnic subgroup | character for `subgroup` argument | +| -------------- | ------------- | ---------------- | +| B03002_002 | not Hispanic or Latino | NHoL | +| B03002_003 | not Hispanic or Latino, white alone | NHoLW | +| B03002_004 | not Hispanic or Latino, Black or African American alone | NHoLB | +| B03002_005 | not Hispanic or Latino, American Indian and Alaska Native alone | NHoLAIAN | +| B03002_006 | not Hispanic or Latino, Asian alone | NHoLA | +| B03002_007 | not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone | NHoLNHOPI | +| B03002_008 | not Hispanic or Latino, some other race alone | NHoLSOR | +| B03002_009 | not Hispanic or Latino, two or more races | NHoLTOMR | +| B03002_010 | not Hispanic or Latino, two races including some other race | NHoLTRiSOR | +| B03002_011 | not Hispanic or Latino, two races excluding some other race, and three or more races | NHoLTReSOR | +| B03002_012 | Hispanic or Latino | HoL | +| B03002_013 | Hispanic or Latino, white alone | HoLW | +| B03002_014 | Hispanic or Latino, Black or African American alone | HoLB | +| B03002_015 | Hispanic or Latino, American Indian and Alaska Native alone | HoLAIAN | +| B03002_016 | Hispanic or Latino, Asian alone | HoLA | +| B03002_017 | Hispanic or Latino, Native Hawaiian and other Pacific Islander alone | HoLNHOPI | +| B03002_018 | Hispanic or Latino, some other race alone | HoLSOR | +| B03002_019 | Hispanic or Latino, two or more races | HoLTOMR | +| B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | +| B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | + +V (White) removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V (White) can range in value from 0 to 1. + +```{r white_prep, results = 'hide'} +white2021KY <- ndi::white(geo_large = "county", geo_small = "tract", state = "KY", + year = 2021, subgroup = "NHoLB") + +# Obtain the 2021 census counties from the "tigris" package +county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) + +# Join the V (White) values to the county geometry +KY2021white <- dplyr::left_join(county2021KY, white2021KY$v, by = "GEOID") +``` + +```{r white_plot, fig.height = 4, fig.width = 7} +# Visualize the V (White) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties +ggplot2::ggplot() + + ggplot2::geom_sf(data = KY2021white, + ggplot2::aes(fill = V), + size = 0.05, + color = "white") + + ggplot2::geom_sf(data = county2021KY, + fill = "transparent", + color = "white", + size = 0.2) + + ggplot2::theme_minimal() + + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + + ggplot2::labs(fill = "Index (Continuous)", + caption = "Source: U.S. Census ACS 2017-2021 estimates") + + ggplot2::ggtitle("Correlation Ratio (White)\nKentucky census tracts to counties", + subtitle = "Black non-Hispanic") +``` + ```{r system} sessionInfo() ``` diff --git a/vignettes/vignette.html b/vignettes/vignette.html index f8613a6..830f9de 100644 --- a/vignettes/vignette.html +++ b/vignettes/vignette.html @@ -12,7 +12,7 @@ - + ndi: Neighborhood Deprivation Indices @@ -340,7 +340,7 @@

ndi: Neighborhood Deprivation Indices

Ian D. Buller (GitHub: @idblr)

-

2022-12-09

+

2023-01-19

@@ -1058,17 +1058,17 @@

Additional metrics socio-economic deprivation and disparity

neighborhood deprivation indices, including:

Compute Racial Isolation Index (RI)

-

Compute the RI (Anthopolos) values (2006-2010 5-year ACS) for North -Carolina, U.S.A., census tracts. This metric is based on Anthopolos et +

Compute the spatial RI (Anthopolos) values (2006-2010 5-year ACS) for +North Carolina, U.S.A., census tracts. This metric is based on Anthopolos et al. (2011) that assessed the racial isolation of the population that identifies as non-Hispanic or Latino, Black or African American alone. Multiple racial/ethnic subgroups are available in the @@ -1207,10 +1207,11 @@

Compute Racial Isolation Index (RI)

A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., Not Hispanic or Latino, Black or African American alone) will -have an RI value close to 1. In contrast, a census geography (and its -neighbors) that is nearly none of its population who identify with the -specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or Latino, -Black or African American alone) will have an RI value close to 0.

+have an RI (Anthopolos) value close to 1. In contrast, a census +geography (and its neighbors) that is nearly none of its population who +identify with the specified race/ethnicity subgroup(s) (e.g., not Not +Hispanic or Latino, Black or African American alone) will have an RI +(Anthopolos) value close to 0.

anthopolos2010NC <- ndi::anthopolos(state = "NC", year = 2010, subgroup = "NHoLB")
 
 # Obtain the 2010 census tracts from the "tigris" package
@@ -1243,12 +1244,12 @@ 

Compute Racial Isolation Index (RI)

The current version of the ndi package does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have -few neighboring census geographies, and RI values in these census -geographies may be unstable. A stop-gap solution for the former source -of edge effect is to compute the RI for neighboring census geographies -(i.e., the states bordering a study area of interest) and then use the -estimates of the study area of interest.

-
# Compute RI for all census tracts in neighboring states
+few neighboring census geographies, and RI (Anthopolos) values in these
+census geographies may be unstable. A stop-gap solution for the former
+source of edge effect is to compute the RI (Anthopolos) for neighboring
+census geographies (i.e., the states bordering a study area of interest)
+and then use the estimates of the study area of interest.

+
# Compute RI (Anthopolos) for all census tracts in neighboring states
 anthopolos2010GNSTV <- ndi::anthopolos(state = c("GA", "NC", "SC", "TN", "VA"),
                                      year = 2010, subgroup = "NHoLB")
 
@@ -1285,12 +1286,11 @@ 

Compute Racial Isolation Index (RI)

Compute Educational Isolation Index (EI)

-

Compute the EI (Bravo) values (2006-2010 5-year ACS) for North -Carolina, U.S.A., census tracts. This metric is based on Bravo et -al. (2021) that assessed the educational isolation of the population -without a four-year college degree. Multiple educational attainment -categories are available in the bravo() function, -including:

+

Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for +North Carolina, U.S.A., census tracts. This metric is based on Bravo et al. (2021) +that assessed the educational isolation of the population without a +four-year college degree. Multiple educational attainment categories are +available in the bravo() function, including:

  1. anthopolos() function that computes the Racial -Isolation Index (RI) based on Anthopolos et +Isolation Index (RI) based on Anthopolos et al. (2011) with data from the ACS-5.
  2. bravo() function that computes the Educational -Isolation Index (EI) based on Bravo et -al. (2021) with data from the ACS-5.
  3. +Isolation Index (EI) based on Bravo et al. (2021) +with data from the ACS-5.
  4. gini() function that retrieves the Gini Index based on -Gini (1921) from the +Gini (1921) from the ACS-5.
  5. krieger() function that computes the Index of -Concentration at the Extremes based on based on Feldman et -al. (2015) and Krieger et +Concentration at the Extremes based on based on Feldman et +al. (2015) and Krieger et al. (2016) with data from the ACS-5. 5. duncan() function that computes the Dissimilarity Index based on on Duncan & Duncan (1955) with data from the ACS-5.
  6. @@ -1078,8 +1078,8 @@

    Additional metrics socio-economic deprivation and disparity

@@ -1335,10 +1335,11 @@

Compute Educational Isolation Index (EI)

Note: The ACS-5 data (2005-2009) uses the “B15002” question.

A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a -four-year college degree or more) will have an EI value close to 1. In -contrast, a census geography (and its neighbors) that is nearly none of -its population with the specified educational attainment category (e.g., -with a four-year college degree) will have an EI value close to 0.

+four-year college degree or more) will have an EI (Bravo) value close to +1. In contrast, a census geography (and its neighbors) that is nearly +none of its population with the specified educational attainment +category (e.g., with a four-year college degree) will have an EI (Bravo) +value close to 0.

bravo2010NC <- ndi::bravo(state = "NC", year = 2010, subgroup = c("LtHS", "HSGiE", "SCoAD"))
 
 # Obtain the 2010 census tracts from the "tigris" package
@@ -1349,9 +1350,9 @@ 

Compute Educational Isolation Index (EI)

# Obtain the 2010 counties from the "tigris" package county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE) -# Join the RI (Bravo) values to the census tract geometry +# Join the EI (Bravo) values to the census tract geometry NC2010bravo <- dplyr::left_join(tract2010NC, bravo2010NC$ei, by = "GEOID")
-
# Visualize the RI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
+
# Visualize the EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
 ggplot2::ggplot() + 
   ggplot2::geom_sf(data = NC2010bravo, 
                    ggplot2::aes(fill = EI),
@@ -1373,10 +1374,10 @@ 

Compute Educational Isolation Index (EI)

Retrieve the Gini Index

-

Retrieve the Gini Index values (2006-2010 5-year ACS) for North -Carolina, U.S.A., census tracts. This metric is based on Gini (1921), and the +

Retrieve the aspatial Gini Index values (2006-2010 5-year ACS) for +North Carolina, U.S.A., census tracts. This metric is based on Gini (1921), and the gini() function retrieves the estimate from the ACS-5.

-

According to the U.S. +

According to the U.S. Census Bureau: “The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income @@ -1419,14 +1420,14 @@

Retrieve the Gini Index

Index of Concentration at the Extremes (ICE)

-

Compute the Index of Concentration at the Extremes values (2006-2010 -5-year ACS) for Wayne County, Michigan, U.S.A., census tracts. Wayne -County is the home of Detroit, Michigan, a highly segregated city in the -U.S. This metric is based on Feldman et -al. (2015) and Krieger et +

Compute the aspatial Index of Concentration at the Extremes values +(2006-2010 5-year ACS) for Wayne County, Michigan, U.S.A., census +tracts. Wayne County is the home of Detroit, Michigan, a highly +segregated city in the U.S. This metric is based on Feldman et +al. (2015) and Krieger et al. (2016) who expanded the metric designed by Massey in a chapter -of Booth & -Crouter (2001) initially designed for residential segregation. The +of Booth & Crouter +(2001) initially designed for residential segregation. The krieger() function computes five ICE metrics using the following ACS-5 groups:

@@ -1472,12 +1473,13 @@

Index of Concentration at the Extremes (ICE)

-

ICE metrics can range in value from −1 (most deprived) to 1 (most -privileged). A value of 0 can thus represent two possibilities: (1) none -of the residents are in the most privileged or most deprived categories, -or (2) an equal number of persons are in the most privileged and most -deprived categories, and in both cases indicates that the area is not -dominated by extreme concentrations of either of the two groups.

+

ICE (Krieger) metrics can range in value from −1 (most deprived) to 1 +(most privileged). A value of 0 can thus represent two possibilities: +(1) none of the residents are in the most privileged or most deprived +categories, or (2) an equal number of persons are in the most privileged +and most deprived categories, and in both cases indicates that the area +is not dominated by extreme concentrations of either of the two +groups.

ice2020WC <- krieger(state = "MI", county = "Wayne", year = 2010)
 
 # Obtain the 2010 census tracts from the "tigris" package
@@ -1485,7 +1487,7 @@ 

Index of Concentration at the Extremes (ICE)

# Remove first 9 characters from GEOID for compatibility with tigris information tract2010WC$GEOID <- substring(tract2010WC$GEO_ID, 10) -# Join the ICEs (Krieger) values to the census tract geometry +# Join the ICE (Krieger) values to the census tract geometry ice2020WC <- dplyr::left_join(tract2010WC, ice2020WC$ice, by = "GEOID")
# Plot ICE for Income
 ggplot2::ggplot() + 
@@ -1556,15 +1558,15 @@ 

Index of Concentration at the Extremes (ICE)

Compute racial/ethnic Dissimilarity Index (DI)

-

Compute the DI (Duncan) values (2006-2010 5-year ACS) for -Pennsylvania, U.S.A., counties from census tracts. This metric is based -on Duncan & Duncan -(1955) that assessed the racial/ethnic isolation of students that -identify as non-Hispanic or Latino, Black or African American alone -compared to students that identify as non-Hispanic or Latino, white -alone between schools and school districts. Multiple racial/ethnic -subgroups are available in the duncan() function, -including:

+

Compute the aspatial racial/ethnic DI (Duncan) values (2006-2010 +5-year ACS) for Pennsylvania, U.S.A., counties from census tracts. This +metric is based on Duncan +& Duncan (1955) that assessed the racial/ethnic isolation of +students that identify as non-Hispanic or Latino, Black or African +American alone compared to students that identify as non-Hispanic or +Latino, white alone between schools and school districts. Multiple +racial/ethnic subgroups are available in the duncan() +function, including:

@@ -1686,10 +1688,10 @@

Compute racial/ethnic Dissimilarity Index (DI)

-

DI is a measure of the evenness of racial/ethnic residential +

DI (Duncan) is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones -within which the smaller geographical areas are located. The DI metric -can range in value from 0 to 1 and represents the proportion of +within which the smaller geographical areas are located. DI (Duncan) can +range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation.

@@ -1721,14 +1723,17 @@

Compute racial/ethnic Dissimilarity Index (DI)

subtitle = "Black non-Hispanic vs. white non-Hispanic")

-
-

Compute Atkinson Index (AI)

-

Compute the AI (Atkinson) values (2017-2021 5-year ACS) for Kentucky, -U.S.A., counties from census block groups. This metric is based on Atkinson (1970) that assessed +

+

Compute aspatial income or racial/ethnic Atkinson Index (AI)

+

Compute the aspatial income or racial/ethnic AI (Atkinson) values +(2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block +groups. This metric is based on Atkinson (1970) that assessed the distribution of income within 12 counties but has since been adapted -to study racial/ethnic segregation (see James & Taeuber 1985). -Multiple racial/ethnic subgroups are available in the -atkinson() function, including:

+to study racial/ethnic segregation (see James & Taeuber 1985). To +compare median household income, specify +subgroup = "MedHHInc" which will use the ACS-5 variable +“B19013_001” in the computation. Multiple racial/ethnic subgroups are +available in the atkinson() function, including:

@@ -1849,22 +1854,20 @@

Compute Atkinson Index (AI)

-

To compare median household income, specify -subgroup = "MedHHInc" which will use the ACS-5 variable -“B19013_001” in the computation.

-

AI is a measure of the inequality and, in the context of residential -race/ethnicity, segregation when comparing smaller geographical areas to -larger ones within which the smaller geographical areas are located. The -AI metric can range in value from 0 to 1 and smaller values of the index -indicate lower levels of inequality (e.g., less segregation).

-

AI is sensitive to the choice of epsilon argument or the -shape parameter that determines how to weight the increments to -inequality (segregation) contributed by different proportions of the -Lorenz curve. A user must explicitly decide how heavily to weight -smaller geographical units at different points on the Lorenz curve -(i.e., whether the index should take greater account of differences -among areas of over- or under-representation). The epsilon -argument must have values between 0 and 1.0. For +

AI (Atkinson) is a measure of the inequality and, in the context of +residential race/ethnicity, segregation when comparing smaller +geographical areas to larger ones within which the smaller geographical +areas are located. AI (Atkinson) can range in value from 0 to 1 and +smaller values of the index indicate lower levels of inequality (e.g., +less segregation).

+

AI (Atkinson) is sensitive to the choice of epsilon +argument or the shape parameter that determines how to weight the +increments to inequality (segregation) contributed by different +proportions of the Lorenz curve. A user must explicitly decide how +heavily to weight smaller geographical units at different points on the +Lorenz curve (i.e., whether the index should take greater account of +differences among areas of over- or under-representation). The +epsilon argument must have values between 0 and 1.0. For 0 <= epsilon < 0.5 or less “inequality-averse,” smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to @@ -1874,7 +1877,7 @@

Compute Atkinson Index (AI)

subgroup proportion of the larger geographical unit contribute more to inequality (“under-representation”). If epsilon = 0.5 (the default), units of over- and under-representation contribute equally to -the index. See Section 2.3 of Saint-Jacques et +the index. See Section 2.3 of Saint-Jacques et al. (2020) for one method to select epsilon. We choose epsilon = 0.67 in the example below:

atkinson2021KY <- ndi::atkinson(geo_large = "county", geo_small = "block group", state = "KY",
@@ -1902,7 +1905,330 @@ 

Compute Atkinson Index (AI)

ggplot2::ggtitle("Atkinson Index (Atkinson)\nKentucky census block groups to counties", subtitle = expression(paste("Black non-Hispanic (", epsilon, " = 0.67)")))

-
sessionInfo()
+
+
+

Compute racial/ethnic Isolation Index (II)

+

Compute the aspatial racial/ethnic II (Bell) values (2017-2021 5-year +ACS) for Kentucky, U.S.A., counties from census block groups. This +metric is based on Shevky & Williams (1949; +ISBN-13:978-0-837-15637-8) and adapted by Bell (1954). Multiple +racial/ethnic subgroups are available in the bell() +function, including:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ACS table sourceracial/ethnic subgroupcharacter for subgroup or or subgroup_ref +argument
B03002_002not Hispanic or LatinoNHoL
B03002_003not Hispanic or Latino, white aloneNHoLW
B03002_004not Hispanic or Latino, Black or African American aloneNHoLB
B03002_005not Hispanic or Latino, American Indian and Alaska Native aloneNHoLAIAN
B03002_006not Hispanic or Latino, Asian aloneNHoLA
B03002_007not Hispanic or Latino, Native Hawaiian and Other Pacific Islander +aloneNHoLNHOPI
B03002_008not Hispanic or Latino, some other race aloneNHoLSOR
B03002_009not Hispanic or Latino, two or more racesNHoLTOMR
B03002_010not Hispanic or Latino, two races including some other raceNHoLTRiSOR
B03002_011not Hispanic or Latino, two races excluding some other race, and +three or more racesNHoLTReSOR
B03002_012Hispanic or LatinoHoL
B03002_013Hispanic or Latino, white aloneHoLW
B03002_014Hispanic or Latino, Black or African American aloneHoLB
B03002_015Hispanic or Latino, American Indian and Alaska Native aloneHoLAIAN
B03002_016Hispanic or Latino, Asian aloneHoLA
B03002_017Hispanic or Latino, Native Hawaiian and other Pacific Islander +aloneHoLNHOPI
B03002_018Hispanic or Latino, some other race aloneHoLSOR
B03002_019Hispanic or Latino, two or more racesHoLTOMR
B03002_020Hispanic or Latino, two races including some other raceHoLTRiSOR
B03002_021Hispanic or Latino, two races excluding some other race, and three +or more racesHoLTReSOR
+

II (Bell) is some measure of the probability that a member of one +subgroup(s) will meet or interact with a member of another subgroup(s) +with higher values signifying higher probability of interaction (less +isolation) when comparing smaller geographical areas to larger ones +within which the smaller geographical areas are located. II (Bell) can +range in value from 0 to 1.

+
bell2021KY <- ndi::bell(geo_large = "county", geo_small = "tract", state = "KY",
+                                year = 2021, subgroup = "NHoLB", subgroup_ixn = "NHoLW")
+
+# Obtain the 2021 census counties from the "tigris" package
+county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
+
+# Join the II (Bell) values to the county geometry
+KY2021bell <- dplyr::left_join(county2021KY, bell2021KY$ii, by = "GEOID")
+
# Visualize the II (Bell) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
+ggplot2::ggplot() + 
+  ggplot2::geom_sf(data = KY2021bell, 
+                   ggplot2::aes(fill = II),
+                   size = 0.05,
+                   color = "white") +
+   ggplot2::geom_sf(data = county2021KY,
+                    fill = "transparent", 
+                    color = "white",
+                    size = 0.2) +
+  ggplot2::theme_minimal() +
+  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
+  ggplot2::labs(fill = "Index (Continuous)",
+                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
+  ggplot2::ggtitle("Isolation Index (Bell)\nKentucky census tracts to counties",
+                   subtitle = "Black non-Hispanic vs. white non-Hispanic")
+

+
+
+

Compute Correlation Ratio (V)

+

Compute the aspatial racial/ethnic V (White) values (2017-2021 5-year +ACS) for Kentucky, U.S.A., counties from census tracts. This metric is +based on Bell (1954) and +adapted by White (1986). +Multiple racial/ethnic subgroups are available in the +white() function, including:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ACS table sourceracial/ethnic subgroupcharacter for subgroup argument
B03002_002not Hispanic or LatinoNHoL
B03002_003not Hispanic or Latino, white aloneNHoLW
B03002_004not Hispanic or Latino, Black or African American aloneNHoLB
B03002_005not Hispanic or Latino, American Indian and Alaska Native aloneNHoLAIAN
B03002_006not Hispanic or Latino, Asian aloneNHoLA
B03002_007not Hispanic or Latino, Native Hawaiian and Other Pacific Islander +aloneNHoLNHOPI
B03002_008not Hispanic or Latino, some other race aloneNHoLSOR
B03002_009not Hispanic or Latino, two or more racesNHoLTOMR
B03002_010not Hispanic or Latino, two races including some other raceNHoLTRiSOR
B03002_011not Hispanic or Latino, two races excluding some other race, and +three or more racesNHoLTReSOR
B03002_012Hispanic or LatinoHoL
B03002_013Hispanic or Latino, white aloneHoLW
B03002_014Hispanic or Latino, Black or African American aloneHoLB
B03002_015Hispanic or Latino, American Indian and Alaska Native aloneHoLAIAN
B03002_016Hispanic or Latino, Asian aloneHoLA
B03002_017Hispanic or Latino, Native Hawaiian and other Pacific Islander +aloneHoLNHOPI
B03002_018Hispanic or Latino, some other race aloneHoLSOR
B03002_019Hispanic or Latino, two or more racesHoLTOMR
B03002_020Hispanic or Latino, two races including some other raceHoLTRiSOR
B03002_021Hispanic or Latino, two races excluding some other race, and three +or more racesHoLTReSOR
+

V (White) removes the asymmetry from the Isolation Index (Bell) by +controlling for the effect of population composition when comparing +smaller geographical areas to larger ones within which the smaller +geographical areas are located. The Isolation Index (Bell) is some +measure of the probability that a member of one subgroup(s) will meet or +interact with a member of another subgroup(s) with higher values +signifying higher probability of interaction (less isolation). V (White) +can range in value from 0 to 1.

+
white2021KY <- ndi::white(geo_large = "county", geo_small = "tract", state = "KY",
+                                year = 2021, subgroup = "NHoLB")
+
+# Obtain the 2021 census counties from the "tigris" package
+county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
+
+# Join the V (White) values to the county geometry
+KY2021white <- dplyr::left_join(county2021KY, white2021KY$v, by = "GEOID")
+
# Visualize the V (White) values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
+ggplot2::ggplot() + 
+  ggplot2::geom_sf(data = KY2021white, 
+                   ggplot2::aes(fill = V),
+                   size = 0.05,
+                   color = "white") +
+   ggplot2::geom_sf(data = county2021KY,
+                    fill = "transparent", 
+                    color = "white",
+                    size = 0.2) +
+  ggplot2::theme_minimal() +
+  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
+  ggplot2::labs(fill = "Index (Continuous)",
+                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
+  ggplot2::ggtitle("Correlation Ratio (White)\nKentucky census tracts to counties",
+                   subtitle = "Black non-Hispanic")
+

+
sessionInfo()
## R version 4.2.1 (2022-06-23 ucrt)
 ## Platform: x86_64-w64-mingw32/x64 (64-bit)
 ## Running under: Windows 10 x64 (build 19045)
@@ -1920,26 +2246,26 @@ 

Compute Atkinson Index (AI)

## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] tigris_2.0 tidycensus_1.2.3 ndi_0.1.4.9000 ggplot2_3.4.0 +## [1] tigris_2.0 tidycensus_1.3.1 ndi_0.1.4.9002 ggplot2_3.4.0 ## [5] dplyr_1.0.10 knitr_1.41 ## ## loaded via a namespace (and not attached): ## [1] Rcpp_1.0.9 lattice_0.20-45 tidyr_1.2.1 class_7.3-20 -## [5] assertthat_0.2.1 digest_0.6.30 psych_2.2.9 utf8_1.2.2 -## [9] R6_2.5.1 evaluate_0.18 e1071_1.7-12 highr_0.9 -## [13] httr_1.4.4 pillar_1.8.1 rlang_1.0.6 curl_4.3.3 +## [5] assertthat_0.2.1 digest_0.6.31 psych_2.2.9 utf8_1.2.2 +## [9] R6_2.5.1 evaluate_0.19 e1071_1.7-12 highr_0.9 +## [13] httr_1.4.4 pillar_1.8.1 rlang_1.0.6 curl_5.0.0 ## [17] uuid_1.1-0 rstudioapi_0.14 jquerylib_0.1.4 Matrix_1.4-1 -## [21] rmarkdown_2.18 labeling_0.4.2 readr_2.1.3 stringr_1.5.0 +## [21] rmarkdown_2.19 labeling_0.4.2 readr_2.1.3 stringr_1.5.0 ## [25] munsell_0.5.0 proxy_0.4-27 compiler_4.2.1 xfun_0.35 ## [29] pkgconfig_2.0.3 mnormt_2.1.1 htmltools_0.5.4 tidyselect_1.2.0 ## [33] tibble_3.1.8 viridisLite_0.4.1 fansi_1.0.3 tzdb_0.3.0 -## [37] crayon_1.5.2 withr_2.5.0 sf_1.0-9 wk_0.7.0 -## [41] MASS_7.3-57 rappdirs_0.3.3 grid_4.2.1 nlme_3.1-157 +## [37] crayon_1.5.2 withr_2.5.0 sf_1.0-9 wk_0.7.1 +## [41] MASS_7.3-58.1 rappdirs_0.3.3 grid_4.2.1 nlme_3.1-157 ## [45] jsonlite_1.8.4 gtable_0.3.1 lifecycle_1.0.3 DBI_1.1.3 -## [49] magrittr_2.0.3 units_0.8-0 scales_1.2.1 KernSmooth_2.23-20 +## [49] magrittr_2.0.3 units_0.8-1 scales_1.2.1 KernSmooth_2.23-20 ## [53] cli_3.4.1 stringi_1.7.8 cachem_1.0.6 farver_2.1.1 -## [57] xml2_1.3.3 bslib_0.4.1 ellipsis_0.3.2 generics_0.1.3 -## [61] vctrs_0.5.1 s2_1.1.1 tools_4.2.1 Cairo_1.6-0 +## [57] xml2_1.3.3 bslib_0.4.2 ellipsis_0.3.2 generics_0.1.3 +## [61] vctrs_0.5.1 s2_1.1.2 tools_4.2.1 Cairo_1.6-0 ## [65] glue_1.6.2 purrr_0.3.5 hms_1.1.2 parallel_4.2.1 ## [69] fastmap_1.1.0 yaml_2.3.6 colorspace_2.0-3 classInt_0.4-8 ## [73] rvest_1.0.3 sass_0.4.4
From c11891d1238495578ef7f190914970f55d05e082 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Thu, 26 Jan 2023 09:23:03 -0500 Subject: [PATCH 03/23] Initial commit for branch "dev_bemanian_beyer" (ndi v0.1.4.9003) * Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) * Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) * `car` is now Imports --- DESCRIPTION | 20 +- NAMESPACE | 3 + NEWS.md | 5 +- R/anthopolos.R | 32 +- R/atkinson.R | 28 +- R/bell.R | 34 +- R/bemanian_beyer.R | 256 +++++++++++ R/bravo.R | 32 +- R/duncan.R | 32 +- R/gini.R | 14 +- R/globals.R | 2 +- R/krieger.R | 22 +- R/messer.R | 36 +- R/package.R | 11 +- R/powell_wiley.R | 48 +-- R/sudano.R | 233 ++++++++++ R/utils.R | 37 ++ R/white.R | 32 +- README.md | 112 ++++- cran-comments.md | 6 +- inst/CITATION | 61 +++ man/anthopolos.Rd | 6 +- man/atkinson.Rd | 6 +- man/bell.Rd | 8 +- man/bemanian_beyer.Rd | 96 +++++ man/bravo.Rd | 6 +- man/duncan.Rd | 6 +- man/figures/di.png | Bin 392797 -> 385788 bytes man/figures/lexis.png | Bin 0 -> 319461 bytes man/figures/lq.png | Bin 0 -> 375431 bytes man/ndi-package.Rd | 6 +- man/sudano.Rd | 91 ++++ man/white.Rd | 10 +- tests/testthat/test-bemanian_beyer.R | 48 +++ tests/testthat/test-sudano.R | 46 ++ vignettes/vignette.Rmd | 212 ++++++++-- vignettes/vignette.html | 609 +++++++++++++++++++++------ 37 files changed, 1838 insertions(+), 368 deletions(-) create mode 100644 R/bemanian_beyer.R create mode 100644 R/sudano.R create mode 100644 man/bemanian_beyer.Rd create mode 100644 man/figures/lexis.png create mode 100644 man/figures/lq.png create mode 100644 man/sudano.Rd create mode 100644 tests/testthat/test-bemanian_beyer.R create mode 100644 tests/testthat/test-sudano.R diff --git a/DESCRIPTION b/DESCRIPTION index cf09a49..1e08924 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ndi Title: Neighborhood Deprivation Indices -Version: 0.1.4.9002 -Date: 2023-01-18 +Version: 0.1.4.9003 +Date: 2023-01-26 Authors@R: c(person(given = "Ian D.", family = "Buller", @@ -35,18 +35,24 @@ Description: Computes various metrics of socio-economic deprivation and disparit compute the aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) , (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell - (1954) , and (7) aspatial racial/ethnic Correlation Ratio - based on Bell (1954) and White (1986) . - Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the - aspatial Gini Index based Gini (1921) . + (1954) , (7) aspatial racial/ethnic Correlation Ratio + based on Bell (1954) and White (1986) , + (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) + and Sudano et al. (2013) + , and (9) aspatial racial/ethnic Local + Exposure and Isolation metric based on Bemanian & Beyer (2017) + . Also using data from the ACS-5 (2005-2009 + onward), the package can retrieve the aspatial Gini Index based Gini (1921) + . License: Apache License (>= 2.0) Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.2 +RoxygenNote: 7.2.3 Depends: R (>= 3.5.0) Imports: + car, dplyr, MASS, Matrix, diff --git a/NAMESPACE b/NAMESPACE index 033364f..c648ea6 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,16 +3,19 @@ export(anthopolos) export(atkinson) export(bell) +export(bemanian_beyer) export(bravo) export(duncan) export(gini) export(krieger) export(messer) export(powell_wiley) +export(sudano) export(white) import(dplyr) importFrom(MASS,ginv) importFrom(Matrix,sparseMatrix) +importFrom(car,logit) importFrom(psych,alpha) importFrom(psych,principal) importFrom(sf,st_drop_geometry) diff --git a/NEWS.md b/NEWS.md index eeafe10..b03fd33 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,13 +1,16 @@ # ndi (development version) -# ndi v0.1.4.9002 +# ndi v0.1.4.9003 ### New Features * Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) +* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) +* Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) ### Updates +* `car` is now Imports * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing * Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [ndi Issue #5](https://github.com/idblr/ndi/issues/5) * Updated `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` for consistency in messaging when data are not missing diff --git a/R/anthopolos.R b/R/anthopolos.R index f11c146..16b131b 100644 --- a/R/anthopolos.R +++ b/R/anthopolos.R @@ -60,10 +60,12 @@ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' #' # Tract-level metric (2020) -#' anthopolos(geo = "tract", state = "GA", year = 2020, subgroup = c("NHoLB", "HoLB")) +#' anthopolos(geo = "tract", state = "GA", +#' year = 2020, subgroup = c("NHoLB", "HoLB")) #' #' # County-level metric (2020) -#' anthopolos(geo = "county", state = "GA", year = 2020, subgroup = c("NHoLB", "HoLB")) +#' anthopolos(geo = "county", state = "GA", +#' year = 2020, subgroup = c("NHoLB", "HoLB")) #' #' } #' @@ -109,7 +111,7 @@ anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) in_names <- paste(names(selected_vars), "E", sep = "") # Acquire RI variables and sf geometries - ri_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + ri_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = selected_vars, @@ -117,15 +119,15 @@ anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) if (geo == "tract") { - ri_vars <- ri_vars %>% + ri_data <- ri_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - ri_vars <- ri_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ri_data <- ri_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - ri_vars <- ri_vars %>% - dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ri_vars[ , in_names[-1]]))) + ri_data <- ri_data %>% + dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ri_data[ , in_names[-1]]))) # Compute RI ## From Anthopolos et al. (2011) https://doi.org/10.1016/j.sste.2011.06.002 @@ -141,8 +143,8 @@ anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts ## Geospatial adjacency matrix (wij) - tmp <- sf::st_intersects(sf::st_geometry(ri_vars), sparse = TRUE) - names(tmp) <- as.character(seq_len(nrow(ri_vars))) + tmp <- sf::st_intersects(sf::st_geometry(ri_data), sparse = TRUE) + names(tmp) <- as.character(seq_len(nrow(ri_data))) tmpL <- length(tmp) tmpcounts <- unlist(Map(length, tmp)) tmpi <- rep(1:tmpL, tmpcounts) @@ -151,15 +153,15 @@ anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) diag(wij) <- 1.5 ## Compute - ri_vars <- sf::st_drop_geometry(ri_vars) # drop geometries (can join back later) + ri_data <- sf::st_drop_geometry(ri_data) # drop geometries (can join back later) RIim <- list() for (i in 1:dim(wij)[1]){ - RIim[[i]] <- sum(as.matrix(wij[i, ])*ri_vars[ , "subgroup"]) / sum(as.matrix(wij[i, ])*ri_vars[, "TotalPopE"]) + RIim[[i]] <- sum(as.matrix(wij[i, ])*ri_data[ , "subgroup"]) / sum(as.matrix(wij[i, ])*ri_data[, "TotalPopE"]) } - ri_vars$RI <- unlist(RIim) + ri_data$RI <- unlist(RIim) # Warning for missingness of census characteristics - missingYN <- ri_vars[ , in_names] + missingYN <- ri_data[ , in_names] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), @@ -179,7 +181,7 @@ anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) # Format output if (geo == "tract") { - ri <- ri_vars %>% + ri <- ri_data %>% dplyr::select(c("GEOID", "state", "county", @@ -188,7 +190,7 @@ anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) dplyr::all_of(in_names))) names(ri) <- c("GEOID", "state", "county", "tract", "RI", out_names) } else { - ri <- ri_vars %>% + ri <- ri_data %>% dplyr::select(c("GEOID", "state", "county", diff --git a/R/atkinson.R b/R/atkinson.R index 23ae8a1..e324fc7 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -67,10 +67,10 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Atkinson Index of non-Hispanic Black vs. non-Hispanic white populations +#' # Atkinson Index of non-Hispanic Black populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' atkinson(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, -#' subgroup = "NHoLB") +#' atkinson(geo_large = "county", geo_small = "tract", state = "GA", +#' year = 2020, subgroup = "NHoLB") #' #' } #' @@ -141,19 +141,19 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub # Grouping IDs for AI computation if (geo_large == "tract") { - ai_vars <- ai_data %>% + ai_data <- ai_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "county") { - ai_vars <- ai_data %>% + ai_data <- ai_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "state") { - ai_vars <- ai_data %>% + ai_data <- ai_data %>% dplyr::mutate(oid = .$STATEFP, state = stringr::str_trim(state)) } @@ -161,10 +161,10 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub # Count of racial/ethnic subgroup populations ## Count of racial/ethnic subgroup population if (length(in_subgroup) == 1) { - ai_vars <- ai_vars %>% + ai_data <- ai_data %>% dplyr::mutate(subgroup = .[ , in_subgroup]) } else { - ai_vars <- ai_vars %>% + ai_data <- ai_data %>% dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) } @@ -185,8 +185,8 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub ## A_{\epsilon}(x_{1},...,x_{n}) = 1 - \frac{M_{1-\epsilon}(x_{1},...,x_{n})}{M_{1}(x_{1},...,x_{n})} ## Compute - AItmp <- ai_vars %>% - split(., f = list(ai_vars$oid)) %>% + AItmp <- ai_data %>% + split(., f = list(ai_data$oid)) %>% lapply(., FUN = ai_fun, epsilon = epsilon, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate(AI = values, @@ -194,7 +194,7 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub dplyr::select(AI, oid) # Warning for missingness of census characteristics - missingYN <- as.data.frame(ai_vars[ , in_subgroup]) + missingYN <- as.data.frame(ai_data[ , in_subgroup]) names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), @@ -214,7 +214,7 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub # Format output if (geo_large == "state") { - ai <- merge(ai_vars, AItmp) %>% + ai <- merge(ai_data, AItmp) %>% dplyr::select(oid, state, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -222,7 +222,7 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub .[.$GEOID != "NANA", ] } if (geo_large == "county") { - ai <- merge(ai_vars, AItmp) %>% + ai <- merge(ai_data, AItmp) %>% dplyr::select(oid, state, county, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -230,7 +230,7 @@ atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, sub .[.$GEOID != "NANA", ] } if (geo_large == "tract") { - ai <- merge(ai_vars, AItmp) %>% + ai <- merge(ai_data, AItmp) %>% dplyr::select(oid, state, county, tract, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% diff --git a/R/bell.R b/R/bell.R index ccdffcf..1c3a563 100644 --- a/R/bell.R +++ b/R/bell.R @@ -41,7 +41,7 @@ #' #' II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. #' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. #' #' @return An object of class 'list'. This is a named list with the following components: #' @@ -65,10 +65,10 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Isolation of non-Hispanic Black and non-Hispanic white populations +#' # Isolation of non-Hispanic Black vs. non-Hispanic white populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' bell(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, -#' subgroup = "NHoLB", subgroup_ixn = "NHoLW") +#' bell(geo_large = "county", geo_small = "tract", state = "GA", +#' year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") #' #' } #' @@ -144,19 +144,19 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou # Grouping IDs for II computation if (geo_large == "tract") { - ii_vars <- ii_data %>% + ii_data <- ii_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "county") { - ii_vars <- ii_data %>% + ii_data <- ii_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "state") { - ii_vars <- ii_data %>% + ii_data <- ii_data %>% dplyr::mutate(oid = .$STATEFP, state = stringr::str_trim(state)) } @@ -164,18 +164,18 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - ii_vars <- ii_vars %>% + ii_data <- ii_data %>% dplyr::mutate(subgroup = .[ , in_subgroup]) } else { - ii_vars <- ii_vars %>% + ii_data <- ii_data %>% dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) } ## Count of racial/ethnic interaction subgroup population if (length(in_subgroup_ixn) == 1) { - ii_vars <- ii_vars %>% + ii_data <- ii_data %>% dplyr::mutate(subgroup_ixn = .[ , in_subgroup_ixn]) } else { - ii_vars <- ii_vars %>% + ii_data <- ii_data %>% dplyr::mutate(subgroup_ixn = rowSums(.[ , in_subgroup_ixn])) } @@ -190,8 +190,8 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou ## If x_{i} = y_{i}, then computes the average isolation experienced by members of subgroup population X ## Compute - IItmp <- ii_vars %>% - split(., f = list(ii_vars$oid)) %>% + IItmp <- ii_data %>% + split(., f = list(ii_data$oid)) %>% lapply(., FUN = ii_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate(II = values, @@ -199,7 +199,7 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou dplyr::select(II, oid) # Warning for missingness of census characteristics - missingYN <- ii_vars[ , c("TotalPopE", in_subgroup, in_subgroup_ixn)] + missingYN <- ii_data[ , c("TotalPopE", in_subgroup, in_subgroup_ixn)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), @@ -219,7 +219,7 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou # Format output if (geo_large == "state") { - ii <- merge(ii_vars, IItmp) %>% + ii <- merge(ii_data, IItmp) %>% dplyr::select(oid, state, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -227,7 +227,7 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou .[.$GEOID != "NANA", ] } if (geo_large == "county") { - ii <- merge(ii_vars, IItmp) %>% + ii <- merge(ii_data, IItmp) %>% dplyr::select(oid, state, county, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -235,7 +235,7 @@ bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgrou .[.$GEOID != "NANA", ] } if (geo_large == "tract") { - ii <- merge(ii_vars, IItmp) %>% + ii <- merge(ii_data, IItmp) %>% dplyr::select(oid, state, county, tract, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% diff --git a/R/bemanian_beyer.R b/R/bemanian_beyer.R new file mode 100644 index 0000000..727b698 --- /dev/null +++ b/R/bemanian_beyer.R @@ -0,0 +1,256 @@ +#' Local Exposure and Isolation metric based on Bemanian & Beyer (2017) +#' +#' Compute the aspatial Local Exposure and Isolation (Bemanian & Beyer) metric of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. +#' @param subgroup_ixn Character string specifying the racial/ethnic subgroup(s) as the interaction population. If the same as \code{subgroup}, will compute the simple isolation of the group. See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute the aspatial Local Exposure and Isolation (LEx/Is) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of LEx/Is for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} +#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +#' \item{B03002_012: }{Hispanic or Latino "HoL"} +#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' LEx/Is is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. LEx/Is is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) +#' +#' LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. +#' +#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} +#' \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is} +#' } +#' +#' @import dplyr +#' @importFrom car logit +#' @importFrom sf st_drop_geometry +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Isolation of non-Hispanic Black vs. non-Hispanic white populations +#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' bemanian_beyer(geo_large = "county", geo_small = "tract", state = "GA", +#' year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") +#' +#' } +#' +bemanian_beyer <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, subgroup_ixn, omit_NAs = TRUE, quiet = FALSE, ...) { + + # Check arguments + match.arg(geo_large, choices = c("state", "county", "tract")) + match.arg(geo_small, choices = c("county", "tract", "block group")) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg(subgroup, several.ok = TRUE, + choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", + "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", + "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", + "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + match.arg(subgroup_ixn, several.ok = TRUE, + choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", + "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", + "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", + "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + + # Select census variables + vars <- c(TotalPop = "B03002_001", + NHoL = "B03002_002", + NHoLW = "B03002_003", + NHoLB = "B03002_004", + NHoLAIAN = "B03002_005", + NHoLA = "B03002_006", + NHoLNHOPI = "B03002_007", + NHoLSOR = "B03002_008", + NHoLTOMR = "B03002_009", + NHoLTRiSOR = "B03002_010", + NHoLTReSOR = "B03002_011", + HoL = "B03002_012", + HoLW = "B03002_013", + HoLB = "B03002_014", + HoLAIAN = "B03002_015", + HoLA = "B03002_016", + HoLNHOPI = "B03002_017", + HoLSOR = "B03002_018", + HoLTOMR = "B03002_019", + HoLTRiSOR = "B03002_020", + HoLTReSOR = "B03002_021") + + selected_vars <- vars[c("TotalPop", subgroup, subgroup_ixn)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, "E", sep = "") + in_subgroup_ixn <- paste(subgroup_ixn, "E", sep = "") + + # Acquire LEx/Is variables and sf geometries + lexis_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, + year = year, + output = "wide", + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, ...))) + + # Format output + if (geo_small == "county") { + lexis_data <- sf::st_drop_geometry(lexis_data) %>% + tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") + } + if (geo_small == "tract") { + lexis_data <- sf::st_drop_geometry(lexis_data) %>% + tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) + } + if (geo_small == "block group") { + lexis_data <- sf::st_drop_geometry(lexis_data) %>% + tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), + block.group = gsub("[^0-9\\.]", "", block.group)) + } + + # Grouping IDs for LEx/Is computation + if (geo_large == "tract") { + lexis_data <- lexis_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "county") { + lexis_data <- lexis_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "state") { + lexis_data <- lexis_data %>% + dplyr::mutate(oid = .$STATEFP, + state = stringr::str_trim(state)) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup = .[ , in_subgroup]) + } else { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + } + ## Count of racial/ethnic interaction subgroup population + if (length(in_subgroup_ixn) == 1) { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup_ixn = .[ , in_subgroup_ixn]) + } else { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup_ixn = rowSums(.[ , in_subgroup_ixn])) + } + + # Compute LEx/Is + ## From Bemanian & Beyer (2017) https://doi.org/10.1158/1055-9965.EPI-16-0926 + ## E^*_{m,n}(i) = log\left(\frac{p_{im} \times p_{in}}{1 - p_{im} \times p_{in}}\right) - log\left(\frac{P_{m} \times P_{n}}{1 - P_{m} \times P_{n}}\right) + ## Where for smaller geographical unit i: + ## p_{im} denotes the number of subgroup population m in smaller geographical unit i + ## p_{in} denotes the number of subgroup population n in smaller geographical unit i + ## P_{m} denotes the number of subgroup population m in larger geographical unit within which the smaller geographic unit i is located + ## P_{n} denotes the number of subgroup population n in larger geographical unit within which the smaller geographic unit i is located + ## If m \ne n, then computes the exposure of members of subgroup populations m and n + ## If m = n, then computes the simple isolation experienced by members of subgroup population m + + ## Compute + LExIstmp <- lexis_data %>% + split(., f = list(lexis_data$oid)) %>% + lapply(., FUN = lexis_fun, omit_NAs = omit_NAs) %>% + do.call("rbind", .) + + # Warning for missingness of census characteristics + missingYN <- lexis_data[ , c("TotalPopE", in_subgroup, in_subgroup_ixn)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer(cols = dplyr::everything(), + names_to = "variable", + values_to = "val") %>% + dplyr::group_by(variable) %>% + dplyr::summarise(total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message("Warning: Missing census data") + } + } + + # Format output + lexis <- merge(lexis_data, LExIstmp) + + if (geo_small == "state") { + lexis <- lexis %>% + dplyr::select(GEOID, state, LExIs) + } + if (geo_small == "county") { + lexis <- lexis %>% + dplyr::select(GEOID, state, county, LExIs) + } + if (geo_small == "tract") { + lexis <- lexis %>% + dplyr::select(GEOID, state, county, tract, LExIs) + } + if (geo_small == "block group") { + lexis <- lexis %>% + dplyr::select(GEOID, state, county, tract, block.group, LExIs) + } + + lexis <- lexis %>% + unique(.) %>% + .[.$GEOID != "NANA", ] %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + lexis_data <- lexis_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(lexis = lexis, + lexis_data = lexis_data, + missing = missingYN) + + return(out) +} diff --git a/R/bravo.R b/R/bravo.R index ce8499a..b8d49dc 100644 --- a/R/bravo.R +++ b/R/bravo.R @@ -47,10 +47,12 @@ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' #' # Tract-level metric (2020) -#' bravo(geo = "tract", state = "GA", year = 2020, subgroup = c("LtHS", "HSGiE")) +#' bravo(geo = "tract", state = "GA", +#' year = 2020, subgroup = c("LtHS", "HSGiE")) #' #' # County-level metric (2020) -#' bravo(geo = "county", state = "GA", year = 2020, subgroup = c("LtHS", "HSGiE")) +#' bravo(geo = "county", state = "GA", +#' year = 2020, subgroup = c("LtHS", "HSGiE")) #' #' } #' @@ -118,22 +120,22 @@ bravo <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { in_names <- paste(names(selected_vars), "E", sep = "") # Acquire EI variables and sf geometries - ei_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + ei_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = selected_vars, geometry = TRUE, ...))) if (geo == "tract") { - ei_vars <- ei_vars %>% + ei_data <- ei_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - ei_vars <- ei_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ei_data <- ei_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - ei_vars <- ei_vars %>% - dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ei_vars[ , in_names[-1]]))) + ei_data <- ei_data %>% + dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ei_data[ , in_names[-1]]))) # Compute EI ## From Bravo et al. (2021) https://doi.org/10.3390/ijerph18179384 @@ -149,8 +151,8 @@ bravo <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts ## Geospatial adjacency matrix (wij) - tmp <- sf::st_intersects(sf::st_geometry(ei_vars), sparse = TRUE) - names(tmp) <- as.character(seq_len(nrow(ei_vars))) + tmp <- sf::st_intersects(sf::st_geometry(ei_data), sparse = TRUE) + names(tmp) <- as.character(seq_len(nrow(ei_data))) tmpL <- length(tmp) tmpcounts <- unlist(Map(length, tmp)) tmpi <- rep(1:tmpL, tmpcounts) @@ -159,15 +161,15 @@ bravo <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { diag(wij) <- 1.5 ## Compute - ei_vars <- sf::st_drop_geometry(ei_vars) # drop geometries (can join back later) + ei_data <- sf::st_drop_geometry(ei_data) # drop geometries (can join back later) EIim <- list() for (i in 1:dim(wij)[1]){ - EIim[[i]] <- sum(as.matrix(wij[i, ])*ei_vars[ , "subgroup"]) / sum(as.matrix(wij[i, ])*ei_vars[, "TotalPopE"]) + EIim[[i]] <- sum(as.matrix(wij[i, ])*ei_data[ , "subgroup"]) / sum(as.matrix(wij[i, ])*ei_data[, "TotalPopE"]) } - ei_vars$EI <- unlist(EIim) + ei_data$EI <- unlist(EIim) # Warning for missingness of census characteristics - missingYN <- ei_vars[ , in_names] + missingYN <- ei_data[ , in_names] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), @@ -187,7 +189,7 @@ bravo <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { # Format output if (geo == "tract") { - ei <- ei_vars %>% + ei <- ei_data %>% dplyr::select(c("GEOID", "state", "county", @@ -196,7 +198,7 @@ bravo <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { dplyr::all_of(in_names))) names(ei) <- c("GEOID", "state", "county", "tract", "EI", out_names) } else { - ei <- ei_vars %>% + ei <- ei_data %>% dplyr::select(c("GEOID", "state", "county", diff --git a/R/duncan.R b/R/duncan.R index 1ca1bbe..5a73bdc 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -1,6 +1,6 @@ #' Dissimilarity Index based on Duncan & Duncan (1955) #' -#' Compute the aspatial Dissimilarity Index (Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies +#' Compute the aspatial Dissimilarity Index (Duncan & Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies #' #' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. #' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. @@ -67,8 +67,8 @@ #' #' # Dissimilarity Index of non-Hispanic Black vs. non-Hispanic white populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' duncan(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, -#' subgroup = "NHoLB", subgroup_ref = "NHoLW") +#' duncan(geo_large = "county", geo_small = "tract", state = "GA", +#' year = 2020, subgroup = "NHoLB", subgroup_ref = "NHoLW") #' #' } #' @@ -143,19 +143,19 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr # Grouping IDs for DI computation if (geo_large == "tract") { - di_vars <- di_data %>% + di_data <- di_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "county") { - di_vars <- di_data %>% + di_data <- di_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "state") { - di_vars <- di_data %>% + di_data <- di_data %>% dplyr::mutate(oid = .$STATEFP, state = stringr::str_trim(state)) } @@ -163,18 +163,18 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - di_vars <- di_vars %>% + di_data <- di_data %>% dplyr::mutate(subgroup = .[ , in_subgroup]) } else { - di_vars <- di_vars %>% + di_data <- di_data %>% dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) } ## Count of racial/ethnic reference subgroup population if (length(in_subgroup_ref) == 1) { - di_vars <- di_vars %>% + di_data <- di_data %>% dplyr::mutate(subgroup_ref = .[ , in_subgroup_ref]) } else { - di_vars <- di_vars %>% + di_data <- di_data %>% dplyr::mutate(subgroup_ref = rowSums(.[ , in_subgroup_ref])) } @@ -189,8 +189,8 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr ## Y_{jt} denotes the racial/ethnic referent subgroup population of larger geography j at time t ## Compute - DItmp <- di_vars %>% - split(., f = list(di_vars$oid)) %>% + DItmp <- di_data %>% + split(., f = list(di_data$oid)) %>% lapply(., FUN = di_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate(DI = values, @@ -198,7 +198,7 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr dplyr::select(DI, oid) # Warning for missingness of census characteristics - missingYN <- di_vars[ , c(in_subgroup, in_subgroup_ref)] + missingYN <- di_data[ , c(in_subgroup, in_subgroup_ref)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), @@ -218,7 +218,7 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr # Format output if (geo_large == "state") { - di <- merge(di_vars, DItmp) %>% + di <- merge(di_data, DItmp) %>% dplyr::select(oid, state, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -226,7 +226,7 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr .[.$GEOID != "NANA", ] } if (geo_large == "county") { - di <- merge(di_vars, DItmp) %>% + di <- merge(di_data, DItmp) %>% dplyr::select(oid, state, county, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -234,7 +234,7 @@ duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr .[.$GEOID != "NANA", ] } if (geo_large == "tract") { - di <- merge(di_vars, DItmp) %>% + di <- merge(di_data, DItmp) %>% dplyr::select(oid, state, county, tract, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% diff --git a/R/gini.R b/R/gini.R index 2aeca13..4268a57 100644 --- a/R/gini.R +++ b/R/gini.R @@ -52,24 +52,24 @@ gini <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { vars <- c(gini = "B19083_001") # Acquire Gini Index - gini_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + gini_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = vars, ...))) if (geo == "tract") { - gini_vars <- gini_vars %>% + gini_data <- gini_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - gini_vars <- gini_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + gini_data <- gini_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - gini_vars <- gini_vars %>% + gini_data <- gini_data %>% dplyr::mutate(gini = giniE) # Warning for missingness of census characteristics - missingYN <- gini_vars %>% + missingYN <- gini_data %>% dplyr::select(gini) %>% tidyr::pivot_longer(cols = dplyr::everything(), names_to = "variable", @@ -87,10 +87,10 @@ gini <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { } if (geo == "tract") { - gini <- gini_vars %>% + gini <- gini_data %>% dplyr::select(GEOID, state, county, tract, gini) } else { - gini <- gini_vars %>% + gini <- gini_data %>% dplyr::select(GEOID, state, county, gini) } diff --git a/R/globals.R b/R/globals.R index 93c8545..b2aeb06 100644 --- a/R/globals.R +++ b/R/globals.R @@ -40,4 +40,4 @@ globalVariables(c("CWD", "EDU", "EMP", "FHH", "GEOID", "MedHHInc", "MedHHIncE", "O25MNSCE", "O25MNt4G", "O25MNt4GE", "O25MPSD", "O25MPSDE", "P_edu", "P_inc", "P_wbinc", "P_wpcinc", "TotalPop_edu", "TotalPop_inc", "TotalPop_re", "TotalPopeduE", "TotalPopiE", "TotalPopreE", "U10bih", "U10bihE", "U10i", "U10iE", "U10nhw", "U10nhwE", "NAME.y", - ".", "values", "ind", "oid", "block.group", "DI", "AI", "II", "V")) + ".", "values", "ind", "oid", "block.group", "DI", "AI", "II", "V", "LQ", "LExIs")) diff --git a/R/krieger.R b/R/krieger.R index d9652c5..8e501aa 100644 --- a/R/krieger.R +++ b/R/krieger.R @@ -118,20 +118,20 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { B2530bih = "B19001B_006") # Acquire ICE variables - ice_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + ice_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = vars, ...))) if (geo == "tract") { - ice_vars <- ice_vars %>% + ice_data <- ice_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - ice_vars <- ice_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ice_data <- ice_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - ice_vars <- ice_vars %>% + ice_data <- ice_data %>% dplyr::mutate(TotalPop_inc = TotalPopiE, TotalPop_edu = TotalPopeduE, TotalPop_re = TotalPopreE, @@ -188,7 +188,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { # Sum educational attainment categories # A_{edu} = Less than high school / 12 year / GED # P_{edu} = Four-year college degree or more - ice_vars <- ice_vars %>% + ice_data <- ice_data %>% dplyr::mutate(A_edu = O25MBD + O25FBD + O25MMD + O25FMD + O25MPSD + O25FPSD + O25MDD + O25FDD, P_edu = O25MNSC + O25FNSC + O25MNt4G + O25FNt4G + @@ -204,7 +204,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { ## According to U.S. Census Bureau Table A-4a ## "Selected Measures of Household Income Dispersion: 1967 to 2020" if (year < 2016) { - ice_vars <- ice_vars %>% + ice_data <- ice_data %>% dplyr::mutate(A_inc = B100125i + B125150i + B150200i + O200i, P_inc = U10i + B1015i + B1520i + B2025i, A_wbinc = B100125nhw + B125150nhw + B150200nhw + O200nhw, @@ -212,7 +212,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { A_wpcinc = B100125nhw + B125150nhw + B150200nhw + O200nhw, P_wpcinc = U10nhw + B1015nhw + B1520nhw + B2025nhw) } else { - ice_vars <- ice_vars %>% + ice_data <- ice_data %>% dplyr::mutate(A_inc = B125150i + B150200i + O200i, P_inc = U10i + B1015i + B1520i + B2025i + B2530i, A_wbinc = B125150nhw + B150200nhw + O200nhw, @@ -229,7 +229,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { ## P_{i} denotes the count within the highest extreme (e.g., households in 80th income percentile) ## T_{i} denotes the total population in region i (TotalPop) - ice_vars <- ice_vars %>% + ice_data <- ice_data %>% dplyr::mutate(ICE_inc = (A_inc - P_inc) / TotalPop_inc, ICE_edu = (A_edu - P_edu) / TotalPop_edu, ICE_rewb = (NHoLW - NHoLB) / TotalPop_re, @@ -237,7 +237,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { ICE_wpcinc = (A_wpcinc - P_wpcinc) / TotalPop_inc) # Warning for missingness of census characteristics - missingYN <- ice_vars %>% + missingYN <- ice_data %>% dplyr::select(U10i, B1015i, B1520i, B2025i, B2530i, B100125i, B125150i, B150200i, O200i, O25MNSC, O25FNSC,O25MNt4G, O25FNt4G, O25M5t6G, O25F5t6G, O25M7t8G, O25F7t8G, O25M9G, O25F9G, @@ -264,7 +264,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { # Format output if (geo == "tract") { - ice <- ice_vars %>% + ice <- ice_data %>% dplyr::select(GEOID, state, county, tract, ICE_inc, ICE_edu, ICE_rewb, ICE_wbinc, ICE_wpcinc, U10i, B1015i, B1520i, B2025i, B2530i, B100125i, B125150i, @@ -277,7 +277,7 @@ krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { B150200nhw, O200nhw, U10bih, B1015bih, B1520bih, B2025bih, B2530bih, TotalPop_inc, TotalPop_edu, TotalPop_re) } else { - ice <- ice_vars %>% + ice <- ice_data %>% dplyr::select(GEOID, state, county, ICE_inc, ICE_edu, ICE_rewb, ICE_wbinc, ICE_wpcinc, U10i, B1015i, B1520i, B2025i, B2530i, B100125i, B125150i, diff --git a/R/messer.R b/R/messer.R index 32cf1ef..68614da 100644 --- a/R/messer.R +++ b/R/messer.R @@ -115,20 +115,20 @@ messer <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round PctUnemp_7074F = "B23001_167", PctUnemp_75upF = "B23001_172") # Acquire NDI variables - ndi_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + ndi_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = vars, ...))) if (geo == "tract") { - ndi_vars <- ndi_vars %>% + ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - ndi_vars <- ndi_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - ndi_vars <- ndi_vars %>% + ndi_data <- ndi_data %>% dplyr::mutate(OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, CWD = (PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + PctCrwdHH_num4E + PctCrwdHH_num5E + PctCrwdHH_num6E) / PctCrwdHH_denE, @@ -151,20 +151,20 @@ messer <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round PctUnemp_7074FE + PctUnemp_75upME) / PctUnemp_denE) } else { # Acquire NDI variables - ndi_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + ndi_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = vars, ...))) if (geo == "tract") { - ndi_vars <- ndi_vars %>% + ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - ndi_vars <- ndi_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - ndi_vars <- ndi_vars %>% + ndi_data <- ndi_data %>% dplyr::mutate(OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, CWD = (PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + PctCrwdHH_num4E + PctCrwdHH_num5E + PctCrwdHH_num6E) / PctCrwdHH_denE, @@ -178,29 +178,29 @@ messer <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round } # Generate NDI - ndi_vars_pca <- ndi_vars %>% + ndi_data_pca <- ndi_data %>% dplyr::select(OCC, CWD, POV, FHH, PUB, U30, EDU, EMP) } else { # If inputing pre-formatted data: - ndi_vars <- dplyr::as_tibble(df) - ndi_vars_pca <- df[ , -1] # omits the first feature (column) typically an ID (e.g., GEOID or FIPS) + ndi_data <- dplyr::as_tibble(df) + ndi_data_pca <- df[ , -1] # omits the first feature (column) typically an ID (e.g., GEOID or FIPS) } # Replace infinite values as zero (typically because denominator is zero) - ndi_vars_pca <- do.call(data.frame, - lapply(ndi_vars_pca, + ndi_data_pca <- do.call(data.frame, + lapply(ndi_data_pca, function(x) replace(x, is.infinite(x), 0))) # Run principal component analysis - pca <- psych::principal(ndi_vars_pca, + pca <- psych::principal(ndi_data_pca, nfactors = 1, - n.obs = nrow(ndi_vars_pca), + n.obs = nrow(ndi_data_pca), covar = FALSE, scores = TRUE, missing = imp) # Warning for missingness of census characteristics - missingYN <- ndi_vars_pca %>% + missingYN <- ndi_data_pca %>% tidyr::pivot_longer(cols = dplyr::everything(), names_to = "variable", values_to = "val") %>% @@ -240,7 +240,7 @@ messer <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round if (is.null(df)) { # Format output if (round_output == TRUE) { - ndi <- cbind(ndi_vars, NDIQuart) %>% + ndi <- cbind(ndi_data, NDIQuart) %>% dplyr::mutate(OCC = round(OCC, digits = 1), CWD = round(CWD, digits = 1), POV = round(POV, digits = 1), @@ -251,7 +251,7 @@ messer <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round EMP = round(EMP, digits = 1), NDI = round(NDI, digits = 4)) } else { - ndi <- cbind(ndi_vars, NDIQuart) + ndi <- cbind(ndi_data, NDIQuart) } if (geo == "tract") { diff --git a/R/package.R b/R/package.R index 207a43b..6e78071 100644 --- a/R/package.R +++ b/R/package.R @@ -2,7 +2,7 @@ #' #' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. #' -#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, and (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. #' #' Key content of the 'ndi' package include:\cr #' @@ -14,6 +14,8 @@ #' #' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. #' +#' \code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based Bemanian and Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. +#' #' \code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. #' #' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. @@ -26,7 +28,9 @@ #' #' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. #' -#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. +#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. +#' +#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. #' #' \bold{Pre-formatted U.S. Census Data} #' @@ -36,7 +40,7 @@ #' @aliases ndi-package ndi #' @docType package #' -#' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, or DI included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, or Duncan & Duncan (1955) \doi{10.2307/2088328}, respectively. +#' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian and Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. #' #' @author Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a division of DLH Corporation, Silver Spring, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr #' @@ -46,6 +50,7 @@ NULL #' @import dplyr +#' @importFrom car logit #' @importFrom MASS ginv #' @importFrom Matrix sparseMatrix #' @importFrom psych alpha principal diff --git a/R/powell_wiley.R b/R/powell_wiley.R index e524419..4f5129a 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -111,20 +111,20 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, if (year < 2015){ vars <- c(vars[-13], PctNoPhone = "DP04_0074P") } # Acquire NDI variables - ndi_vars <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, + ndi_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, year = year, output = "wide", variables = vars, ...))) if (geo == "tract") { - ndi_vars <- ndi_vars %>% + ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) } else { - ndi_vars <- ndi_vars %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") } - ndi_vars <- ndi_vars %>% + ndi_data <- ndi_data %>% dplyr::mutate(MedHHInc = MedHHIncE, PctRecvIDR = PctRecvIDR_numE / PctRecvIDR_denE * 100, PctPubAsst = PctPubAsst_numE / PctPubAsst_denE * 100, @@ -164,20 +164,20 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, PctUnemplZ = scale(PctUnempl)) # generate NDI - ndi_vars_pca <- ndi_vars %>% + ndi_data_pca <- ndi_data %>% dplyr::select(logMedHHInc, PctNoIDRZ, PctPubAsstZ, logMedHomeVal, PctWorkClassZ, PctFemHeadKidsZ, PctNotOwnerOccZ, PctNoPhoneZ, PctNComPlmbZ, PctEducLTHSZ, PctEducLTBchZ, PctFamBelowPovZ, PctUnemplZ) } else { # If inputing pre-formatted data: colnames(df)[1:2] <- c("GEOID", "TotalPop") # rename first and second features (columns) with name to match above - ndi_vars <- dplyr::as_tibble(df) - ndi_vars_pca <- ndi_vars[ , -c(1:2)] # omits the first two features (columns) typically an ID (e.g., GEOID or FIPS) and TotalPop + ndi_data <- dplyr::as_tibble(df) + ndi_data_pca <- ndi_data[ , -c(1:2)] # omits the first two features (columns) typically an ID (e.g., GEOID or FIPS) and TotalPop } # Run a factor analysis using Promax (oblique) rotation and a minimum Eigenvalue of 1 - nfa <- eigen(stats::cor(ndi_vars_pca, use = "complete.obs")) + nfa <- eigen(stats::cor(ndi_data_pca, use = "complete.obs")) nfa <- sum(nfa$values > 1) # count of factors with a minimum Eigenvalue of 1 - fit <- psych::principal(ndi_vars_pca, + fit <- psych::principal(ndi_data_pca, nfactors = nfa, rotate = "none") fit_rotate <- stats::promax(stats::loadings(fit), m = 3) @@ -200,7 +200,7 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, } ## Variable correlation matrix (R_mat) - R_mat <- as.matrix(cor(ndi_vars_pca[complete.cases(ndi_vars_pca), ])) + R_mat <- as.matrix(cor(ndi_data_pca[complete.cases(ndi_data_pca), ])) ## standardized score coefficients or weight matrix (B_mat) B_mat <- solve(R_mat, S_mat) @@ -236,31 +236,31 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, fit_rotate$Vaccounted <- varex if (imp == TRUE) { - ndi_vars_scrs <- as.matrix(ndi_vars_pca) - miss <- which(is.na(ndi_vars_scrs), arr.ind = TRUE) - item.med <- apply(ndi_vars_scrs, 2, stats::median, na.rm = TRUE) - ndi_vars_scrs[miss] <- item.med[miss[, 2]] + ndi_data_scrs <- as.matrix(ndi_data_pca) + miss <- which(is.na(ndi_data_scrs), arr.ind = TRUE) + item.med <- apply(ndi_data_scrs, 2, stats::median, na.rm = TRUE) + ndi_data_scrs[miss] <- item.med[miss[, 2]] } else { - ndi_vars_scrs <- ndi_vars_pca + ndi_data_scrs <- ndi_data_pca } - scrs <- as.matrix(scale(ndi_vars_scrs[complete.cases(ndi_vars_scrs), abs(S_mat[ , 1]) > 0.4 ])) %*% B_mat[abs(S_mat[ , 1]) > 0.4, 1] + scrs <- as.matrix(scale(ndi_data_scrs[complete.cases(ndi_data_scrs), abs(S_mat[ , 1]) > 0.4 ])) %*% B_mat[abs(S_mat[ , 1]) > 0.4, 1] - ndi_vars_NA <- ndi_vars[complete.cases(ndi_vars_scrs), ] - ndi_vars_NA$NDI <- c(scrs) + ndi_data_NA <- ndi_data[complete.cases(ndi_data_scrs), ] + ndi_data_NA$NDI <- c(scrs) - ndi_vars_NDI <- dplyr::left_join(ndi_vars[ , c("GEOID", "TotalPop")], ndi_vars_NA[ , c("GEOID", "NDI")], by = "GEOID") + ndi_data_NDI <- dplyr::left_join(ndi_data[ , c("GEOID", "TotalPop")], ndi_data_NA[ , c("GEOID", "NDI")], by = "GEOID") # Calculate Cronbach's alpha correlation coefficient among the factors and verify values are above 0.7. if (nfa == 1) { crnbch <- "Only one factor with minimum Eigenvalue of 1. Cannot calculate Cronbach's alpha." } else { - cronbach <- suppressMessages(psych::alpha(ndi_vars_pca[ , abs(S_mat[ , 1]) > 0.4 ], check.keys = TRUE, na.rm = TRUE, warnings = FALSE)) + cronbach <- suppressMessages(psych::alpha(ndi_data_pca[ , abs(S_mat[ , 1]) > 0.4 ], check.keys = TRUE, na.rm = TRUE, warnings = FALSE)) crnbch <- cronbach$total$std.alpha } # Warning for missingness of census characteristics - missingYN <- ndi_vars_pca %>% + missingYN <- ndi_data_pca %>% tidyr::pivot_longer(cols = dplyr::everything(), names_to = "variable", values_to = "val") %>% @@ -288,7 +288,7 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, } # NDI quintiles weighted by tract population - NDIQuint <- ndi_vars_NDI %>% + NDIQuint <- ndi_data_NDI %>% dplyr::mutate(NDIQuint = cut(NDI*log(TotalPop), breaks = stats::quantile(NDI*log(TotalPop), probs = c(0, 0.2, 0.4, 0.6, 0.8, 1), @@ -306,7 +306,7 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, if (is.null(df)) { # Format output if (round_output == TRUE) { - ndi <- cbind(ndi_vars, NDIQuint) %>% + ndi <- cbind(ndi_data, NDIQuint) %>% dplyr::mutate(PctRecvIDR = round(PctRecvIDR, digits = 1), PctPubAsst = round(PctPubAsst, digits = 1), PctMgmtBusScArti = round(PctMgmtBusScArti, digits = 1), @@ -319,7 +319,7 @@ powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, PctFamBelowPov = round(PctFamBelowPov, digits = 1), PctUnempl = round(PctUnempl, digits = 1)) } else { - ndi <- cbind(ndi_vars, NDIQuint) + ndi <- cbind(ndi_data, NDIQuint) } if (geo == "tract") { diff --git a/R/sudano.R b/R/sudano.R new file mode 100644 index 0000000..89cbab1 --- /dev/null +++ b/R/sudano.R @@ -0,0 +1,233 @@ +#' Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) +#' +#' Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} +#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +#' \item{B03002_012: }{Hispanic or Latino "HoL"} +#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' LQ is some measure of relative racial homogeneity of each smaller geography within a larger geography. LQ can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an LQ of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. +#' +#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and LQ at specified smaller census geographies.} +#' \item{\code{lq_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LQ.} +#' } +#' +#' @import dplyr +#' @importFrom sf st_drop_geometry +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Isolation of non-Hispanic Black populations +#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' sudano(geo_large = "state", geo_small = "county", state = "GA", +#' year = 2020, subgroup = "NHoLB") +#' +#' } +#' +sudano <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, omit_NAs = TRUE, quiet = FALSE, ...) { + + # Check arguments + match.arg(geo_large, choices = c("state", "county", "tract")) + match.arg(geo_small, choices = c("county", "tract", "block group")) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg(subgroup, several.ok = TRUE, + choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", + "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", + "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", + "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + + # Select census variables + vars <- c(TotalPop = "B03002_001", + NHoL = "B03002_002", + NHoLW = "B03002_003", + NHoLB = "B03002_004", + NHoLAIAN = "B03002_005", + NHoLA = "B03002_006", + NHoLNHOPI = "B03002_007", + NHoLSOR = "B03002_008", + NHoLTOMR = "B03002_009", + NHoLTRiSOR = "B03002_010", + NHoLTReSOR = "B03002_011", + HoL = "B03002_012", + HoLW = "B03002_013", + HoLB = "B03002_014", + HoLAIAN = "B03002_015", + HoLA = "B03002_016", + HoLNHOPI = "B03002_017", + HoLSOR = "B03002_018", + HoLTOMR = "B03002_019", + HoLTRiSOR = "B03002_020", + HoLTReSOR = "B03002_021") + + selected_vars <- vars[c("TotalPop", subgroup)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, "E", sep = "") + + # Acquire LQ variables and sf geometries + lq_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, + year = year, + output = "wide", + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, ...))) + + # Format output + if (geo_small == "county") { + lq_data <- sf::st_drop_geometry(lq_data) %>% + tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") + } + if (geo_small == "tract") { + lq_data <- sf::st_drop_geometry(lq_data) %>% + tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) + } + if (geo_small == "block group") { + lq_data <- sf::st_drop_geometry(lq_data) %>% + tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% + dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), + block.group = gsub("[^0-9\\.]", "", block.group)) + } + + # Grouping IDs for R computation + if (geo_large == "tract") { + lq_data <- lq_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "county") { + lq_data <- lq_data %>% + dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), + state = stringr::str_trim(state), + county = stringr::str_trim(county)) + } + if (geo_large == "state") { + lq_data <- lq_data %>% + dplyr::mutate(oid = .$STATEFP, + state = stringr::str_trim(state)) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + lq_data <- lq_data %>% + dplyr::mutate(subgroup = .[ , in_subgroup]) + } else { + lq_data <- lq_data %>% + dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + } + + # Compute LQ + ## From Sudano (2013) https://doi.org/10.1016/j.healthplace.2012.09.015 + ## LQ_{im} = (x_{im}/X_{i})/(X_{m}/X) + ## for: + ## i smaller geography and subgroup m + + ## Compute + LQtmp <- lq_data %>% + split(., f = list(lq_data$oid)) %>% + lapply(., FUN = lq_fun, omit_NAs = omit_NAs) %>% + do.call("rbind", .) + + # Warning for missingness of census characteristics + missingYN <- lq_data[ , c("TotalPopE", in_subgroup)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer(cols = dplyr::everything(), + names_to = "variable", + values_to = "val") %>% + dplyr::group_by(variable) %>% + dplyr::summarise(total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message("Warning: Missing census data") + } + } + + # Format output + lq <- merge(lq_data, LQtmp) + + if (geo_small == "state") { + lq <- lq %>% + dplyr::select(GEOID, state, LQ) + } + if (geo_small == "county") { + lq <- lq %>% + dplyr::select(GEOID, state, county, LQ) + } + if (geo_small == "tract") { + lq <- lq %>% + dplyr::select(GEOID, state, county, tract, LQ) + } + if (geo_small == "block group") { + lq <- lq %>% + dplyr::select(GEOID, state, county, tract, block.group, LQ) + } + + lq <- lq %>% + unique(.) %>% + .[.$GEOID != "NANA", ] %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + lq_data <- lq_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(lq = lq, + lq_data = lq_data, + missing = missingYN) + + return(out) +} diff --git a/R/utils.R b/R/utils.R index 10417fe..a18290d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -56,3 +56,40 @@ v_fun <- function(x, omit_NAs) { (xxx - px) / (1 - px) } } + +# Internal function for aspatial Location Quotient (Sudano et al. 2013) +## Returns NA value if only one smaller geography in a larger geography +lq_fun <- function(x, omit_NAs) { + xx <- x[ , c("TotalPopE", "subgroup", "GEOID")] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } + if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { + NA + } else { + LQ <- (xx$subgroup / xx$TotalPopE) / (sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE)) + df <- data.frame(LQ = LQ, + GEOID = xx$GEOID) + return(df) + } +} + +# Internal function for aspatial Local Exposure & Isolation (Bemanian & Beyer 2017) metric +## Returns NA value if only one smaller geography in a larger geography +lexis_fun <- function(x, omit_NAs) { + xx <- x[ , c("TotalPopE", "subgroup", "subgroup_ixn", "GEOID")] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } + if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { + NA + } else { + p_im <- xx$subgroup / xx$TotalPopE + p_in <- xx$subgroup_ixn / xx$TotalPopE + P_m <- sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) + P_n <- sum(xx$subgroup_ixn, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) + + # Logit transformation and center with assumption of even mixing across large geography + # (log((p_im * p_in)/(1 - p_im * xx$p_in)) - log((P_m * P_n)/(1 - P_m * P_n))) + LExIs <- car::logit(p_im * p_in) - car::logit(P_m * P_n) + df <- data.frame(LExIs = LExIs, + GEOID = xx$GEOID) + return(df) + } +} diff --git a/R/white.R b/R/white.R index e745427..d645cb2 100644 --- a/R/white.R +++ b/R/white.R @@ -40,14 +40,14 @@ #' #' V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from 0 to 1. #' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ #' \item{\code{v}}{An object of class 'tbl' for the GEOID, name, and V at specified larger census geographies.} #' \item{\code{v_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute V} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute V.} #' } #' #' @import dplyr @@ -64,10 +64,10 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Isolation of non-Hispanic Black and non-Hispanic white populations +#' # Isolation of non-Hispanic Black populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' white(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, -#' subgroup = "NHoLB") +#' white(geo_large = "county", geo_small = "tract", state = "GA", +#' year = 2020, subgroup = "NHoLB") #' #' } #' @@ -137,19 +137,19 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro # Grouping IDs for R computation if (geo_large == "tract") { - v_vars <- v_data %>% + v_data <- v_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "county") { - v_vars <- v_data %>% + v_data <- v_data %>% dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), state = stringr::str_trim(state), county = stringr::str_trim(county)) } if (geo_large == "state") { - v_vars <- v_data %>% + v_data <- v_data %>% dplyr::mutate(oid = .$STATEFP, state = stringr::str_trim(state)) } @@ -157,10 +157,10 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - v_vars <- v_vars %>% + v_data <- v_data %>% dplyr::mutate(subgroup = .[ , in_subgroup]) } else { - v_vars <- v_vars %>% + v_data <- v_data %>% dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) } @@ -172,8 +172,8 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro ## P denotes the proportion of subgroup x of study (reference) area ## Compute - Vtmp <- v_vars %>% - split(., f = list(v_vars$oid)) %>% + Vtmp <- v_data %>% + split(., f = list(v_data$oid)) %>% lapply(., FUN = v_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate(V = values, @@ -181,7 +181,7 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro dplyr::select(V, oid) # Warning for missingness of census characteristics - missingYN <- v_vars[ , c("TotalPopE", in_subgroup)] + missingYN <- v_data[ , c("TotalPopE", in_subgroup)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), @@ -201,7 +201,7 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro # Format output if (geo_large == "state") { - v <- merge(v_vars, Vtmp) %>% + v <- merge(v_data, Vtmp) %>% dplyr::select(oid, state, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -209,7 +209,7 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro .[.$GEOID != "NANA", ] } if (geo_large == "county") { - v <- merge(v_vars, Vtmp) %>% + v <- merge(v_data, Vtmp) %>% dplyr::select(oid, state, county, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -217,7 +217,7 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro .[.$GEOID != "NANA", ] } if (geo_large == "tract") { - v <- merge(v_vars, Vtmp) %>% + v <- merge(v_data, Vtmp) %>% dplyr::select(oid, state, county, tract, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% diff --git a/README.md b/README.md index f33c4c1..bdcc6dd 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ ndi: Neighborhood Deprivation Indices -**Date repository last updated**: January 19, 2022 +**Date repository last updated**: January 26, 2023 ### Overview -The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), and (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). +The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), and (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -51,6 +51,9 @@ To install the development version from GitHub: bell Compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) +bemanian_beyer +Compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) + bravo Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) @@ -69,6 +72,9 @@ To install the development version from GitHub: powell_wiley Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010) +sudano +Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) + white Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) @@ -122,7 +128,7 @@ Thank you to those who suggested additional metrics, including: ### Getting Started * Step 1: Obtain a unique access key from the U.S. Census Bureau. Follow [this link](http://api.census.gov/data/key_signup.html) to obtain one. -* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bell()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, or `white()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bell()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, or `white()` functions (see an example below). +* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions (see an example below). ### Usage @@ -515,23 +521,22 @@ ggplot2::ggplot() + ![](man/figures/ice5.png) ```r -# ----------------------------------------------------------- # -# Compute aspatial racial/ethnic Dissimilarity Index (Duncan) # -# ----------------------------------------------------------- # +# -------------------------------------------------------------------- # +# Compute aspatial racial/ethnic Dissimilarity Index (Duncan & Duncan) # +# -------------------------------------------------------------------- # # Dissimilarity Index based on Duncan & Duncan (1955) ## Selected subgroup comparison: Not Hispanic or Latino, Black or African American alone ## Selected subgroup reference: Not Hispanic or Latino, white alone ## Selected large geography: census tract ## Selected small geography: census block group -di2020DC <- duncan(geo_large = "tract", geo_small = "block group", - state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ref = "NHoLW") +di2020DC <- duncan(geo_large = "tract", geo_small = "block group", state = "DC", + year = 2020, subgroup = "NHoLB", subgroup_ref = "NHoLW") # Obtain the 2020 census tracts from the "tigris" package tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) -# Join the DI (Duncan) values to the census tract geometry +# Join the DI (Duncan & Duncan) values to the census tract geometry di2020DC <- dplyr::left_join(tract2020DC, di2020DC$di, by = "GEOID") ggplot2::ggplot() + @@ -542,7 +547,7 @@ ggplot2::ggplot() + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + ggplot2::labs(fill = "Index (Continuous)", caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Dissimilarity Index (Duncan)\nWashington, D.C. census block groups to tracts", + ggplot2::ggtitle("Dissimilarity Index (Duncan & Duncan)\nWashington, D.C. census block groups to tracts", subtitle = "Black non-Hispanic vs. white non-Hispanic") ``` @@ -558,13 +563,13 @@ ggplot2::ggplot() + ## Selected large geography: census tract ## Selected small geography: census block group ## Default epsilon (0.5 or over- and under-representation contribute equally) -ai2020DC <- atkinson(geo_large = "tract", geo_small = "block group", - state = "DC", year = 2020, subgroup = "NHoLB") +ai2020DC <- atkinson(geo_large = "tract", geo_small = "block group", state = "DC", + year = 2020, subgroup = "NHoLB") # Obtain the 2020 census tracts from the "tigris" package tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) -# Join the DI (Duncan) values to the census tract geometry +# Join the AI (Atkinson) values to the census tract geometry ai2020DC <- dplyr::left_join(tract2020DC, ai2020DC$ai, by = "GEOID") ggplot2::ggplot() + @@ -591,13 +596,13 @@ ggplot2::ggplot() + ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -ii2020DC <- bell(geo_large = "tract", geo_small = "block group", - state = "DC", year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") +ii2020DC <- bell(geo_large = "tract", geo_small = "block group", state = "DC", + year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") # Obtain the 2020 census tracts from the "tigris" package tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) -# Join the DI (Duncan) values to the census tract geometry +# Join the II (Bell) values to the census tract geometry ii2020DC <- dplyr::left_join(tract2020DC, ii2020DC$ii, by = "GEOID") ggplot2::ggplot() + @@ -623,13 +628,13 @@ ggplot2::ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -v2020DC <- white(geo_large = "tract", geo_small = "block group", - state = "DC", year = 2020, subgroup = "NHoLB") +v2020DC <- white(geo_large = "tract", geo_small = "block group", state = "DC", + year = 2020, subgroup = "NHoLB") # Obtain the 2020 census tracts from the "tigris" package tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) -# Join the DI (Duncan) values to the census tract geometry +# Join the V (White) values to the census tract geometry v2020DC <- dplyr::left_join(tract2020DC, v2020DC$v, by = "GEOID") ggplot2::ggplot() + @@ -646,9 +651,74 @@ ggplot2::ggplot() + ![](man/figures/v.png) +```r +# --------------------------------------------------------- # +# Compute aspatial racial/ethnic Location Quotient (Sudano) # +# --------------------------------------------------------- # + +# Location Quotient based on Merton (1938) and Sudano (2013) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: state +## Selected small geography: census tract +lq2020DC <- sudano(geo_large = "state", geo_small = "tract", state = "DC", + year = 2020, subgroup = "NHoLB") + +# Obtain the 2020 census tracts from the "tigris" package +tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) + +# Join the LQ (Sudano) values to the census tract geometry +lq2020DC <- dplyr::left_join(tract2020DC, lq2020DC$lq, by = "GEOID") + +ggplot2::ggplot() + + ggplot2::geom_sf(data = lq2020DC, + ggplot2::aes(fill = LQ), + color = "white") + + ggplot2::theme_bw() + + ggplot2::scale_fill_viridis_c() + + ggplot2::labs(fill = "Index (Continuous)", + caption = "Source: U.S. Census ACS 2016-2020 estimates") + + ggplot2::ggtitle('Location Quotient (Sudano)\nWashington, D.C. census tracts vs. "state"', + subtitle = "Black non-Hispanic") +``` + +![](man/figures/lq.png) + +```r +# ------------------------------------------------------------------------------------- # +# Compute aspatial racial/ethnic Local Exposure and Isolation (Bemanian & Beyer) metric # +# ------------------------------------------------------------------------------------- # + +# Local Exposure and Isolation metric based on Bemanian & Beyer (2017) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: state +## Selected small geography: census tract +lexis2020DC <- bemanian_beyer(geo_large = "state", geo_small = "tract", state = "DC", + year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") + +# Obtain the 2020 census tracts from the "tigris" package +tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) + +# Join the LEx/Is (Bemanian & Beyer) values to the census tract geometry +lexis2020DC <- dplyr::left_join(tract2020DC, lexis2020DC$lexis, by = "GEOID") + +ggplot2::ggplot() + + ggplot2::geom_sf(data = lexis2020DC, + ggplot2::aes(fill = LExIs), + color = "white") + + ggplot2::theme_bw() + + ggplot2::scale_fill_viridis_c() + + ggplot2::labs(fill = "Index (Continuous)", + caption = "Source: U.S. Census ACS 2016-2020 estimates") + + ggplot2::ggtitle('Local Exposure and Isolation (Bemanian & Beyer) metric\nWashington, D.C. census block groups to tracts', + subtitle = "Black non-Hispanic vs. white non-Hispanic") +``` + +![](man/figures/lexis.png) + ### Funding -This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a division of [DLH Corporation](https://dlhcorp.com). +This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a division of [DLH Corporation](https://www.dlhcorp.com). ### Acknowledgments diff --git a/cran-comments.md b/cran-comments.md index fd80b67..0c7a0b7 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -4,6 +4,9 @@ * Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) + * Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) + * Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) + * `car` is now Imports * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing * Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [ndi Issue #5](https://github.com/idblr/ndi/issues/5) * Updated `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` for consistency in messaging when data are not missing @@ -20,8 +23,9 @@ * * * + * -* Some tests and examples for `anthopolos()`, `atkinson()`, `bell()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, and `white()` functions require a Census API key so they are skipped if NULL or not run +* Some tests and examples for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions require a Census API key so they are skipped if NULL or not run ## Test environments * local Windows install, R 4.2.1 diff --git a/inst/CITATION b/inst/CITATION index 5ff733b..f0469d9 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -59,6 +59,47 @@ citEntry(entry = "Article", header = "If you computed AI (Atkinson) values, please also cite:" ) +citEntry(entry = "Article", + title = "Social Structure and Anomie", + author = personList(as.person("Robert K. Merton")), + journal = "American Sociological Review", + year = "1938", + volume = "3", + number = "5", + pages = "672--682", + doi = "10.2307/2084686 ", + + textVersion = + paste("Robert K. Merton (1938).", + "Social Structure and Anomie.", + "American Sociological Review, 3(5), 672-682.", + "DOI:10.2307/2084686 "), + + header = "If you computed LQ (Sudano) values, please also cite (1):" +) + +citEntry(entry = "Article", + title = "Neighborhood racial residential segregation and changes in health or death among older adults", + author = personList(as.person("Joseph J. Sudano"), + as.person("Adam Perzynski") + as.person("David W. Wong") + as.person("Natalie Colabianchi") + as.person("David Litaker")), + journal = "Health & Place", + year = "2013", + volume = "19", + pages = "80--88", + doi = "10.1016/j.healthplace.2012.09.015", + + textVersion = + paste("Joseph J. Sudano, Adam Perzynski, David W. Wong, Natalie Colabianchi, David Litaker (2013).", + "Neighborhood racial residential segregation and changes in health or death among older adults.", + "Health & Place, 19, 80-88.", + "DOI:10.1016/j.healthplace.2012.09.015"), + + header = "And (2):" +) + citEntry(entry = "Book", title = "The Social Areas of Los Angeles: Analysis and Typology", author = personList(as.person("Eshref Shevky"), @@ -285,6 +326,26 @@ citEntry(entry = "Article", header = "And (2):" ) +citEntry(entry = "Article", + title = "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival", + author = personList(as.person("Amin Bemanian"), + as.person("Kirsten M.M. Beyer")), + journal = "Cancer Epidemiology, Biomarkers & Prevention", + year = "2017", + volume = "26", + issue = "4", + pages = "516--524", + doi = "10.1158/1055-9965.EPI-16-0926", + + textVersion = + paste("Amin Bemanian, Kirsten M.M. Beyer (2017).", + "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival.", + "Cancer Epidemiology, Biomarkers & Prevention, 26(4), 516-524.", + "DOI:10.1158/1055-9965.EPI-16-0926"), + + header = "If you computed LEx/Is (Bemanian & Beyer) values, please also cite:" +) + citEntry(entry = "Article", title = "A Probability Model for the Measurement of Ecological Segregation", author = personList(as.person("Wendell Bell")), diff --git a/man/anthopolos.Rd b/man/anthopolos.Rd index e3edb0f..bd17867 100644 --- a/man/anthopolos.Rd +++ b/man/anthopolos.Rd @@ -64,10 +64,12 @@ A census geography (and its neighbors) that has nearly all of its population who # Wrapped in \dontrun{} because these examples require a Census API key. # Tract-level metric (2020) - anthopolos(geo = "tract", state = "GA", year = 2020, subgroup = c("NHoLB", "HoLB")) + anthopolos(geo = "tract", state = "GA", + year = 2020, subgroup = c("NHoLB", "HoLB")) # County-level metric (2020) - anthopolos(geo = "county", state = "GA", year = 2020, subgroup = c("NHoLB", "HoLB")) + anthopolos(geo = "county", state = "GA", + year = 2020, subgroup = c("NHoLB", "HoLB")) } diff --git a/man/atkinson.Rd b/man/atkinson.Rd index a3220dd..490257d 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -83,10 +83,10 @@ Larger geographies available include state \code{geo_large = "state"}, county \c \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Atkinson Index of non-Hispanic Black vs. non-Hispanic white populations + # Atkinson Index of non-Hispanic Black populations ## of census tracts within Georgia, U.S.A., counties (2020) - atkinson(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, - subgroup = "NHoLB") + atkinson(geo_large = "county", geo_small = "tract", state = "GA", + year = 2020, subgroup = "NHoLB") } diff --git a/man/bell.Rd b/man/bell.Rd index 3bea08b..213faa7 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -75,16 +75,16 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Isolation of non-Hispanic Black and non-Hispanic white populations + # Isolation of non-Hispanic Black vs. non-Hispanic white populations ## of census tracts within Georgia, U.S.A., counties (2020) - bell(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW") + bell(geo_large = "county", geo_small = "tract", state = "GA", + year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") } diff --git a/man/bemanian_beyer.Rd b/man/bemanian_beyer.Rd new file mode 100644 index 0000000..6e4db5d --- /dev/null +++ b/man/bemanian_beyer.Rd @@ -0,0 +1,96 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/bemanian_beyer.R +\name{bemanian_beyer} +\alias{bemanian_beyer} +\title{Local Exposure and Isolation metric based on Bemanian & Beyer (2017)} +\usage{ +bemanian_beyer( + geo_large = "county", + geo_small = "tract", + year = 2020, + subgroup, + subgroup_ixn, + omit_NAs = TRUE, + quiet = FALSE, + ... +) +} +\arguments{ +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} + +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} + +\item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} + +\item{subgroup}{Character string specifying the racial/ethnic subgroup(s). See Details for available choices.} + +\item{subgroup_ixn}{Character string specifying the racial/ethnic subgroup(s) as the interaction population. If the same as \code{subgroup}, will compute the simple isolation of the group. See Details for available choices.} + +\item{omit_NAs}{Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE.} + +\item{quiet}{Logical. If TRUE, will display messages about potential missing census information. The default is FALSE.} + +\item{...}{Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics} +} +\value{ +An object of class 'list'. This is a named list with the following components: + +\describe{ +\item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} +\item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is} +} +} +\description{ +Compute the aspatial Local Exposure and Isolation (Bemanian & Beyer) metric of a selected racial/ethnic subgroup(s) and U.S. geographies. +} +\details{ +This function will compute the aspatial Local Exposure and Isolation (LEx/Is) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of LEx/Is for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). + +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +\itemize{ +\item{B03002_002: }{not Hispanic or Latino "NHoL"} +\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} +\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} +\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} +\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} +\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} +\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} +\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} +\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} +\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} +\item{B03002_012: }{Hispanic or Latino "HoL"} +\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} +\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} +\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} +\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} +\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} +\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} +\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} +\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} +\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +} + +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. + +LEx/Is is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. LEx/Is is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) + +LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. + +Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. +} +\examples{ +\dontrun{ +# Wrapped in \dontrun{} because these examples require a Census API key. + + # Isolation of non-Hispanic Black vs. non-Hispanic white populations + ## of census tracts within Georgia, U.S.A., counties (2020) + bemanian_beyer(geo_large = "county", geo_small = "tract", state = "GA", + year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") + +} + +} +\seealso{ +\code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +} diff --git a/man/bravo.Rd b/man/bravo.Rd index d53105b..c03a142 100644 --- a/man/bravo.Rd +++ b/man/bravo.Rd @@ -50,10 +50,12 @@ A census geography (and its neighbors) that has nearly all of its population wit # Wrapped in \dontrun{} because these examples require a Census API key. # Tract-level metric (2020) - bravo(geo = "tract", state = "GA", year = 2020, subgroup = c("LtHS", "HSGiE")) + bravo(geo = "tract", state = "GA", + year = 2020, subgroup = c("LtHS", "HSGiE")) # County-level metric (2020) - bravo(geo = "county", state = "GA", year = 2020, subgroup = c("LtHS", "HSGiE")) + bravo(geo = "county", state = "GA", + year = 2020, subgroup = c("LtHS", "HSGiE")) } diff --git a/man/duncan.Rd b/man/duncan.Rd index c92eb26..330291f 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -42,7 +42,7 @@ An object of class 'list'. This is a named list with the following components: } } \description{ -Compute the aspatial Dissimilarity Index (Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies +Compute the aspatial Dissimilarity Index (Duncan & Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies } \details{ This function will compute the aspatial Dissimilarity Index (DI) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of DI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). @@ -83,8 +83,8 @@ Larger geographies available include state \code{geo_large = "state"}, county \c # Dissimilarity Index of non-Hispanic Black vs. non-Hispanic white populations ## of census tracts within Georgia, U.S.A., counties (2020) - duncan(geo_large = "county", geo_small = "tract", state = "GA", year = 2020, - subgroup = "NHoLB", subgroup_ref = "NHoLW") + duncan(geo_large = "county", geo_small = "tract", state = "GA", + year = 2020, subgroup = "NHoLB", subgroup_ref = "NHoLW") } diff --git a/man/figures/di.png b/man/figures/di.png index 289cb5d6a1a64619ab4901d3b9ccaaf5f18f84b6..b4529b7c7e37f5bad6ecfab1de00b6dd1e260373 100644 GIT binary patch literal 385788 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�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
From 39cd672c79c674bea3a113649299af69da614685 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Wed, 1 Feb 2023 10:57:23 -0500 Subject: [PATCH 06/23] Updated citation style for CITATION file --- NEWS.md | 1 + cran-comments.md | 1 + inst/CITATION | 468 +++++++++++++++++++++++------------------------ 3 files changed, 236 insertions(+), 234 deletions(-) diff --git a/NEWS.md b/NEWS.md index 8313759..67c798d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -20,6 +20,7 @@ * Fixed bug in `duncan()` function for multiple `subgroup` and `subgroup_ref` selections * Updated documentation throughout * Added GitHub R-CMD-check +* Updated citation style for CITATION file ## ndi v0.1.3 diff --git a/cran-comments.md b/cran-comments.md index c0353d7..ff648c5 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -15,6 +15,7 @@ * In `duncan()` function, if any smaller geographic unit has zero counts the output for its larger geographic unit will be NA * Fixed bug in `duncan()` function for multiple `subgroup` and `subgroup_ref` selections * Updated documentation throughout + * Updated citation style for CITATION file * Documentation for DESCRIPTION, README, NEWS, and vignette references the following DOIs, which throws a NOTE but are a valid URL: * diff --git a/inst/CITATION b/inst/CITATION index 5b37efc..ef007a2 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,254 +1,233 @@ -citHeader("To cite ndi in publications, please use the following and include the version number and DOI:") - -citEntry(entry = "manual", - title = "ndi: Neighborhood Deprivation Indices", - author = personList(as.person("Ian D. Buller")), - publisher = "The Comprehensive R Archive Network", - year = "2022", - number = "0.1.4", - doi = "10.5281/zenodo.6989030", - url = "https://cran.r-project.org/package=ndi", +bibentry(bibtype = "manual", + title = "ndi: Neighborhood Deprivation Indices", + author = c(as.person("Ian D. Buller")), + publisher = "The Comprehensive R Archive Network", + year = "2022", + number = "0.1.4", + doi = "10.5281/zenodo.6989030", + url = "https://cran.r-project.org/package=ndi", - textVersion = + textVersion = paste("Ian D. Buller (2022).", "ndi: Neighborhood Deprivation Indices.", "The Comprehensive R Archive Network.", "v0.1.4.", "DOI:10.5281/zenodo.6989030", - "Accessed by: https://cran.r-project.org/package=ndi") + "Accessed by: https://cran.r-project.org/package=ndi"), + + header = "To cite ndi in publications, please use the following and include the version number and DOI:" ) -citEntry(entry = "Article", - title = "A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina", - author = personList(as.person("Rebecca Anthopolos"), +bibentry(bibtype = "Article", + title = "A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina", + author = c(as.person("Rebecca Anthopolos"), as.person("Sherman A. James"), as.person("Alan E. Gelfand"), as.person("Marie Lynn Miranda")), - journal = "Spatial and Spatio-temporal Epidemiology", - year = "2011", - volume = "2", - number = "4", - pages = "235--246", - doi = "10.1016/j.sste.2011.06.002", - - textVersion = + journal = "Spatial and Spatio-temporal Epidemiology", + year = "2011", + volume = "2", + number = "4", + pages = "235--246", + doi = "10.1016/j.sste.2011.06.002", + + textVersion = paste("Rebecca Anthopolos, Sherman A. James, Alan E. Gelfand, Marie Lynn Miranda (2011).", "A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina.", "Spatial and Spatio-temporal Epidemiology, 2(4), 235-246.", "DOI:10.1016/j.sste.2011.06.002"), - header = "If you computed RI (Anthopolos) values, please also cite:" + header = "If you computed RI (Anthopolos) values, please also cite:" ) -citEntry(entry = "Article", - title = "On the measurement of inequality", - author = personList(as.person("Anthony B. Atkinson")), - journal = "Journal of economic theory", - year = "1970", - volume = "2", - number = "3", - pages = "244--263", - doi = "10.1016/0022-0531(70)90039-6", - - textVersion = +bibentry(bibtype = "Article", + title = "On the measurement of inequality", + author = c(as.person("Anthony B. Atkinson")), + journal = "Journal of economic theory", + year = "1970", + volume = "2", + number = "3", + pages = "244--263", + doi = "10.1016/0022-0531(70)90039-6", + + textVersion = paste("Anthony B. Atkinson (1970).", "On the measurement of inequality.", "Journal of economic theory, 2(3), 244-263.", "DOI:10.1016/0022-0531(70)90039-6"), - header = "If you computed AI (Atkinson) values, please also cite:" + header = "If you computed AI (Atkinson) values, please also cite:" ) -citEntry(entry = "Article", - title = "Social Structure and Anomie", - author = personList(as.person("Robert K. Merton")), - journal = "American Sociological Review", - year = "1938", - volume = "3", - number = "5", - pages = "672--682", - doi = "10.2307/2084686 ", - - textVersion = - paste("Robert K. Merton (1938).", - "Social Structure and Anomie.", - "American Sociological Review, 3(5), 672-682.", - "DOI:10.2307/2084686 "), - - header = "If you computed LQ (Sudano) values, please also cite (1):" -) - -citEntry(entry = "Article", - title = "Neighborhood racial residential segregation and changes in health or death among older adults", - author = personList(as.person("Joseph J. Sudano"), - as.person("Adam Perzynski"), - as.person("David W. Wong"), - as.person("Natalie Colabianchi"), - as.person("David Litaker")), - journal = "Health & Place", - year = "2013", - volume = "19", - pages = "80--88", - doi = "10.1016/j.healthplace.2012.09.015", - - textVersion = - paste("Joseph J. Sudano, Adam Perzynski, David W. Wong, Natalie Colabianchi, David Litaker (2013).", - "Neighborhood racial residential segregation and changes in health or death among older adults.", - "Health & Place, 19, 80-88.", - "DOI:10.1016/j.healthplace.2012.09.015"), - - header = "And (2):" -) - -citEntry(entry = "Book", - title = "The Social Areas of Los Angeles: Analysis and Typology", - author = personList(as.person("Eshref Shevky"), +bibentry(bibtype = "Book", + title = "The Social Areas of Los Angeles: Analysis and Typology", + author = c(as.person("Eshref Shevky"), as.person("Marilyn Williams")), - year = "1949", - edition = "1st edition", - city = "Los Angeles", - publisher = "John Randolph Haynes and Dora Haynes Foundation", - isbn = "978-0-837-15637-8", + year = "1949", + edition = "1st edition", + city = "Los Angeles", + publisher = "John Randolph Haynes and Dora Haynes Foundation", + isbn = "978-0-837-15637-8", - textVersion = + textVersion = paste("Eshref Shevky, Marilyn Williams (1949).", "The Social Areas of Los Angeles: Analysis and Typology.", "1st Ed.", "Los Angeles:John Randolph Haynes and Dora Haynes Foundation.", "ISBN-13:978-0-837-15637-8"), - header = "If you computed II (Bell) values, please also cite (1):" + header = "If you computed II (Bell) values, please also cite (1):" ) -citEntry(entry = "Article", - title = "A Probability Model for the Measurement of Ecological Segregation", - author = personList(as.person("Wendell Bell")), - journal = "Social Forces", - year = "1954", - volume = "32", - issue = "4", - pages = "357--364", - doi = "10.2307/2574118", - - textVersion = +bibentry(bibtype = "Article", + title = "A Probability Model for the Measurement of Ecological Segregation", + author = c(as.person("Wendell Bell")), + journal = "Social Forces", + year = "1954", + volume = "32", + issue = "4", + pages = "357--364", + doi = "10.2307/2574118", + + textVersion = paste("Wendell Bell (1954).", "A Probability Model for the Measurement of Ecological Segregation.", "Social Forces, 32(4), 357-364.", "DOI:10.2307/2574118"), - header = "And (2):" + header = "And (2):" +) + +bibentry(bibtype = "Article", + title = "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival", + author = c(as.person("Amin Bemanian"), + as.person("Kirsten M.M. Beyer")), + journal = "Cancer Epidemiology, Biomarkers & Prevention", + year = "2017", + volume = "26", + issue = "4", + pages = "516--524", + doi = "10.1158/1055-9965.EPI-16-0926", + + textVersion = + paste("Amin Bemanian, Kirsten M.M. Beyer (2017).", + "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival.", + "Cancer Epidemiology, Biomarkers & Prevention, 26(4), 516-524.", + "DOI:10.1158/1055-9965.EPI-16-0926"), + + header = "If you computed LEx/Is (Bemanian & Beyer) values, please also cite:" ) -citEntry(entry = "Article", - title = "Assessing Disparity Using Measures of Racial and Educational Isolation", - author = personList(as.person("Mercedes A. Bravo"), +bibentry(bibtype = "Article", + title = "Assessing Disparity Using Measures of Racial and Educational Isolation", + author = c(as.person("Mercedes A. Bravo"), as.person("Man Chong Leong"), as.person("Alan E. Gelfand"), as.person("Marie Lynn Miranda")), - journal = "International Journal of Environmental Research and Public Health", - year = "2021", - volume = "18", - number = "17", - pages = "9384", - doi = "10.3390/ijerph18179384", - - textVersion = + journal = "International Journal of Environmental Research and Public Health", + year = "2021", + volume = "18", + number = "17", + pages = "9384", + doi = "10.3390/ijerph18179384", + + textVersion = paste("Mercedes A. Bravo, Man Chong Leong, Alan E. Gelfand, Marie Lynn Miranda (2021).", "Assessing Disparity Using Measures of Racial and Educational Isolation.", "International Journal of Environmental Research and Public Health, 18(17), 9384.", "DOI:10.3390/ijerph18179384"), - header = "If you computed EI (Bravo) values, please also cite:" + header = "If you computed EI (Bravo) values, please also cite:" ) -citEntry(entry = "Article", - title = "A Methodological Analysis of Segregation Indexes", - author = personList(as.person("Otis D. Duncan"), +bibentry(bibtype = "Article", + title = "A Methodological Analysis of Segregation Indexes", + author = c(as.person("Otis D. Duncan"), as.person("Beverly Duncan")), - journal = "American Sociological Review", - year = "1955", - volume = "20", - number = "2", - pages = "210--217", - doi = "10.2307/2088328", - - textVersion = + journal = "American Sociological Review", + year = "1955", + volume = "20", + number = "2", + pages = "210--217", + doi = "10.2307/2088328", + + textVersion = paste("Otis D. Duncan, Beverly Duncan (1955).", "A Methodological Analysis of Segregation Indexes.", "American Sociological Review, 20(2), 210-217.", "DOI:10.2307/2088328"), - header = "If you computed DI (Duncan) values, please also cite:" + header = "If you computed DI (Duncan & Duncan) values, please also cite:" ) -citEntry(entry = "Article", - title = "Measurement of Inequality of Incomes", - author = personList(as.person("Corrado Gini")), - journal = "The Economic Journal", - year = "1921", - volume = "31", - number = "121", - pages = "124--126", - doi = "10.2307/2223319", - - textVersion = +bibentry(bibtype = "Article", + title = "Measurement of Inequality of Incomes", + author = c(as.person("Corrado Gini")), + journal = "The Economic Journal", + year = "1921", + volume = "31", + number = "121", + pages = "124--126", + doi = "10.2307/2223319", + + textVersion = paste("Corrado Gini (1921).", "Measurement of Inequality of Incomes.", "The Economic Journal, 31(121), 124-126.", "DOI:10.2307/2223319"), - header = "If you retrieved Gini Index values, please also cite:" + header = "If you retrieved Gini Index values, please also cite:" ) -citEntry(entry = "Article", - title = "Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension", - author = personList(as.person("Justin M. Feldman"), +bibentry(bibtype = "Article", + title = "Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension", + author = c(as.person("Justin M. Feldman"), as.person("Pamela D. Waterman"), as.person("Brent A. Coull"), as.person("Nancy Krieger")), - journal = "Journal of Epidemiology and Community Health", - year = "2015", - volume = "69", - issue = "12", - pages = "1199--207", - doi = "10.1136/jech-2015-205728", - - textVersion = + journal = "Journal of Epidemiology and Community Health", + year = "2015", + volume = "69", + issue = "12", + pages = "1199--207", + doi = "10.1136/jech-2015-205728", + + textVersion = paste("Justin M. Feldman, Pamela D. Waterman, Brent A. Coull, Nancy Krieger (2015).", "Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension.", "Journal of Epidemiology and Community Health, 69(12), 1199-207.", "DOI:10.1136/jech-2015-205728"), - header = "If you computed ICE (Krieger) values, please also cite (1):" + header = "If you computed ICE (Krieger) values, please also cite (1):" ) -citEntry(entry = "Article", - title = "Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes", - author = personList(as.person("Nancy Krieger"), +bibentry(bibtype = "Article", + title = "Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes", + author = c(as.person("Nancy Krieger"), as.person("Pamela D. Waterman"), as.person("Jasmina Spasojevic"), as.person("Wenhui Li"), as.person("Wenhui Li"), as.person("Gretchen Van Wye")), - journal = "American Journal of Public Health ", - year = "2016", - volume = "106", - issue = "2", - pages = "256--263", - doi = "10.2105/AJPH.2015.302955", - - textVersion = + journal = "American Journal of Public Health ", + year = "2016", + volume = "106", + issue = "2", + pages = "256--263", + doi = "10.2105/AJPH.2015.302955", + + textVersion = paste("Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2016).", "Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes.", "American Journal of Public Health, 106(2), 256-263.", "DOI:10.2105/AJPH.2015.302955"), - header = "And (2):" + header = "And (2):" ) -citEntry(entry = "Article", - title = "The development of a standardized neighborhood deprivation index", - author = personList(as.person("Lynne C. Messer"), +bibentry(bibtype = "Article", + title = "The development of a standardized neighborhood deprivation index", + author = c(as.person("Lynne C. Messer"), as.person("Barbara A. Laraia"), as.person("Jay S. Kaufman"), as.person("Janet Eyster"), @@ -257,25 +236,25 @@ citEntry(entry = "Article", as.person("Irma Elo"), as.person("Jessica Burke"), as.person("Patricia O'Campo")), - journal = "Journal of Urban Health", - year = "2006", - volume = "83", - number = "6", - pages = "1041--1062", - doi = "10.1007/s11524-006-9094-x", - - textVersion = + journal = "Journal of Urban Health", + year = "2006", + volume = "83", + number = "6", + pages = "1041--1062", + doi = "10.1007/s11524-006-9094-x", + + textVersion = paste("Lynne C. Messer, Barbara A. Laraia, Jay S. Kaufman, Janet Eyster, Claudia Holzman, Jennifer Culhane, Irma Elo, Jessica Burke, Patricia O'Campo (2006).", "The development of a standardized neighborhood deprivation index.", "Journal of Urban Health, 83(6), 1041-1062.", "DOI:10.1007/s11524-006-9094-x"), - header = "If you computed NDI (Messer) values, please also cite:" + header = "If you computed NDI (Messer) values, please also cite:" ) -citEntry(entry = "Article", - title = "Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county", - author = personList(as.person("Marcus A. Andrews"), +bibentry(bibtype = "Article", + title = "Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county", + author = c(as.person("Marcus A. Andrews"), as.person("Kosuke Tomura"), as.person("Sophie E. Claudel"), as.person("Samantha Xu"), @@ -285,25 +264,25 @@ citEntry(entry = "Article", as.person("Valerie M. Mitchell"), as.person("Yvonne Baumer"), as.person("Tiffany M. Powell-Wiley")), - journal = "Journal of Maps", - year = "2020", - volume = "16", - issue = "1", - pages = "101--112", - doi = "10.1080/17445647.2020.1750066", - - textVersion = + journal = "Journal of Maps", + year = "2020", + volume = "16", + issue = "1", + pages = "101--112", + doi = "10.1080/17445647.2020.1750066", + + textVersion = paste("Marcus A. Andrews, Kosuke Tomura, Sophie E. Claudel, Samantha Xu, Joniqua N. Ceasar, Billy S. Collins, Steven Langerman, Valerie M. Mitchell, Yvonne Baumer, Tiffany M. Powell-Wiley (2022).", "Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county.", "Journal of Maps, 16(1), 101-112.", "DOI:10.1080/17445647.2020.1750066"), - header = "If you computed NDI (Powell-Wiley) values, please also cite (1):" + header = "If you computed NDI (Powell-Wiley) values, please also cite (1):" ) -citEntry(entry = "Article", - title = "Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group", - author = personList(as.person("Beth A. Slotman"), +bibentry(bibtype = "Article", + title = "Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group", + author = c(as.person("Beth A. Slotman"), as.person("David G Stinchcomb"), as.person("Tiffany M. Powell-Wiley"), as.person("Danielle M. Ostendorf"), @@ -311,75 +290,96 @@ citEntry(entry = "Article", as.person("Amy A. Gorin"), as.person("Shannon N. Zenk"), as.person("David Berrigan")), - journal = "Data in Brief", - year = "2022", - volume = "41", - pages = "108002", - doi = "10.1016/j.dib.2022.108002", + journal = "Data in Brief", + year = "2022", + volume = "41", + pages = "108002", + doi = "10.1016/j.dib.2022.108002", - textVersion = + textVersion = paste("Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2022).", "The development of a standardized neighborhood deprivation index.", "Data in Brief, 41, 108002.", "DOI:10.1016/j.dib.2022.108002"), - header = "And (2):" + header = "And (2):" ) -citEntry(entry = "Article", - title = "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival", - author = personList(as.person("Amin Bemanian"), - as.person("Kirsten M.M. Beyer")), - journal = "Cancer Epidemiology, Biomarkers & Prevention", - year = "2017", - volume = "26", - issue = "4", - pages = "516--524", - doi = "10.1158/1055-9965.EPI-16-0926", - - textVersion = - paste("Amin Bemanian, Kirsten M.M. Beyer (2017).", - "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival.", - "Cancer Epidemiology, Biomarkers & Prevention, 26(4), 516-524.", - "DOI:10.1158/1055-9965.EPI-16-0926"), +bibentry(bibtype = "Article", + title = "Social Structure and Anomie", + author = c(as.person("Robert K. Merton")), + journal = "American Sociological Review", + year = "1938", + volume = "3", + number = "5", + pages = "672--682", + doi = "10.2307/2084686 ", + + textVersion = + paste("Robert K. Merton (1938).", + "Social Structure and Anomie.", + "American Sociological Review, 3(5), 672-682.", + "DOI:10.2307/2084686 "), + + header = "If you computed LQ (Sudano) values, please also cite (1):" +) + +bibentry(bibtype = "Article", + title = "Neighborhood racial residential segregation and changes in health or death among older adults", + author = c(as.person("Joseph J. Sudano"), + as.person("Adam Perzynski"), + as.person("David W. Wong"), + as.person("Natalie Colabianchi"), + as.person("David Litaker")), + journal = "Health & Place", + year = "2013", + volume = "19", + pages = "80--88", + doi = "10.1016/j.healthplace.2012.09.015", + + textVersion = + paste("Joseph J. Sudano, Adam Perzynski, David W. Wong, Natalie Colabianchi, David Litaker (2013).", + "Neighborhood racial residential segregation and changes in health or death among older adults.", + "Health & Place, 19, 80-88.", + "DOI:10.1016/j.healthplace.2012.09.015"), - header = "If you computed LEx/Is (Bemanian & Beyer) values, please also cite:" + header = "And (2):" ) -citEntry(entry = "Article", - title = "A Probability Model for the Measurement of Ecological Segregation", - author = personList(as.person("Wendell Bell")), - journal = "Social Forces", - year = "1954", - volume = "32", - issue = "4", - pages = "357--364", - doi = "10.2307/2574118", - - textVersion = +bibentry(bibtype = "Article", + title = "A Probability Model for the Measurement of Ecological Segregation", + author = c(as.person("Wendell Bell")), + journal = "Social Forces", + year = "1954", + volume = "32", + issue = "4", + pages = "357--364", + doi = "10.2307/2574118", + + textVersion = paste("Wendell Bell (1954).", "A Probability Model for the Measurement of Ecological Segregation.", "Social Forces, 32(4), 357-364.", "DOI:10.2307/2574118"), - header = "If you computed V (White) values, please also cite (1):" + header = "If you computed V (White) values, please also cite (1):" ) -citEntry(entry = "Article", - title = "Segregation and Diversity Measures in Population Distribution", - author = personList(as.person("Michael J. White")), - journal = "Population Index", - year = "1986", - volume = "52", - issue = "2", - pages = "198--221", - doi = "10.2307/3644339", - - textVersion = +bibentry(bibtype = "Article", + title = "Segregation and Diversity Measures in Population Distribution", + author = c(as.person("Michael J. White")), + journal = "Population Index", + year = "1986", + volume = "52", + issue = "2", + pages = "198--221", + doi = "10.2307/3644339", + + textVersion = paste("Michael J. White (1986).", "Segregation and Diversity Measures in Population Distribution.", "Population Index, 52(2), 198-221.", "DOI:10.2307/3644339"), - header = "And (2):" + header = "And (2):" ) From e95311c4bca015d9d0aa461e0cc642f3ed613a67 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Tue, 23 Jan 2024 13:30:52 -0500 Subject: [PATCH 07/23] Preparation for CRAN v0.1.5 release --- DESCRIPTION | 7 ++++--- NEWS.md | 19 +++++++++++++++---- R/anthopolos.R | 44 +++++++++++++++++++++---------------------- R/atkinson.R | 44 +++++++++++++++++++++---------------------- R/bell.R | 40 +++++++++++++++++++-------------------- R/bemanian_beyer.R | 42 ++++++++++++++++++++--------------------- R/bravo.R | 16 ++++++++-------- R/duncan.R | 42 ++++++++++++++++++++--------------------- R/krieger.R | 24 +++++++++++------------ R/messer.R | 24 +++++++++++------------ R/package.R | 12 ++++++------ R/powell_wiley.R | 32 +++++++++++++++---------------- R/sudano.R | 44 +++++++++++++++++++++---------------------- R/white.R | 40 +++++++++++++++++++-------------------- README.md | 20 ++++++++++---------- cran-comments.md | 21 +++++---------------- inst/CITATION | 10 +++++----- man/anthopolos.Rd | 44 +++++++++++++++++++++---------------------- man/atkinson.Rd | 44 +++++++++++++++++++++---------------------- man/bell.Rd | 40 +++++++++++++++++++-------------------- man/bemanian_beyer.Rd | 42 ++++++++++++++++++++--------------------- man/bravo.Rd | 16 ++++++++-------- man/duncan.Rd | 42 ++++++++++++++++++++--------------------- man/krieger.Rd | 24 +++++++++++------------ man/messer.Rd | 24 +++++++++++------------ man/ndi-package.Rd | 12 ++++++------ man/powell_wiley.Rd | 32 +++++++++++++++---------------- man/sudano.Rd | 44 +++++++++++++++++++++---------------------- man/white.Rd | 40 +++++++++++++++++++-------------------- 29 files changed, 443 insertions(+), 442 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 086f7ff..ca8e078 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ndi Title: Neighborhood Deprivation Indices -Version: 0.1.4 -Date: 2023-02-01 +Version: 0.1.5 +Date: 2024-01-23 Authors@R: c(person(given = "Ian D.", family = "Buller", @@ -63,7 +63,8 @@ Imports: tidycensus, tidyr, utils -Suggests: +Suggests: + DescTools, ggplot2, testthat, tigris, diff --git a/NEWS.md b/NEWS.md index 67c798d..db0146a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,12 +1,23 @@ # ndi (development version) +## ndi v0.1.5 + +### New Features +* None + +### Updates +* 'DescTools' is now Suggests to fix Rd cross-references NOTE +* Fixed 'lost braces in \itemize' NOTE for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions +* Fixed 'Moved Permanently' content by replacing the old URL with the new URL +* Fixed citation for Slotman _et al._ (2022) in CITATION + ## ndi v0.1.4 ### New Features * Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio (V) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) -* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (LQ) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) +* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (LQ) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano _et al._ (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) * Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) ### Updates @@ -42,7 +53,7 @@ ## ndi v0.1.2 ### New Features -* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward +* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman _et al._ (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger _et al._ (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward * Thank you for the feature suggestion, [David Berrigan](https://orcid.org/0000-0002-5333-179X) * Added `df` argument for the `messer()` and `powell_wiley()` functions to specify a pre-formatted data set input for the NDI computation * Added `round_output` argument for the `messer()` and `powell_wiley()` functions to provide raw output as the default and rounded output as optional. @@ -68,8 +79,8 @@ ## ndi v0.1.1 ### New Features -* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward -* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward +* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos _et al._ (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward +* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo _et al._ (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward * Added `gini()` function to retrieve the Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319) for specified counties/tracts 2009 onward * Thank you for the feature suggestions, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) diff --git a/R/anthopolos.R b/R/anthopolos.R index 16b131b..fe301a1 100644 --- a/R/anthopolos.R +++ b/R/anthopolos.R @@ -1,4 +1,4 @@ -#' Racial Isolation Index based on Anthopolos et al. (2011) +#' Racial Isolation Index based on Anthopolos _et al._ (2011) #' #' Compute the spatial Racial Isolation Index (Anthopolos) of selected subgroup(s). #' @@ -8,30 +8,30 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos _et al._ (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone\code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. diff --git a/R/atkinson.R b/R/atkinson.R index e324fc7..6185ec6 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -15,33 +15,33 @@ #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = "MedHHInc"}, the metric will be computed for median household income ("B19013_001"). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' #' AI is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). #' -#' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For \code{0.5 < epsilon <= 1.0} or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. +#' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For \code{0.5 < epsilon <= 1.0} or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques _et al._ (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. #' #' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. #' @@ -50,7 +50,7 @@ #' \describe{ #' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and AI at specified larger census geographies.} #' \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI.} #' } #' #' @import dplyr diff --git a/R/bell.R b/R/bell.R index 1c3a563..29d7e36 100644 --- a/R/bell.R +++ b/R/bell.R @@ -15,26 +15,26 @@ #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/R/bemanian_beyer.R b/R/bemanian_beyer.R index 727b698..b97ee28 100644 --- a/R/bemanian_beyer.R +++ b/R/bemanian_beyer.R @@ -15,26 +15,26 @@ #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. @@ -50,7 +50,7 @@ #' \describe{ #' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} #' \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is.} #' } #' #' @import dplyr diff --git a/R/bravo.R b/R/bravo.R index b8d49dc..b1a424f 100644 --- a/R/bravo.R +++ b/R/bravo.R @@ -1,4 +1,4 @@ -#' Educational Isolation Index based on Bravo et al. (2021) +#' Educational Isolation Index based on Bravo _et al._ (2021) #' #' Compute the spatial Educational Isolation Index (Bravo) of selected educational attainment category(ies). #' @@ -8,17 +8,17 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. +#' @details This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo _et al._ (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B06009_002: }{Less than high school graduate "LtHS"} -#' \item{B06009_003: }{High school graduate (includes equivalency) "HSGiE"} -#' \item{B06009_004: }{Some college or associate's degree "SCoAD"} -#' \item{B06009_005: }{Bachelor's degree "BD"} -#' \item{B06009_006: }{Graduate or professional degree "GoPD"} +#' \item **B06009_002**: Less than high school graduate \code{"LtHS"} +#' \item **B06009_003**: High school graduate (includes equivalency) \code{"HSGiE"} +#' \item **B06009_004**: Some college or associate's degree \code{"SCoAD"} +#' \item **B06009_005**: Bachelor's degree \code{"BD"} +#' \item **B06009_006**: Graduate or professional degree \code{"GoPD"} #' } -#' Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the "B15002" question. +#' Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the **B15002** question. #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and EI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the EI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. #' diff --git a/R/duncan.R b/R/duncan.R index 5a73bdc..8215a26 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -15,26 +15,26 @@ #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. @@ -48,7 +48,7 @@ #' \describe{ #' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and DI at specified larger census geographies.} #' \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI.} #' } #' #' @import dplyr diff --git a/R/krieger.R b/R/krieger.R index 8e501aa..6bcdd06 100644 --- a/R/krieger.R +++ b/R/krieger.R @@ -1,4 +1,4 @@ -#' Index of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016) +#' Index of Concentration at the Extremes based on Feldman _et al._ (2015) and Krieger _et al._ (2016) #' #' Compute the aspatial Index of Concentration at the Extremes (Krieger). #' @@ -7,23 +7,23 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: +#' @details This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman _et al._ (2015) \doi{10.1136/jech-2015-205728} and Krieger _et al._ (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: #' #' \itemize{ -#' \item{Income}{80th income percentile vs. 20th income percentile} -#' \item{Education}{less than high school vs. four-year college degree or more} -#' \item{Race/Ethnicity}{white non-Hispanic vs. black non-Hispanic} -#' \item{Income and race/ethnicity combined}{white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile} -#' \item{Income and race/ethnicity combined}{white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile} +#' \item **Income**: 80th income percentile vs. 20th income percentile +#' \item **Education**: less than high school vs. four-year college degree or more +#' \item **Race/Ethnicity**: white non-Hispanic vs. black non-Hispanic +#' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile +#' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile #' } #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five ICE metrics are: #' \itemize{ -#' \item{B03002: }{HISPANIC OR LATINO ORIGIN BY RACE} -#' \item{B15002: }{SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER} -#' \item{B19001: }{HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS)} -#' \item{B19001B: }{HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER)} -#' \item{B19001H: }{HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER)} +#' \item **B03002**: HISPANIC OR LATINO ORIGIN BY RACE +#' \item **B15002**: SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER +#' \item **B19001**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) +#' \item **B19001B**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER) +#' \item **B19001H**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER) #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/R/messer.R b/R/messer.R index 68614da..01b71a5 100644 --- a/R/messer.R +++ b/R/messer.R @@ -1,4 +1,4 @@ -#' Neighborhood Deprivation Index based on Messer et al. (2006) +#' Neighborhood Deprivation Index based on Messer _et al._ (2006) #' #' Compute the aspatial Neighborhood Deprivation Index (Messer). #' @@ -10,19 +10,19 @@ #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer _et al._ (2006) \doi{10.1007/s11524-006-9094-x}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: #' \itemize{ -#' \item{C24030: }{percent males in management, science, and arts occupation} -#' \item{B25014: }{percent of crowded housing} -#' \item{B17017: }{percent of households in poverty} -#' \item{B25115: }{percent of female headed households with dependents} -#' \item{B19058: }{percent of households on public assistance} -#' \item{B19001: }{percent of households earning <$30,000 per year} -#' \item{B06009: }{percent earning less than a high school education} -#' \item{B23025: }{percent unemployed (2011 onward)} -#' \item{B23001: }{percent unemployed (2010 only)} +#' \item **OCC (C24030)**: percent males in management, science, and arts occupation +#' \item **CWD (B25014)**: percent of crowded housing +#' \item **POV (B17017)**: percent of households in poverty +#' \item **FHH (B25115)**: percent of female headed households with dependents +#' \item **PUB (B19058)**: percent of households on public assistance +#' \item **U30 (B19001)**: percent of households earning <$30,000 per year +#' \item **EDU (B06009)**: percent earning less than a high school education +#' \item **EMP (B23025)**: percent unemployed (2011 onward) +#' \item **EMP (B23001)**: percent unemployed (2010 only) #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. @@ -31,7 +31,7 @@ #' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). #' -#' Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer et al. (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). +#' Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer _et al._ (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). #' #' @return An object of class 'list'. This is a named list with the following components: #' diff --git a/R/package.R b/R/package.R index 7bd3f88..6113eef 100644 --- a/R/package.R +++ b/R/package.R @@ -2,7 +2,7 @@ #' #' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. #' -#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer _et al._ (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos _et al._ (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo _et al._ (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman _et al._ (2015) \doi{10.1136/jech-2015-205728} and Krieger _et al._ (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. #' #' Key content of the 'ndi' package include:\cr #' @@ -22,13 +22,13 @@ #' #' \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. #' -#' \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. +#' \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman _et al._ (2015) \doi{10.1136/jech-2015-205728} and Krieger _et al._ (2016) \doi{10.2105/AJPH.2015.302955}. #' -#' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +#' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer _et al._ (2006) \doi{10.1007/s11524-006-9094-x}. #' -#' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +#' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. #' -#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. +#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}. #' #' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. #' @@ -40,7 +40,7 @@ #' @aliases ndi-package ndi #' @docType package #' -#' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. +#' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska _et al._ (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} or Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos _et al._ (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo _et al._ (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. #' #' @author Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a division of DLH Corporation, Silver Spring, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr #' diff --git a/R/powell_wiley.R b/R/powell_wiley.R index 4f5129a..d765dc5 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -1,4 +1,4 @@ -#' Neighborhood Deprivation Index based on Andrews et al. (2020) and Slotman et al. (2022) +#' Neighborhood Deprivation Index based on Andrews _et al._ (2020) and Slotman _et al._ (2022) #' #' Compute the aspatial Neighborhood Deprivation Index (Powell-Wiley). #' @@ -10,26 +10,26 @@ #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: #' \itemize{ -#' \item{MedHHInc (5B19013): }{median household income (dollars)} -#' \item{PctRecvIDR (B19054): }{percent of households receiving dividends, interest, or rental income} -#' \item{PctPubAsst (B19058): }{percent of households receiving public assistance} -#' \item{MedHomeVal (B25077): }{median home value (dollars)} -#' \item{PctMgmtBusScArti (C24060): }{percent in a management, business, science, or arts occupation} -#' \item{PctFemHeadKids (B11005): }{percent of households that are female headed with any children under 18 years} -#' \item{PctOwnerOcc (DP04): }{percent of housing units that are owner occupied} -#' \item{PctNoPhone (DP04): }{percent of households without a telephone} -#' \item{PctNComPlm (DP04): }{percent of households without complete plumbing facilities} -#' \item{PctEducHSPlus (S1501): }{percent with a high school degree or higher (population 25 years and over)} -#' \item{PctEducBchPlus (S1501): }{percent with a college degree or higher (population 25 years and over)} -#' \item{PctFamBelowPov (S1702): }{percent of families with incomes below the poverty level} -#' \item{PctUnempl (S2301): }{percent unemployed} +#' \item **MedHHInc (B19013)**: median household income (dollars) +#' \item **PctRecvIDR (B19054)**: percent of households receiving dividends, interest, or rental income +#' \item **PctPubAsst (B19058)**: percent of households receiving public assistance +#' \item **MedHomeVal (B25077)**: median home value (dollars) +#' \item **PctMgmtBusScArti (C24060)**: percent in a management, business, science, or arts occupation +#' \item **PctFemHeadKids (B11005)**: percent of households that are female headed with any children under 18 years +#' \item **PctOwnerOcc (DP04)**: percent of housing units that are owner occupied +#' \item **PctNoPhone (DP04)**: percent of households without a telephone +#' \item **PctNComPlm (DP04)**: percent of households without complete plumbing facilities +#' \item **PctEducHSPlus (S1501)**: percent with a high school degree or higher (population 25 years and over) +#' \item **PctEducBchPlus (S1501)**: percent with a college degree or higher (population 25 years and over) +#' \item **PctFamBelowPov (S1702)**: percent of families with incomes below the poverty level +#' \item **PctUnempl (S2301)**: percent unemployed #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. #' #' The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. #' diff --git a/R/sudano.R b/R/sudano.R index 89cbab1..cb1afca 100644 --- a/R/sudano.R +++ b/R/sudano.R @@ -1,4 +1,4 @@ -#' Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) +#' Location Quotient (LQ) based on Merton (1938) and Sudano _et al._ (2013) #' #' Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. #' @@ -10,30 +10,30 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/R/white.R b/R/white.R index d645cb2..b5a3505 100644 --- a/R/white.R +++ b/R/white.R @@ -14,26 +14,26 @@ #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item{B03002_002: }{not Hispanic or Latino "NHoL"} -#' \item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -#' \item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -#' \item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -#' \item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -#' \item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -#' \item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -#' \item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -#' \item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -#' \item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -#' \item{B03002_012: }{Hispanic or Latino "HoL"} -#' \item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -#' \item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -#' \item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -#' \item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -#' \item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -#' \item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -#' \item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -#' \item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -#' \item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/README.md b/README.md index c185b7b..d220950 100644 --- a/README.md +++ b/README.md @@ -7,16 +7,16 @@ ndi: Neighborhood Deprivation Indices -**Date repository last updated**: February 01, 2023 +**Date repository last updated**: January 23, 2024 ### Overview -The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), and (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). +The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer _et al._ (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews _et al._ (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman _et al._ (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos _et al._ (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo _et al._ (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman _et al._ (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger _et al._ (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano _et al._ (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), and (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -43,7 +43,7 @@ To install the development version from GitHub: anthopolos -Compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) +Compute the spatial Racial Isolation Index (RI) based on Anthopolos _et al._ (2011) atkinson Compute the aspatial Atkinson Index (AI) based on Atkinson (1970) @@ -55,7 +55,7 @@ To install the development version from GitHub: Compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) bravo -Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) +Compute the spatial Educational Isolation Index (EI) based on Bravo _et al._ (2021) duncan Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) @@ -64,16 +64,16 @@ To install the development version from GitHub: Retrieve the aspatial Gini Index based on Gini (1921) krieger -Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) +Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman _et al._ (2015) and Krieger _et al._ (2016) messer -Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) +Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer _et al._ (2006) powell_wiley -Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010) +Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews _et al._ (2020) and Slotman _et al._ (2022) with variables chosen by Roux and Mair (2010) sudano -Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) +Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano _et al._ (2013) white Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) @@ -722,7 +722,7 @@ This package was originally developed while the author was a postdoctoral fellow ### Acknowledgments -The `messer()` function functionalizes the code found in [Hruska et al. (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x). The `messer()` function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their `SAS` code in `R` for the `powell_wiley()` function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., `SPSS` and `SAS`, respectively) that intrinsically calculate the principal component analysis differently from `R`. The internal function to calculate the Atkinson Index is based on the `Atkinson()` function in the [DescTools](https://cran.r-project.org/package=DescTools) package. +The `messer()` function functionalizes the code found in [Hruska _et al._ (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer _et al._ (2006)](https://doi.org/10.1007/s11524-006-9094-x). The `messer()` function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews _et al._ (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman _et al._ (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their `SAS` code in `R` for the `powell_wiley()` function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews _et al._ (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman _et al._ (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., `SPSS` and `SAS`, respectively) that intrinsically calculate the principal component analysis differently from `R`. The internal function to calculate the Atkinson Index is based on the `Atkinson()` function in the [DescTools](https://cran.r-project.org/package=DescTools) package. When citing this package for publication, please follow: diff --git a/cran-comments.md b/cran-comments.md index ff648c5..e8c6374 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,21 +1,10 @@ -## This is the fifth resubmission +## This is the sixth resubmission * Actions taken since previous submission: - * Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward - * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) - * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio (V) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) - * Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (LQ) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) - * Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) - * `car` is now Imports - * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing - * Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [ndi Issue #5](https://github.com/idblr/ndi/issues/5) - * Updated `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` for consistency in messaging when data are not missing - * Updated tests for `anthopolos()` and `bravo()` if `Sys.getenv("CENSUS_API_KEY") != ""` - * Added `omit_NAs` argument in `duncan()` function to choose if NA values will be included in its computation - * In `duncan()` function, if any smaller geographic unit has zero counts the output for its larger geographic unit will be NA - * Fixed bug in `duncan()` function for multiple `subgroup` and `subgroup_ref` selections - * Updated documentation throughout - * Updated citation style for CITATION file + * 'DescTools' is now Suggests to fix Rd cross-references NOTE + * Fixed 'lost braces in \itemize' NOTE for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions + * Fixed 'Moved Permanently' content by replacing the old URL with the new URL + * Fixed citation for Slotman _et al._ (2022) in CITATION * Documentation for DESCRIPTION, README, NEWS, and vignette references the following DOIs, which throws a NOTE but are a valid URL: * diff --git a/inst/CITATION b/inst/CITATION index ef007a2..8a32f7c 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -2,16 +2,16 @@ bibentry(bibtype = "manual", title = "ndi: Neighborhood Deprivation Indices", author = c(as.person("Ian D. Buller")), publisher = "The Comprehensive R Archive Network", - year = "2022", - number = "0.1.4", + year = "2024", + number = "0.1.5", doi = "10.5281/zenodo.6989030", url = "https://cran.r-project.org/package=ndi", textVersion = - paste("Ian D. Buller (2022).", + paste("Ian D. Buller (2024).", "ndi: Neighborhood Deprivation Indices.", "The Comprehensive R Archive Network.", - "v0.1.4.", + "v0.1.5.", "DOI:10.5281/zenodo.6989030", "Accessed by: https://cran.r-project.org/package=ndi"), @@ -298,7 +298,7 @@ bibentry(bibtype = "Article", textVersion = paste("Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2022).", - "The development of a standardized neighborhood deprivation index.", + "Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group.", "Data in Brief, 41, 108002.", "DOI:10.1016/j.dib.2022.108002"), diff --git a/man/anthopolos.Rd b/man/anthopolos.Rd index bd17867..26043dd 100644 --- a/man/anthopolos.Rd +++ b/man/anthopolos.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/anthopolos.R \name{anthopolos} \alias{anthopolos} -\title{Racial Isolation Index based on Anthopolos et al. (2011)} +\title{Racial Isolation Index based on Anthopolos \emph{et al.} (2011)} \usage{ anthopolos(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) } @@ -29,30 +29,30 @@ An object of class 'list'. This is a named list with the following components: Compute the spatial Racial Isolation Index (Anthopolos) of selected subgroup(s). } \details{ -This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos \emph{et al.} (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone\code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. diff --git a/man/atkinson.Rd b/man/atkinson.Rd index 490257d..6950807 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -38,7 +38,7 @@ An object of class 'list'. This is a named list with the following components: \describe{ \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and AI at specified larger census geographies.} \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI.} } } \description{ @@ -49,33 +49,33 @@ This function will compute the aspatial Atkinson Index (AI) of income or selecte The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = "MedHHInc"}, the metric will be computed for median household income ("B19013_001"). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. AI is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). -The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For \code{0.5 < epsilon <= 1.0} or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. +The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For \code{0.5 < epsilon <= 1.0} or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques \emph{et al.} (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. } diff --git a/man/bell.Rd b/man/bell.Rd index 213faa7..a0743a4 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -49,26 +49,26 @@ This function will compute the aspatial Isolation Index (II) of selected racial/ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/man/bemanian_beyer.Rd b/man/bemanian_beyer.Rd index 6e4db5d..69bebf6 100644 --- a/man/bemanian_beyer.Rd +++ b/man/bemanian_beyer.Rd @@ -38,7 +38,7 @@ An object of class 'list'. This is a named list with the following components: \describe{ \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is.} } } \description{ @@ -49,26 +49,26 @@ This function will compute the aspatial Local Exposure and Isolation (LEx/Is) me The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/man/bravo.Rd b/man/bravo.Rd index c03a142..53727d9 100644 --- a/man/bravo.Rd +++ b/man/bravo.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/bravo.R \name{bravo} \alias{bravo} -\title{Educational Isolation Index based on Bravo et al. (2021)} +\title{Educational Isolation Index based on Bravo \emph{et al.} (2021)} \usage{ bravo(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) } @@ -29,17 +29,17 @@ An object of class 'list'. This is a named list with the following components: Compute the spatial Educational Isolation Index (Bravo) of selected educational attainment category(ies). } \details{ -This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. +This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo \emph{et al.} (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: \itemize{ -\item{B06009_002: }{Less than high school graduate "LtHS"} -\item{B06009_003: }{High school graduate (includes equivalency) "HSGiE"} -\item{B06009_004: }{Some college or associate's degree "SCoAD"} -\item{B06009_005: }{Bachelor's degree "BD"} -\item{B06009_006: }{Graduate or professional degree "GoPD"} +\item \strong{B06009_002}: Less than high school graduate \code{"LtHS"} +\item \strong{B06009_003}: High school graduate (includes equivalency) \code{"HSGiE"} +\item \strong{B06009_004}: Some college or associate's degree \code{"SCoAD"} +\item \strong{B06009_005}: Bachelor's degree \code{"BD"} +\item \strong{B06009_006}: Graduate or professional degree \code{"GoPD"} } -Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the "B15002" question. +Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the \strong{B15002} question. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and EI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the EI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. diff --git a/man/duncan.Rd b/man/duncan.Rd index 330291f..b626abd 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -38,7 +38,7 @@ An object of class 'list'. This is a named list with the following components: \describe{ \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and DI at specified larger census geographies.} \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI.} } } \description{ @@ -49,26 +49,26 @@ This function will compute the aspatial Dissimilarity Index (DI) of selected rac The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/man/krieger.Rd b/man/krieger.Rd index 43eb153..2a09ec4 100644 --- a/man/krieger.Rd +++ b/man/krieger.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/krieger.R \name{krieger} \alias{krieger} -\title{Index of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016)} +\title{Index of Concentration at the Extremes based on Feldman \emph{et al.} (2015) and Krieger \emph{et al.} (2016)} \usage{ krieger(geo = "tract", year = 2020, quiet = FALSE, ...) } @@ -27,23 +27,23 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Index of Concentration at the Extremes (Krieger). } \details{ -This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: +This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman \emph{et al.} (2015) \doi{10.1136/jech-2015-205728} and Krieger \emph{et al.} (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: \itemize{ -\item{Income}{80th income percentile vs. 20th income percentile} -\item{Education}{less than high school vs. four-year college degree or more} -\item{Race/Ethnicity}{white non-Hispanic vs. black non-Hispanic} -\item{Income and race/ethnicity combined}{white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile} -\item{Income and race/ethnicity combined}{white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile} +\item \strong{Income}: 80th income percentile vs. 20th income percentile +\item \strong{Education}: less than high school vs. four-year college degree or more +\item \strong{Race/Ethnicity}: white non-Hispanic vs. black non-Hispanic +\item \strong{Income and race/ethnicity combined}: white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile +\item \strong{Income and race/ethnicity combined}: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile } The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five ICE metrics are: \itemize{ -\item{B03002: }{HISPANIC OR LATINO ORIGIN BY RACE} -\item{B15002: }{SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER} -\item{B19001: }{HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS)} -\item{B19001B: }{HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER)} -\item{B19001H: }{HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER)} +\item \strong{B03002}: HISPANIC OR LATINO ORIGIN BY RACE +\item \strong{B15002}: SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER +\item \strong{B19001}: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) +\item \strong{B19001B}: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER) +\item \strong{B19001H}: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER) } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/man/messer.Rd b/man/messer.Rd index 73b3725..b9c4f5e 100644 --- a/man/messer.Rd +++ b/man/messer.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/messer.R \name{messer} \alias{messer} -\title{Neighborhood Deprivation Index based on Messer et al. (2006)} +\title{Neighborhood Deprivation Index based on Messer \emph{et al.} (2006)} \usage{ messer( geo = "tract", @@ -42,19 +42,19 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Neighborhood Deprivation Index (Messer). } \details{ -This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer \emph{et al.} (2006) \doi{10.1007/s11524-006-9094-x}. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: \itemize{ -\item{C24030: }{percent males in management, science, and arts occupation} -\item{B25014: }{percent of crowded housing} -\item{B17017: }{percent of households in poverty} -\item{B25115: }{percent of female headed households with dependents} -\item{B19058: }{percent of households on public assistance} -\item{B19001: }{percent of households earning <$30,000 per year} -\item{B06009: }{percent earning less than a high school education} -\item{B23025: }{percent unemployed (2011 onward)} -\item{B23001: }{percent unemployed (2010 only)} +\item \strong{OCC (C24030)}: percent males in management, science, and arts occupation +\item \strong{CWD (B25014)}: percent of crowded housing +\item \strong{POV (B17017)}: percent of households in poverty +\item \strong{FHH (B25115)}: percent of female headed households with dependents +\item \strong{PUB (B19058)}: percent of households on public assistance +\item \strong{U30 (B19001)}: percent of households earning <$30,000 per year +\item \strong{EDU (B06009)}: percent earning less than a high school education +\item \strong{EMP (B23025)}: percent unemployed (2011 onward) +\item \strong{EMP (B23001)}: percent unemployed (2010 only) } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. @@ -63,7 +63,7 @@ The continuous NDI (Messer) values are z-transformed, i.e., "standardized," and Check if the proportion of variance explained by the first principal component is high (more than 0.5). -Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer et al. (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). +Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer \emph{et al.} (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). } \examples{ diff --git a/man/ndi-package.Rd b/man/ndi-package.Rd index 86d35f4..f06f9ac 100644 --- a/man/ndi-package.Rd +++ b/man/ndi-package.Rd @@ -9,7 +9,7 @@ Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. } \details{ -The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer \emph{et al.} (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos \emph{et al.} (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo \emph{et al.} (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman \emph{et al.} (2015) \doi{10.1136/jech-2015-205728} and Krieger \emph{et al.} (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. Key content of the 'ndi' package include:\cr @@ -29,13 +29,13 @@ Key content of the 'ndi' package include:\cr \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. -\code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. +\code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman \emph{et al.} (2015) \doi{10.1136/jech-2015-205728} and Krieger \emph{et al.} (2016) \doi{10.2105/AJPH.2015.302955}. -\code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +\code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer \emph{et al.} (2006) \doi{10.1007/s11524-006-9094-x}. -\code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +\code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. -\code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. +\code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}. \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. @@ -44,7 +44,7 @@ Key content of the 'ndi' package include:\cr \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. } \section{Dependencies}{ - The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. + The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska \emph{et al.} (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} or Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos \emph{et al.} (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo \emph{et al.} (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. } \author{ diff --git a/man/powell_wiley.Rd b/man/powell_wiley.Rd index ec1b26d..3ca5529 100644 --- a/man/powell_wiley.Rd +++ b/man/powell_wiley.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/powell_wiley.R \name{powell_wiley} \alias{powell_wiley} -\title{Neighborhood Deprivation Index based on Andrews et al. (2020) and Slotman et al. (2022)} +\title{Neighborhood Deprivation Index based on Andrews \emph{et al.} (2020) and Slotman \emph{et al.} (2022)} \usage{ powell_wiley( geo = "tract", @@ -43,26 +43,26 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Neighborhood Deprivation Index (Powell-Wiley). } \details{ -This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. +This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002}. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: \itemize{ -\item{MedHHInc (5B19013): }{median household income (dollars)} -\item{PctRecvIDR (B19054): }{percent of households receiving dividends, interest, or rental income} -\item{PctPubAsst (B19058): }{percent of households receiving public assistance} -\item{MedHomeVal (B25077): }{median home value (dollars)} -\item{PctMgmtBusScArti (C24060): }{percent in a management, business, science, or arts occupation} -\item{PctFemHeadKids (B11005): }{percent of households that are female headed with any children under 18 years} -\item{PctOwnerOcc (DP04): }{percent of housing units that are owner occupied} -\item{PctNoPhone (DP04): }{percent of households without a telephone} -\item{PctNComPlm (DP04): }{percent of households without complete plumbing facilities} -\item{PctEducHSPlus (S1501): }{percent with a high school degree or higher (population 25 years and over)} -\item{PctEducBchPlus (S1501): }{percent with a college degree or higher (population 25 years and over)} -\item{PctFamBelowPov (S1702): }{percent of families with incomes below the poverty level} -\item{PctUnempl (S2301): }{percent unemployed} +\item \strong{MedHHInc (B19013)}: median household income (dollars) +\item \strong{PctRecvIDR (B19054)}: percent of households receiving dividends, interest, or rental income +\item \strong{PctPubAsst (B19058)}: percent of households receiving public assistance +\item \strong{MedHomeVal (B25077)}: median home value (dollars) +\item \strong{PctMgmtBusScArti (C24060)}: percent in a management, business, science, or arts occupation +\item \strong{PctFemHeadKids (B11005)}: percent of households that are female headed with any children under 18 years +\item \strong{PctOwnerOcc (DP04)}: percent of housing units that are owner occupied +\item \strong{PctNoPhone (DP04)}: percent of households without a telephone +\item \strong{PctNComPlm (DP04)}: percent of households without complete plumbing facilities +\item \strong{PctEducHSPlus (S1501)}: percent with a high school degree or higher (population 25 years and over) +\item \strong{PctEducBchPlus (S1501)}: percent with a college degree or higher (population 25 years and over) +\item \strong{PctFamBelowPov (S1702)}: percent of families with incomes below the poverty level +\item \strong{PctUnempl (S2301)}: percent unemployed } -Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. diff --git a/man/sudano.Rd b/man/sudano.Rd index 4966a36..4576cc3 100644 --- a/man/sudano.Rd +++ b/man/sudano.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/sudano.R \name{sudano} \alias{sudano} -\title{Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013)} +\title{Location Quotient (LQ) based on Merton (1938) and Sudano \emph{et al.} (2013)} \usage{ sudano( geo_large = "county", @@ -42,30 +42,30 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/man/white.Rd b/man/white.Rd index a6eafc2..cdcafee 100644 --- a/man/white.Rd +++ b/man/white.Rd @@ -46,26 +46,26 @@ This function will compute the aspatial Correlation Ratio (V or \eqn{Eta^{2}}{Et The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item{B03002_002: }{not Hispanic or Latino "NHoL"} -\item{B03002_003: }{not Hispanic or Latino, white alone "NHoLW"} -\item{B03002_004: }{not Hispanic or Latino, Black or African American alone "NHoLB"} -\item{B03002_005: }{not Hispanic or Latino, American Indian and Alaska Native alone "NHoLAIAN"} -\item{B03002_006: }{not Hispanic or Latino, Asian alone "NHoLA"} -\item{B03002_007: }{not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "NHoLNHOPI"} -\item{B03002_008: }{not Hispanic or Latino, Some other race alone "NHoLSOR"} -\item{B03002_009: }{not Hispanic or Latino, Two or more races "NHoLTOMR"} -\item{B03002_010: }{not Hispanic or Latino, Two races including Some other race "NHoLTRiSOR"} -\item{B03002_011: }{not Hispanic or Latino, Two races excluding Some other race, and three or more races "NHoLTReSOR"} -\item{B03002_012: }{Hispanic or Latino "HoL"} -\item{B03002_013: }{Hispanic or Latino, white alone "HoLW"} -\item{B03002_014: }{Hispanic or Latino, Black or African American alone "HoLB"} -\item{B03002_015: }{Hispanic or Latino, American Indian and Alaska Native alone "HoLAIAN"} -\item{B03002_016: }{Hispanic or Latino, Asian alone "HoLA"} -\item{B03002_017: }{Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone "HoLNHOPI"} -\item{B03002_018: }{Hispanic or Latino, Some other race alone "HoLSOR"} -\item{B03002_019: }{Hispanic or Latino, Two or more races "HoLTOMR"} -\item{B03002_020: }{Hispanic or Latino, Two races including Some other race "HoLTRiSOR"} -\item{B03002_021: }{Hispanic or Latino, Two races excluding Some other race, and three or more races "HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} +\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. From 42647224c341d2aa47b481d177cc17185ec25163 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Thu, 4 Jul 2024 15:55:58 -0400 Subject: [PATCH 08/23] Update R-CMD-check.yaml * Removed `ubuntu-latest (oldrel-1)` from GitHub Actions for R-CMD-Check * In response to #8 --- .github/workflows/R-CMD-check.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index a3ac618..2bf6580 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -22,7 +22,6 @@ jobs: - {os: windows-latest, r: 'release'} - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - - {os: ubuntu-latest, r: 'oldrel-1'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} From e14c17bf74bbe5bbdc0f59d366d482ab54a11abc Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 13:15:49 -0400 Subject: [PATCH 09/23] Initial commit for branch "dev_hoover" (ndi v0.1.6.9000) * Added `hoover()` function to compute the aspatial racial/ethnic Delta (DEL) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) --- R/hoover.R | 292 +++++++++++++++++++++++++++++++++++ R/utils.R | 16 ++ tests/testthat/test-hoover.R | 77 +++++++++ 3 files changed, 385 insertions(+) create mode 100644 R/hoover.R create mode 100644 tests/testthat/test-hoover.R diff --git a/R/hoover.R b/R/hoover.R new file mode 100644 index 0000000..e8afe1e --- /dev/null +++ b/R/hoover.R @@ -0,0 +1,292 @@ +#' Delta based on Hoover (1941) and Duncan et al. (1961) +#' +#' Compute the aspatial Delta (Hoover) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute the aspatial Delta (DEL) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of DEL for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' DEL is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. DEL can range in value from 0 to 1. +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DEL value returned is NA. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{del}}{An object of class 'tbl' for the GEOID, name, and DEL at specified larger census geographies.} +#' \item{\code{del_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DEL.} +#' } +#' +#' @import dplyr +#' @importFrom sf st_drop_geometry +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Delta (a measure of concentration) of non-Hispanic Black vs. non-Hispanic white populations +#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' hoover( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB' +#' ) +#' +#' } +#' +hoover <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + omit_NAs = TRUE, + quiet = FALSE, + ...) { + + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[subgroup] + out_names <- c(names(selected_vars), 'ALAND') # save for output + in_subgroup <- paste(subgroup, 'E', sep = '') + + # Acquire DEL variables and sf geometries + del_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + # Format output + if (geo_small == 'county') { + del_data <- del_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') + } + if (geo_small == 'tract') { + del_data <- del_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + del_data <- del_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for DEL computation + if (geo_large == 'tract') { + del_data <- del_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'county') { + del_data <- del_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'state') { + del_data <- del_data %>% + dplyr::mutate( + oid = .$STATEFP, + state = stringr::str_trim(state) + ) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + del_data <- del_data %>% + dplyr::mutate(subgroup = .[ , in_subgroup]) + } else { + del_data <- del_data %>% + dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + } + + # Compute DEL + ## From Hoover (1961) https://10.1017/S0022050700052980 + ## 0.5\sum_{i=1}^{n}\left|\frac{x_{i}}{X}-\frac{a_{i}}{A}\right| + ## Where for k geographical units i: + ## X denotes the total number of subgroup population in study (reference) area + ## x_{i} denotes the number of subgroup population X in geographical unit i + ## A denotes the total land area in study (reference) area (sum of all a_{i} + ## a_{i} denotes the land area of geographical unit i + + ## Compute + DELtmp <- del_data %>% + split(., f = list(del_data$oid)) %>% + lapply(., FUN = del_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate(DEL = values, oid = ind) %>% + dplyr::select(DEL, oid) + + # Warning for missingness of census characteristics + missingYN <- del_data[ , c(in_subgroup, 'ALAND')] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer(cols = dplyr::everything(), names_to = 'variable', values_to = 'val') %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo_large == 'state') { + del <- del_data %>% + dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, DEL) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, DEL) %>% + .[.$GEOID != 'NANA', ] + } + if (geo_large == 'county') { + del <- del_data %>% + dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, DEL) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, DEL) %>% + .[.$GEOID != 'NANA', ] + } + if (geo_large == 'tract') { + del <- del_data %>% + dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, tract, DEL) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, DEL) %>% + .[.$GEOID != 'NANA', ] + } + + del <- del %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + del_data <- del_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(del = del, del_data = del_data, missing = missingYN) + + return(out) +} diff --git a/R/utils.R b/R/utils.R index a7e1553..94e39fd 100644 --- a/R/utils.R +++ b/R/utils.R @@ -88,3 +88,19 @@ lexis_fun <- function(x, omit_NAs) { return(df) } } + +# Internal function for the aspatial Delta (Hoover 1941) +## Returns NA value if only one smaller geography in a larger geography +del_fun <- function(x, omit_NAs) { + xx <- x[ , c('subgroup', 'ALAND')] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } + if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { + NA + } else { + 0.5 * sum( + abs((xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) - (xx$ALAND / sum(xx$ALAND, na.rm = TRUE)) + ), + na.rm = TRUE + ) + } +} diff --git a/tests/testthat/test-hoover.R b/tests/testthat/test-hoover.R new file mode 100644 index 0000000..994f7d2 --- /dev/null +++ b/tests/testthat/test-hoover.R @@ -0,0 +1,77 @@ +context('hoover') + +# --------------- # +# hoover testthat # +# --------------- # + +test_that('hoover throws error with invalid arguments', { + # Unavailable geography + expect_error(hoover( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) + expect_error( + hoover( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + ) + ) + + # Unavailable year + expect_error(hoover( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + quiet = TRUE + )) + + # Unavailable subgroup + expect_error(hoover( + state = 'DC', + year = 2020, + subgroup = 'terran', + quiet = TRUE + )) + + skip_if(Sys.getenv('CENSUS_API_KEY') == '') + + # Incorrect state + expect_error(hoover( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) + +}) + +test_that('hoover works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') + + expect_silent(hoover( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + )) + + expect_silent(hoover( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) + + expect_silent(hoover( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + quiet = TRUE + )) + +}) From 07c46288f685d327db34a765a552ec807527e34c Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 13:20:49 -0400 Subject: [PATCH 10/23] :bug: Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` * when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA --- NEWS.md | 25 +++++++++++++++++-------- R/utils.R | 33 ++++++++++++++++++++++++--------- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/NEWS.md b/NEWS.md index db0146a..85e070f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,14 @@ # ndi (development version) +## ndi v0.1.6.9000 + +### New Features +* Added `hoover()` function to compute the aspatial racial/ethnic Delta (DEL) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) +* Thank you for the feature suggestion, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) + +### Updates +* Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA + ## ndi v0.1.5 ### New Features @@ -9,7 +18,7 @@ * 'DescTools' is now Suggests to fix Rd cross-references NOTE * Fixed 'lost braces in \itemize' NOTE for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions * Fixed 'Moved Permanently' content by replacing the old URL with the new URL -* Fixed citation for Slotman _et al._ (2022) in CITATION +* Fixed citation for Slotman et al. (2022) in CITATION ## ndi v0.1.4 @@ -17,7 +26,7 @@ * Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward * Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio (V) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) -* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (LQ) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano _et al._ (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) +* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (LQ) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) * Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) ### Updates @@ -25,7 +34,7 @@ * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing * Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [ndi Issue #5](https://github.com/idblr/ndi/issues/5) * Updated `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` for consistency in messaging when data are not missing -* Updated tests for `anthopolos()` and `bravo()` if `Sys.getenv("CENSUS_API_KEY") != ""` +* Updated tests for `anthopolos()` and `bravo()` if `Sys.getenv('CENSUS_API_KEY') != ''` * Added `omit_NAs` argument in `duncan()` function to choose if NA values will be included in its computation * In `duncan()` function, if any smaller geographic unit has zero counts the output for its larger geographic unit will be NA * Fixed bug in `duncan()` function for multiple `subgroup` and `subgroup_ref` selections @@ -41,7 +50,7 @@ * Added 'utils.R' file with internal `di_fun()` function for `duncan()` function ### Updates -* Fixed bug in `bravo()` function where ACS-5 data (2005-2009) are from the "B15002" question and "B06009" after +* Fixed bug in `bravo()` function where ACS-5 data (2005-2009) are from the 'B15002' question and 'B06009' after * Fixed bug in missingness warning for all metrics * `utils` is now Imports * Updated vignette and README with new features @@ -53,7 +62,7 @@ ## ndi v0.1.2 ### New Features -* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman _et al._ (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger _et al._ (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward +* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward * Thank you for the feature suggestion, [David Berrigan](https://orcid.org/0000-0002-5333-179X) * Added `df` argument for the `messer()` and `powell_wiley()` functions to specify a pre-formatted data set input for the NDI computation * Added `round_output` argument for the `messer()` and `powell_wiley()` functions to provide raw output as the default and rounded output as optional. @@ -64,7 +73,7 @@ * Fixed bug in `powell_wiley()` function where the internal PCA will now run properly if only one factor has an eigenvalue above 1 * Optimized the code to calculate missingness in all functions * Thank you for the suggested bug fixes, [Jacob Englert](https://github.com/jacobenglert) -* Fixed bug in `powell_wiley()` function where "PctNoPhone" before 2015 is "DP04_0074PE" and "DP04_0075PE" after +* Fixed bug in `powell_wiley()` function where 'PctNoPhone' before 2015 is 'DP04_0074PE' and 'DP04_0075PE' after * Thank you for alerting this issue, [Jessica Gleason](https://orcid.org/0000-0001-9877-7931) * Relaxed `year` argument in functions to include any year after 2009 or 2010 for the indices * Cleaned-up output formatting in functions @@ -79,8 +88,8 @@ ## ndi v0.1.1 ### New Features -* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos _et al._ (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward -* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo _et al._ (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward +* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward +* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward * Added `gini()` function to retrieve the Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319) for specified counties/tracts 2009 onward * Thank you for the feature suggestions, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) diff --git a/R/utils.R b/R/utils.R index 94e39fd..5a37b7d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,12 +1,17 @@ # Internal function for the Dissimilarity Index (Duncan & Duncan 1955) ## Returns NA value if only one smaller geography in a larger geography di_fun <- function(x, omit_NAs) { - xx <- x[ , c("subgroup", "subgroup_ref")] + xx <- x[ , c('subgroup', 'subgroup_ref')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - 1/2 * sum(abs(xx$subgroup / sum(xx$subgroup, na.rm = TRUE) - xx$subgroup_ref / sum(xx$subgroup_ref, na.rm = TRUE))) + 0.5 * sum( + abs( + xx$subgroup / sum(xx$subgroup, na.rm = TRUE) - + xx$subgroup_ref / sum(xx$subgroup_ref, na.rm = TRUE) + ), + na.rm = TRUE) } } @@ -34,24 +39,30 @@ ai_fun <- function(x, epsilon, omit_NAs) { # Internal function for the aspatial Racial Isolation Index (Bell 1954) ## Returns NA value if only one smaller geography in a larger geography ii_fun <- function(x, omit_NAs) { - xx <- x[ , c("TotalPopE", "subgroup", "subgroup_ixn")] + xx <- x[ , c('TotalPopE', 'subgroup', 'subgroup_ixn')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - sum((xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup_ixn / xx$TotalPopE)) + sum( + (xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup_ixn / xx$TotalPopE), + na.rm = TRUE + ) } } # Internal function for the aspatial Correlation Ratio (White 1986) ## Returns NA value if only one smaller geography in a larger geography v_fun <- function(x, omit_NAs) { - xx <- x[ , c("TotalPopE", "subgroup")] + xx <- x[ , c('TotalPopE', 'subgroup')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - xxx <- sum((xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup / xx$TotalPopE)) + xxx <- sum( + (xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup / xx$TotalPopE), + na.rm = TRUE + ) px <- sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) (xxx - px) / (1 - px) } @@ -60,12 +71,14 @@ v_fun <- function(x, omit_NAs) { # Internal function for the aspatial Location Quotient (Sudano et al. 2013) ## Returns NA value if only one smaller geography in a larger geography lq_fun <- function(x, omit_NAs) { - xx <- x[ , c("TotalPopE", "subgroup", "GEOID")] + xx <- x[ , c('TotalPopE', 'subgroup', 'GEOID')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - LQ <- (xx$subgroup / xx$TotalPopE) / (sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE)) + p_im <- xx$subgroup / xx$TotalPopE + if (anyNA(p_im)) { p_im[is.na(p_im), ] <- 0 } + LQ <- p_im / (sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE)) df <- data.frame(LQ = LQ, GEOID = xx$GEOID) return(df) } @@ -74,13 +87,15 @@ lq_fun <- function(x, omit_NAs) { # Internal function for the aspatial Local Exposure & Isolation (Bemanian & Beyer 2017) metric ## Returns NA value if only one smaller geography in a larger geography lexis_fun <- function(x, omit_NAs) { - xx <- x[ , c("TotalPopE", "subgroup", "subgroup_ixn", "GEOID")] + xx <- x[ , c('TotalPopE', 'subgroup', 'subgroup_ixn', 'GEOID')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { p_im <- xx$subgroup / xx$TotalPopE + if (anyNA(p_im)) { p_im[is.na(p_im), ] <- 0 } p_in <- xx$subgroup_ixn / xx$TotalPopE + if (anyNA(p_in)) { p_in[is.na(p_in), ] <- 0 } P_m <- sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) P_n <- sum(xx$subgroup_ixn, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) LExIs <- car::logit(p_im * p_in) - car::logit(P_m * P_n) From f0346d943ef8a09660f0aca6b52c73ad42886ccc Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 13:22:56 -0400 Subject: [PATCH 11/23] :truck: * Replaced 'package.R' with 'ndi-package.R' * 'package.R' deprecated --- NEWS.md | 1 + R/ndi-package.R | 64 +++++++++++++++++++++++++++++++++++++++++++++++++ R/package.R | 63 ------------------------------------------------ 3 files changed, 65 insertions(+), 63 deletions(-) create mode 100644 R/ndi-package.R delete mode 100644 R/package.R diff --git a/NEWS.md b/NEWS.md index 85e070f..e08d78a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -8,6 +8,7 @@ ### Updates * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA +* 'package.R' deprecated. Replaced with 'ndi-package.R'. ## ndi v0.1.5 diff --git a/R/ndi-package.R b/R/ndi-package.R new file mode 100644 index 0000000..efc4dc6 --- /dev/null +++ b/R/ndi-package.R @@ -0,0 +1,64 @@ +#' The ndi Package: Neighborhood Deprivation Indices +#' +#' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. +#' +#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation metric based on Bemanian & Beyer (2017) , and (10) aspatial racial/ethnic Delta based on Hoover (1941) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' +#' Key content of the 'ndi' package include:\cr +#' +#' \bold{Metrics of Socio-Economic Deprivation and Disparity} +#' +#' \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (RI) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. +#' +#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +#' +#' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. +#' +#' \code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. +#' +#' \code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. +#' +#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. +#' +#' \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' +#' \code{\link{hoover}} Computes the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) \doi{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). +#' +#' \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. +#' +#' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +#' +#' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +#' +#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. +#' +#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. +#' +#' \bold{Pre-formatted U.S. Census Data} +#' +#' \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. +#' +#' @name ndi-package +#' @aliases ndi-package ndi +#' +#' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. +#' +#' @author Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a DLH Corporation Holding Company, Bethesda, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr +#' +#' Maintainer: I.D.B. \email{ian.buller@@alumni.emory.edu} +#' +#' @keywords internal +'_PACKAGE' + +#' @import dplyr +#' @importFrom car logit +#' @importFrom MASS ginv +#' @importFrom Matrix sparseMatrix +#' @importFrom psych alpha principal +#' @importFrom sf st_drop_geometry st_geometry st_intersects +#' @importFrom stats complete.cases cor cov2cor loadings median na.omit promax quantile sd setNames +#' @importFrom stringr str_trim +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom utils stack +NULL diff --git a/R/package.R b/R/package.R deleted file mode 100644 index 6113eef..0000000 --- a/R/package.R +++ /dev/null @@ -1,63 +0,0 @@ -#' The ndi Package: Neighborhood Deprivation Indices -#' -#' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. -#' -#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer _et al._ (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos _et al._ (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo _et al._ (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman _et al._ (2015) \doi{10.1136/jech-2015-205728} and Krieger _et al._ (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. -#' -#' Key content of the 'ndi' package include:\cr -#' -#' \bold{Metrics of Socio-Economic Deprivation and Disparity} -#' -#' \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (RI) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. -#' -#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. -#' -#' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. -#' -#' \code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. -#' -#' \code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. -#' -#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. -#' -#' \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. -#' -#' \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman _et al._ (2015) \doi{10.1136/jech-2015-205728} and Krieger _et al._ (2016) \doi{10.2105/AJPH.2015.302955}. -#' -#' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer _et al._ (2006) \doi{10.1007/s11524-006-9094-x}. -#' -#' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. -#' -#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}. -#' -#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. -#' -#' \bold{Pre-formatted U.S. Census Data} -#' -#' \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. -#' -#' @name ndi-package -#' @aliases ndi-package ndi -#' @docType package -#' -#' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska _et al._ (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} or Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos _et al._ (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo _et al._ (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. -#' -#' @author Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a division of DLH Corporation, Silver Spring, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr -#' -#' Maintainer: I.D.B. \email{ian.buller@@alumni.emory.edu} -#' -#' @keywords package -NULL - -#' @import dplyr -#' @importFrom car logit -#' @importFrom MASS ginv -#' @importFrom Matrix sparseMatrix -#' @importFrom psych alpha principal -#' @importFrom sf st_drop_geometry st_geometry st_intersects -#' @importFrom stats complete.cases cor cov2cor loadings median na.omit promax quantile sd setNames -#' @importFrom stringr str_trim -#' @importFrom tidycensus get_acs -#' @importFrom tidyr pivot_longer separate -#' @importFrom utils stack -NULL From 4f60480fb156b3b23eedfe3f81ae843508949180 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 13:27:58 -0400 Subject: [PATCH 12/23] :art: Re-formatted code and documentation throughout * For consistent readability * Updated documentation about value range of V (White) from `{0 to 1}` to `{-Inf to Inf}` --- NEWS.md | 2 + R/DCtracts2020.R | 2 +- R/anthopolos.R | 397 ++++++++------- R/atkinson.R | 489 ++++++++++--------- R/bell.R | 521 +++++++++++--------- R/bemanian_beyer.R | 502 +++++++++++-------- R/bravo.R | 472 +++++++++++------- R/duncan.R | 518 +++++++++++--------- R/gini.R | 102 ++-- R/globals.R | 296 ++++++++++-- R/krieger.R | 693 +++++++++++++++++---------- R/messer.R | 399 +++++++++------ R/powell_wiley.R | 683 +++++++++++++++----------- R/sudano.R | 300 +++++++----- R/white.R | 275 ++++++----- R/zzz.R | 2 +- README.md | 470 ++++++++++-------- data-raw/get_DCtracts2020.R | 281 +++++++---- dev/hex_ndi.R | 82 ++-- inst/CITATION | 624 ++++++++++++------------ man/anthopolos.Rd | 68 +-- man/atkinson.Rd | 63 +-- man/bell.Rd | 60 +-- man/bemanian_beyer.Rd | 60 +-- man/bravo.Rd | 40 +- man/duncan.Rd | 60 +-- man/figures/del.png | Bin 0 -> 378401 bytes man/gini.Rd | 14 +- man/hoover.Rd | 96 ++++ man/krieger.Rd | 16 +- man/messer.Rd | 16 +- man/ndi-package.Rd | 28 +- man/powell_wiley.Rd | 20 +- man/sudano.Rd | 63 +-- man/white.Rd | 57 ++- tests/testthat.R | 2 +- tests/testthat/test-anthopolos.R | 71 ++- tests/testthat/test-atkinson.R | 98 ++-- tests/testthat/test-bell.R | 108 +++-- tests/testthat/test-bemanian_beyer.R | 118 +++-- tests/testthat/test-bravo.R | 71 ++- tests/testthat/test-duncan.R | 118 +++-- tests/testthat/test-gini.R | 54 ++- tests/testthat/test-krieger.R | 49 +- tests/testthat/test-messer.R | 79 ++- tests/testthat/test-powell_wiley.R | 81 +++- tests/testthat/test-sudano.R | 89 ++-- tests/testthat/test-white.R | 89 ++-- 48 files changed, 5338 insertions(+), 3460 deletions(-) create mode 100644 man/figures/del.png create mode 100644 man/hoover.Rd diff --git a/NEWS.md b/NEWS.md index e08d78a..b2f1942 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,6 +9,8 @@ ### Updates * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA * 'package.R' deprecated. Replaced with 'ndi-package.R'. +* Re-formatted code and documentation throughout for consistent readability +* Updated documentation about value range of V (White) from `{0 to 1}` to `{-Inf to Inf}` ## ndi v0.1.5 diff --git a/R/DCtracts2020.R b/R/DCtracts2020.R index d085901..1e466bf 100644 --- a/R/DCtracts2020.R +++ b/R/DCtracts2020.R @@ -32,4 +32,4 @@ #' head(DCtracts2020) #' #' @source \url{https://github.com/idblr/ndi/blob/master/README.md} -"DCtracts2020" +'DCtracts2020' diff --git a/R/anthopolos.R b/R/anthopolos.R index fe301a1..5b7c95a 100644 --- a/R/anthopolos.R +++ b/R/anthopolos.R @@ -1,50 +1,50 @@ -#' Racial Isolation Index based on Anthopolos _et al._ (2011) -#' +#' Racial Isolation Index based on Anthopolos et al. (2011) +#' #' Compute the spatial Racial Isolation Index (Anthopolos) of selected subgroup(s). #' -#' @param geo Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}. +#' @param geo Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos _et al._ (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -#' +#' @details This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone\code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone\code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. -#' +#' #' A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an RI value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an RI value close to 0. -#' +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{ri}}{An object of class 'tbl' for the GEOID, name, RI, and raw census values of specified census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute RI.} #' } -#' +#' #' @import dplyr #' @importFrom Matrix sparseMatrix #' @importFrom sf st_drop_geometry st_geometry st_intersects @@ -52,161 +52,206 @@ #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Tract-level metric (2020) -#' anthopolos(geo = "tract", state = "GA", -#' year = 2020, subgroup = c("NHoLB", "HoLB")) -#' +#' anthopolos( +#' geo = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = c('NHoLB', 'HoLB') +#' ) +#' #' # County-level metric (2020) -#' anthopolos(geo = "county", state = "GA", -#' year = 2020, subgroup = c("NHoLB", "HoLB")) -#' +#' anthopolos( +#' geo = 'county', +#' state = 'GA', +#' year = 2020, +#' subgroup = c('NHoLB', 'HoLB') +#' ) +#' #' } -#' -anthopolos <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo, choices = c("county", "tract")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - - # Select census variables - vars <- c(TotalPop = "B03002_001", - NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021") - - selected_vars <- vars[c("TotalPop", subgroup)] - out_names <- names(selected_vars) # save for output - prefix <- "subgroup" - suffix <- seq(1:length(subgroup)) - names(selected_vars) <- c("TotalPop", paste(prefix, suffix, sep = "")) - in_names <- paste(names(selected_vars), "E", sep = "") - - # Acquire RI variables and sf geometries - ri_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, ...))) - +#' +anthopolos <- function(geo = 'tract', + year = 2020, + subgroup, + quiet = FALSE, + ...) { - if (geo == "tract") { + # Check arguments + match.arg(geo, choices = c('county', 'tract')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup)] + out_names <- names(selected_vars) # save for output + prefix <- 'subgroup' + suffix <- seq(1:length(subgroup)) + names(selected_vars) <- c('TotalPop', paste(prefix, suffix, sep = '')) + in_names <- paste(names(selected_vars), 'E', sep = '') + + # Acquire RI variables and sf geometries + ri_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + ... + ) + )) + + if (geo == 'tract') { + ri_data <- ri_data %>% + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } else { + ri_data <- ri_data %>% + tidyr::separate(NAME, into = c('county', 'state'), sep = ',') + } + ri_data <- ri_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) - } else { - ri_data <- ri_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") - } - - ri_data <- ri_data %>% - dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ri_data[ , in_names[-1]]))) - - # Compute RI - ## From Anthopolos et al. (2011) https://doi.org/10.1016/j.sste.2011.06.002 - ## RI_{im} = (Sigma_{j∈∂_{i}} w_{ij} * T_{jm}) / (Sigma_{j∈∂_{i}} w_{ij} * T_{j}) - ## Where: - ## ∂_{i} denotes the set of index units i and its neighbors - ## Given M mutually exclusive racial/ethnic subgroups, m indexes the subgroups of M - ## T_{i} denotes the total population in region i (TotalPop) - ## T_{im} denotes the population of the selected subgroup(s) (subgroup1, ...) - ## w_{ij} denotes a nXn first-order adjacency matrix, where n is the number of census geometries in the study area - ### and the entries of w_{ij} are set to 1 if a boundary is shared by region i and region j and zero otherwise - ### Entries of the main diagonal (since i∈∂_{i}, w_{ij} = w_{ii} when j = i) of w_{ij} are set to 1.5 - ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts - - ## Geospatial adjacency matrix (wij) - tmp <- sf::st_intersects(sf::st_geometry(ri_data), sparse = TRUE) - names(tmp) <- as.character(seq_len(nrow(ri_data))) - tmpL <- length(tmp) - tmpcounts <- unlist(Map(length, tmp)) - tmpi <- rep(1:tmpL, tmpcounts) - tmpj <- unlist(tmp) - wij <- Matrix::sparseMatrix(i = tmpi, j = tmpj, x = 1, dims = c(tmpL, tmpL)) - diag(wij) <- 1.5 - - ## Compute - ri_data <- sf::st_drop_geometry(ri_data) # drop geometries (can join back later) - RIim <- list() - for (i in 1:dim(wij)[1]){ - RIim[[i]] <- sum(as.matrix(wij[i, ])*ri_data[ , "subgroup"]) / sum(as.matrix(wij[i, ])*ri_data[, "TotalPopE"]) - } - ri_data$RI <- unlist(RIim) - - # Warning for missingness of census characteristics - missingYN <- ri_data[ , in_names] - names(missingYN) <- out_names - missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) - - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ri_data[, in_names[-1]]))) + + # Compute RI + ## From Anthopolos et al. (2011) https://doi.org/10.1016/j.sste.2011.06.002 + ## RI_{im} = (Sigma_{j∈∂_{i}} w_{ij} * T_{jm}) / (Sigma_{j∈∂_{i}} w_{ij} * T_{j}) + ## Where: + ## ∂_{i} denotes the set of index units i and its neighbors + ## Given M mutually exclusive racial/ethnic subgroups, m indexes the subgroups of M + ## T_{i} denotes the total population in region i (TotalPop) + ## T_{im} denotes the population of the selected subgroup(s) (subgroup1, ...) + ## w_{ij} denotes a nXn first-order adjacency matrix, where n is the number of census geometries in the study area + ### and the entries of w_{ij} are set to 1 if a boundary is shared by region i and region j and zero otherwise + ### Entries of the main diagonal (since i∈∂_{i}, w_{ij} = w_{ii} when j = i) of w_{ij} are set to 1.5 + ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts + + ## Geospatial adjacency matrix (wij) + tmp <- ri_data %>% + sf::st_geometry() %>% + sf::st_intersects(sparse = TRUE) + names(tmp) <- as.character(seq_len(nrow(ri_data))) + tmpL <- length(tmp) + tmpcounts <- unlist(Map(length, tmp)) + tmpi <- rep(1:tmpL, tmpcounts) + tmpj <- unlist(tmp) + wij <- Matrix::sparseMatrix( + i = tmpi, + j = tmpj, + x = 1, + dims = c(tmpL, tmpL) + ) + diag(wij) <- 1.5 + + ## Compute + ri_data <- ri_data %>% + sf::st_drop_geometry() # drop geometries (can join back later) + RIim <- list() + for (i in 1:dim(wij)[1]) { + RIim[[i]] <- sum(as.matrix(wij[i,]) * ri_data[, 'subgroup']) / + sum(as.matrix(wij[i,]) * ri_data[, 'TotalPopE']) } + ri_data$RI <- unlist(RIim) + + # Warning for missingness of census characteristics + missingYN <- ri_data[, in_names] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo == 'tract') { + ri <- ri_data %>% + dplyr::select(c('GEOID', 'state', 'county', 'tract', 'RI', dplyr::all_of(in_names))) + names(ri) <- c('GEOID', 'state', 'county', 'tract', 'RI', out_names) + } else { + ri <- ri_data %>% + dplyr::select(c('GEOID', 'state', 'county', 'RI', dplyr::all_of(in_names))) + names(ri) <- c('GEOID', 'state', 'county', 'RI', out_names) + } + + ri <- ri %>% + dplyr::mutate( + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(ri = ri, missing = missingYN) + + return(out) } - - # Format output - if (geo == "tract") { - ri <- ri_data %>% - dplyr::select(c("GEOID", - "state", - "county", - "tract", - "RI", - dplyr::all_of(in_names))) - names(ri) <- c("GEOID", "state", "county", "tract", "RI", out_names) - } else { - ri <- ri_data %>% - dplyr::select(c("GEOID", - "state", - "county", - "RI", - dplyr::all_of(in_names))) - names(ri) <- c("GEOID", "state", "county", "RI", out_names) - } - - ri <- ri %>% - dplyr::mutate(state = stringr::str_trim(state), - county = stringr::str_trim(county)) %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(ri = ri, - missing = missingYN) - - return(out) -} diff --git a/R/atkinson.R b/R/atkinson.R index 6185ec6..6e6f4ca 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -1,9 +1,9 @@ -#' Atkinson Index based on Atkinson (1970) -#' +#' Atkinson Index based on Atkinson (1970) +#' #' Compute the aspatial Atkinson Index of income or selected racial/ethnic subgroup(s) and U.S. geographies. #' -#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. -#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the income or racial/ethnic subgroup(s) as the comparison population. See Details for available choices. #' @param epsilon Numerical. Shape parameter that denotes the aversion to inequality. Value must be between 0 and 1.0 (the default is 0.5). @@ -12,47 +12,47 @@ #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' #' @details This function will compute the aspatial Atkinson Index (AI) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of AI for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -#' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = "MedHHInc"}, the metric will be computed for median household income ("B19013_001"). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' +#' #' AI is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). -#' -#' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For \code{0.5 < epsilon <= 1.0} or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques _et al._ (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. -#' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. -#' +#' +#' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and AI at specified larger census geographies.} #' \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI.} #' } -#' +#' #' @import dplyr #' @importFrom sf st_drop_geometry #' @importFrom stats na.omit @@ -60,195 +60,254 @@ #' @importFrom tidyr pivot_longer separate #' @importFrom utils stack #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Atkinson Index of non-Hispanic Black populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' atkinson(geo_large = "county", geo_small = "tract", state = "GA", -#' year = 2020, subgroup = "NHoLB") -#' +#' atkinson( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB' +#' ) +#' #' } -#' -atkinson <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, epsilon = 0.5, omit_NAs = TRUE, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo_large, choices = c("state", "county", "tract")) - match.arg(geo_small, choices = c("county", "tract", "block group")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR", "MedHHInc")) - stopifnot(is.numeric(epsilon), epsilon >= 0 , epsilon <= 1) # values between 0 and 1 - - # Select census variables - vars <- c(NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021", - MedHHInc = "B19013_001") - - selected_vars <- vars[subgroup] - out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, "E", sep = "") - - # Acquire AI variables and sf geometries - ai_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, - keep_geo_vars = TRUE, ...))) - - # Format output - if (geo_small == "county") { - ai_data <- sf::st_drop_geometry(ai_data) %>% - tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") - } - if (geo_small == "tract") { - ai_data <- sf::st_drop_geometry(ai_data) %>% - tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) - } - if (geo_small == "block group") { - ai_data <- sf::st_drop_geometry(ai_data) %>% - tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), - block.group = gsub("[^0-9\\.]", "", block.group)) - } +#' +atkinson <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + epsilon = 0.5, + omit_NAs = TRUE, + quiet = FALSE, + ...) { - # Grouping IDs for AI computation - if (geo_large == "tract") { - ai_data <- ai_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "county") { - ai_data <- ai_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "state") { - ai_data <- ai_data %>% - dplyr::mutate(oid = .$STATEFP, - state = stringr::str_trim(state)) - } - - # Count of racial/ethnic subgroup populations - ## Count of racial/ethnic subgroup population - if (length(in_subgroup) == 1) { - ai_data <- ai_data %>% - dplyr::mutate(subgroup = .[ , in_subgroup]) - } else { - ai_data <- ai_data %>% - dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) - } - - # Compute AI - ## From Atkinson (1970) https://doi.org/10.1016/0022-0531(70)90039-6 - ## A_{\epsilon}(x_{1},...,x_{n}) = \begin{Bmatrix} - ## 1 - (\frac{1}{n}\sum_{i=1}^{n}x_{i}^{1-\epsilon})^{1/(1-\epsilon)}/(\frac{1}{n}\sum_{i=1}^{n}x_{i}) & \mathrm{if\:} \epsilon \neq 1 \\ - ## 1 - (\prod_{i=1}^{n}x_{i})^{1/n}/(\frac{1}{n}\sum_{i=1}^{n}x_{i}) & \mathrm{if\:} \epsilon = 1 \\ - ## \end{Bmatrix} - ## Where the Atkinson index (A) is defined for a population subgroup count (x) of a given smaller geographical unit (i) for n smaller geographical units - ## and an inequality-aversion parameter (epsilon) - ## If denoting the Hölder mean (based on `Atkinson()` function in 'DescTools' package) by - ## M_{p}(x_{1},...,x_{n}) = \begin{Bmatrix} - ## (\frac{1}{n}\sum_{i=1}^{n}x_{i}^{p})^{1/p} & \mathrm{if\:} p \neq 0 \\ - ## (\prod_{i=1}^{n}x_{i})^{1/n} & \mathrm{if\:} p = 0 \\ - ## \end{Bmatrix} - ## then AI is - ## A_{\epsilon}(x_{1},...,x_{n}) = 1 - \frac{M_{1-\epsilon}(x_{1},...,x_{n})}{M_{1}(x_{1},...,x_{n})} - - ## Compute - AItmp <- ai_data %>% - split(., f = list(ai_data$oid)) %>% - lapply(., FUN = ai_fun, epsilon = epsilon, omit_NAs = omit_NAs) %>% - utils::stack(.) %>% - dplyr::mutate(AI = values, - oid = ind) %>% - dplyr::select(AI, oid) - - # Warning for missingness of census characteristics - missingYN <- as.data.frame(ai_data[ , in_subgroup]) - names(missingYN) <- out_names - missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) - - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR', + 'MedHHInc' + ) + ) + stopifnot(is.numeric(epsilon), epsilon >= 0 , epsilon <= 1) # values between 0 and 1 + + # Select census variables + vars <- c( + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021', + MedHHInc = 'B19013_001' + ) + + selected_vars <- vars[subgroup] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, 'E', sep = '') + + # Acquire AI variables and sf geometries + ai_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + # Format output + if (geo_small == 'county') { + ai_data <- ai_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } + if (geo_small == 'tract') { + ai_data <- ai_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + ai_data <- ai_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for AI computation + if (geo_large == 'tract') { + ai_data <- ai_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'county') { + ai_data <- ai_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'state') { + ai_data <- ai_data %>% + dplyr::mutate( + oid = .$STATEFP, + state = stringr::str_trim(state) + ) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic subgroup population + if (length(in_subgroup) == 1) { + ai_data <- ai_data %>% + dplyr::mutate(subgroup = .[, in_subgroup]) + } else { + ai_data <- ai_data %>% + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) + } + + # Compute AI + ## From Atkinson (1970) https://doi.org/10.1016/0022-0531(70)90039-6 + ## A_{\epsilon}(x_{1},...,x_{n}) = \begin{Bmatrix} + ## 1 - (\frac{1}{n}\sum_{i=1}^{n}x_{i}^{1-\epsilon})^{1/(1-\epsilon)}/(\frac{1}{n}\sum_{i=1}^{n}x_{i}) & \mathrm{if\:} \epsilon \neq 1 \\ + ## 1 - (\prod_{i=1}^{n}x_{i})^{1/n}/(\frac{1}{n}\sum_{i=1}^{n}x_{i}) & \mathrm{if\:} \epsilon = 1 \\ + ## \end{Bmatrix} + ## Where the Atkinson index (A) is defined for a population subgroup count (x) of a given smaller geographical unit (i) for n smaller geographical units + ## and an inequality-aversion parameter (epsilon) + ## If denoting the Hölder mean (based on `Atkinson()` function in 'DescTools' package) by + ## M_{p}(x_{1},...,x_{n}) = \begin{Bmatrix} + ## (\frac{1}{n}\sum_{i=1}^{n}x_{i}^{p})^{1/p} & \mathrm{if\:} p \neq 0 \\ + ## (\prod_{i=1}^{n}x_{i})^{1/n} & \mathrm{if\:} p = 0 \\ + ## \end{Bmatrix} + ## then AI is + ## A_{\epsilon}(x_{1},...,x_{n}) = 1 - \frac{M_{1-\epsilon}(x_{1},...,x_{n})}{M_{1}(x_{1},...,x_{n})} + + ## Compute + AItmp <- ai_data %>% + split(., f = list(ai_data$oid)) %>% + lapply(., FUN = ai_fun, epsilon = epsilon, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate( + AI = values, + oid = ind + ) %>% + dplyr::select(AI, oid) + + # Warning for missingness of census characteristics + missingYN <- as.data.frame(ai_data[, in_subgroup]) + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo_large == 'state') { + ai <- ai_data %>% + dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, AI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, AI) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'county') { + ai <- ai_data %>% + dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, AI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, AI) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'tract') { + ai <- ai_data %>% + dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, tract, AI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, AI) %>% + .[.$GEOID != 'NANA',] + } + + ai <- ai %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + ai_data <- ai_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(ai = ai, ai_data = ai_data, missing = missingYN) + + return(out) } - - # Format output - if (geo_large == "state") { - ai <- merge(ai_data, AItmp) %>% - dplyr::select(oid, state, AI) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, AI) %>% - .[.$GEOID != "NANA", ] - } - if (geo_large == "county") { - ai <- merge(ai_data, AItmp) %>% - dplyr::select(oid, state, county, AI) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, AI) %>% - .[.$GEOID != "NANA", ] - } - if (geo_large == "tract") { - ai <- merge(ai_data, AItmp) %>% - dplyr::select(oid, state, county, tract, AI) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, tract, AI) %>% - .[.$GEOID != "NANA", ] - } - - ai <- ai %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - ai_data <- ai_data %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(ai = ai, - ai_data = ai_data, - missing = missingYN) - - return(out) -} diff --git a/R/bell.R b/R/bell.R index 29d7e36..22b4cfe 100644 --- a/R/bell.R +++ b/R/bell.R @@ -1,9 +1,9 @@ -#' Isolation Index based on Shevky & Williams (1949) and Bell (1954) -#' +#' Isolation Index based on Shevky & Williams (1949) and Bell (1954) +#' #' Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. #' -#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. -#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. #' @param subgroup_ixn Character string specifying the racial/ethnic subgroup(s) as the interaction population. If the same as \code{subgroup}, will compute the simple isolation of the group. See Details for available choices. @@ -12,45 +12,45 @@ #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' #' @details This function will compute the aspatial Isolation Index (II) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of II for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -#' +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' +#' #' II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. -#' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. -#' +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and II at specified larger census geographies.} #' \item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute II.} #' } -#' +#' #' @import dplyr #' @importFrom sf st_drop_geometry #' @importFrom stats complete.cases @@ -58,202 +58,283 @@ #' @importFrom tidyr pivot_longer separate #' @importFrom utils stack #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Isolation of non-Hispanic Black vs. non-Hispanic white populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' bell(geo_large = "county", geo_small = "tract", state = "GA", -#' year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") -#' +#' bell( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB', +#' subgroup_ixn = 'NHoLW' +#' ) +#' #' } -#' -bell <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, subgroup_ixn, omit_NAs = TRUE, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo_large, choices = c("state", "county", "tract")) - match.arg(geo_small, choices = c("county", "tract", "block group")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - match.arg(subgroup_ixn, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - - # Select census variables - vars <- c(TotalPop = "B03002_001", - NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021") - - selected_vars <- vars[c("TotalPop", subgroup, subgroup_ixn)] - out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, "E", sep = "") - in_subgroup_ixn <- paste(subgroup_ixn, "E", sep = "") - - # Acquire II variables and sf geometries - ii_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, - keep_geo_vars = TRUE, ...))) - - # Format output - if (geo_small == "county") { - ii_data <- sf::st_drop_geometry(ii_data) %>% - tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") - } - if (geo_small == "tract") { - ii_data <- sf::st_drop_geometry(ii_data) %>% - tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) - } - if (geo_small == "block group") { - ii_data <- sf::st_drop_geometry(ii_data) %>% - tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), - block.group = gsub("[^0-9\\.]", "", block.group)) - } - - # Grouping IDs for II computation - if (geo_large == "tract") { - ii_data <- ii_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "county") { - ii_data <- ii_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "state") { - ii_data <- ii_data %>% - dplyr::mutate(oid = .$STATEFP, - state = stringr::str_trim(state)) - } - - # Count of racial/ethnic subgroup populations - ## Count of racial/ethnic comparison subgroup population - if (length(in_subgroup) == 1) { - ii_data <- ii_data %>% - dplyr::mutate(subgroup = .[ , in_subgroup]) - } else { - ii_data <- ii_data %>% - dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) - } - ## Count of racial/ethnic interaction subgroup population - if (length(in_subgroup_ixn) == 1) { - ii_data <- ii_data %>% - dplyr::mutate(subgroup_ixn = .[ , in_subgroup_ixn]) - } else { - ii_data <- ii_data %>% - dplyr::mutate(subgroup_ixn = rowSums(.[ , in_subgroup_ixn])) - } - - # Compute II - ## From Bell (1954) https://doi.org/10.2307/2574118 - ## _{x}P_{y}^* = \sum_{i=1}^{k} \left ( \frac{x_{i}}{X}\right )\left ( \frac{y_{i}}{n_{i}}\right ) - ## Where for k geographical units i: - ## X denotes the total number of subgroup population in study (reference) area - ## x_{i} denotes the number of subgroup population X in geographical unit i - ## y_{i} denotes the number of subgroup population Y in geographical unit i - ## n_{i} denotes the total population of geographical unit i - ## If x_{i} = y_{i}, then computes the average isolation experienced by members of subgroup population X - - ## Compute - IItmp <- ii_data %>% - split(., f = list(ii_data$oid)) %>% - lapply(., FUN = ii_fun, omit_NAs = omit_NAs) %>% - utils::stack(.) %>% - dplyr::mutate(II = values, - oid = ind) %>% - dplyr::select(II, oid) - - # Warning for missingness of census characteristics - missingYN <- ii_data[ , c("TotalPopE", in_subgroup, in_subgroup_ixn)] - names(missingYN) <- out_names - missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) +#' +bell <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + subgroup_ixn, + omit_NAs = TRUE, + quiet = FALSE, + ...) { - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + match.arg( + subgroup_ixn, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup, subgroup_ixn)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup_ixn <- paste(subgroup_ixn, 'E', sep = '') + + # Acquire II variables and sf geometries + ii_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + + # Format output + if (geo_small == 'county') { + ii_data <- ii_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } + if (geo_small == 'tract') { + ii_data <- ii_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + ii_data <- ii_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for II computation + if (geo_large == 'tract') { + ii_data <- ii_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'county') { + ii_data <- ii_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'state') { + ii_data <- ii_data %>% + dplyr::mutate( + oid = .$STATEFP, + state = stringr::str_trim(state) + ) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + ii_data <- ii_data %>% + dplyr::mutate(subgroup = .[, in_subgroup]) + } else { + ii_data <- ii_data %>% + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) + } + ## Count of racial/ethnic interaction subgroup population + if (length(in_subgroup_ixn) == 1) { + ii_data <- ii_data %>% + dplyr::mutate(subgroup_ixn = .[, in_subgroup_ixn]) + } else { + ii_data <- ii_data %>% + dplyr::mutate(subgroup_ixn = rowSums(.[, in_subgroup_ixn])) + } + + # Compute II + ## From Bell (1954) https://doi.org/10.2307/2574118 + ## _{x}P_{y}^* = \sum_{i=1}^{k} \left ( \frac{x_{i}}{X}\right )\left ( \frac{y_{i}}{n_{i}}\right ) + ## Where for k geographical units i: + ## X denotes the total number of subgroup population in study (reference) area + ## x_{i} denotes the number of subgroup population X in geographical unit i + ## y_{i} denotes the number of subgroup population Y in geographical unit i + ## n_{i} denotes the total population of geographical unit i + ## If x_{i} = y_{i}, then computes the average isolation experienced by members of subgroup population X + + ## Compute + IItmp <- ii_data %>% + split(., f = list(ii_data$oid)) %>% + lapply(., FUN = ii_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate( + II = values, + oid = ind + ) %>% + dplyr::select(II, oid) + + # Warning for missingness of census characteristics + missingYN <- ii_data[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo_large == 'state') { + ii <- ii_data %>% + dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, II) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'county') { + ii <- ii_data %>% + dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, II) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'tract') { + ii <- ii_data %>% + dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, tract, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, II) %>% + .[.$GEOID != 'NANA',] + } + + ii <- ii %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + ii_data <- ii_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(ii = ii, ii_data = ii_data, missing = missingYN) + + return(out) } - - # Format output - if (geo_large == "state") { - ii <- merge(ii_data, IItmp) %>% - dplyr::select(oid, state, II) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, II) %>% - .[.$GEOID != "NANA", ] - } - if (geo_large == "county") { - ii <- merge(ii_data, IItmp) %>% - dplyr::select(oid, state, county, II) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, II) %>% - .[.$GEOID != "NANA", ] - } - if (geo_large == "tract") { - ii <- merge(ii_data, IItmp) %>% - dplyr::select(oid, state, county, tract, II) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, tract, II) %>% - .[.$GEOID != "NANA", ] - } - - ii <- ii %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - ii_data <- ii_data %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(ii = ii, - ii_data = ii_data, - missing = missingYN) - - return(out) -} diff --git a/R/bemanian_beyer.R b/R/bemanian_beyer.R index b97ee28..fc3b080 100644 --- a/R/bemanian_beyer.R +++ b/R/bemanian_beyer.R @@ -1,9 +1,9 @@ #' Local Exposure and Isolation metric based on Bemanian & Beyer (2017) -#' +#' #' Compute the aspatial Local Exposure and Isolation (Bemanian & Beyer) metric of a selected racial/ethnic subgroup(s) and U.S. geographies. #' -#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. -#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. #' @param subgroup_ixn Character string specifying the racial/ethnic subgroup(s) as the interaction population. If the same as \code{subgroup}, will compute the simple isolation of the group. See Details for available choices. @@ -12,47 +12,47 @@ #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' #' @details This function will compute the aspatial Local Exposure and Isolation (LEx/Is) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of LEx/Is for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -#' +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' +#' #' LEx/Is is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. LEx/Is is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) -#' +#' #' LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. -#' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. -#' +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} #' \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is.} #' } -#' +#' #' @import dplyr #' @importFrom car logit #' @importFrom sf st_drop_geometry @@ -61,196 +61,272 @@ #' @importFrom tidyr pivot_longer separate #' @importFrom utils stack #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Isolation of non-Hispanic Black vs. non-Hispanic white populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' bemanian_beyer(geo_large = "county", geo_small = "tract", state = "GA", -#' year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") -#' +#' bemanian_beyer( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB', +#' subgroup_ixn = 'NHoLW' +#' ) +#' #' } -#' -bemanian_beyer <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, subgroup_ixn, omit_NAs = TRUE, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo_large, choices = c("state", "county", "tract")) - match.arg(geo_small, choices = c("county", "tract", "block group")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - match.arg(subgroup_ixn, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - - # Select census variables - vars <- c(TotalPop = "B03002_001", - NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021") - - selected_vars <- vars[c("TotalPop", subgroup, subgroup_ixn)] - out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, "E", sep = "") - in_subgroup_ixn <- paste(subgroup_ixn, "E", sep = "") - - # Acquire LEx/Is variables and sf geometries - lexis_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, - keep_geo_vars = TRUE, ...))) - - # Format output - if (geo_small == "county") { - lexis_data <- sf::st_drop_geometry(lexis_data) %>% - tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") - } - if (geo_small == "tract") { - lexis_data <- sf::st_drop_geometry(lexis_data) %>% - tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) - } - if (geo_small == "block group") { - lexis_data <- sf::st_drop_geometry(lexis_data) %>% - tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), - block.group = gsub("[^0-9\\.]", "", block.group)) - } - - # Grouping IDs for LEx/Is computation - if (geo_large == "tract") { - lexis_data <- lexis_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "county") { - lexis_data <- lexis_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "state") { - lexis_data <- lexis_data %>% - dplyr::mutate(oid = .$STATEFP, - state = stringr::str_trim(state)) - } - - # Count of racial/ethnic subgroup populations - ## Count of racial/ethnic comparison subgroup population - if (length(in_subgroup) == 1) { - lexis_data <- lexis_data %>% - dplyr::mutate(subgroup = .[ , in_subgroup]) - } else { - lexis_data <- lexis_data %>% - dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) - } - ## Count of racial/ethnic interaction subgroup population - if (length(in_subgroup_ixn) == 1) { - lexis_data <- lexis_data %>% - dplyr::mutate(subgroup_ixn = .[ , in_subgroup_ixn]) - } else { - lexis_data <- lexis_data %>% - dplyr::mutate(subgroup_ixn = rowSums(.[ , in_subgroup_ixn])) - } - - # Compute LEx/Is - ## From Bemanian & Beyer (2017) https://doi.org/10.1158/1055-9965.EPI-16-0926 - ## E^*_{m,n}(i) = log\left(\frac{p_{im} \times p_{in}}{1 - p_{im} \times p_{in}}\right) - log\left(\frac{P_{m} \times P_{n}}{1 - P_{m} \times P_{n}}\right) - ## Where for smaller geographical unit i: - ## p_{im} denotes the number of subgroup population m in smaller geographical unit i - ## p_{in} denotes the number of subgroup population n in smaller geographical unit i - ## P_{m} denotes the number of subgroup population m in larger geographical unit within which the smaller geographic unit i is located - ## P_{n} denotes the number of subgroup population n in larger geographical unit within which the smaller geographic unit i is located - ## If m \ne n, then computes the exposure of members of subgroup populations m and n - ## If m = n, then computes the simple isolation experienced by members of subgroup population m - - ## Compute - LExIstmp <- lexis_data %>% - split(., f = list(lexis_data$oid)) %>% - lapply(., FUN = lexis_fun, omit_NAs = omit_NAs) %>% - do.call("rbind", .) - - # Warning for missingness of census characteristics - missingYN <- lexis_data[ , c("TotalPopE", in_subgroup, in_subgroup_ixn)] - names(missingYN) <- out_names - missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) +#' +bemanian_beyer <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + subgroup_ixn, + omit_NAs = TRUE, + quiet = FALSE, + ...) { - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + match.arg( + subgroup_ixn, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup, subgroup_ixn)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup_ixn <- paste(subgroup_ixn, 'E', sep = '') + + # Acquire LEx/Is variables and sf geometries + lexis_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + # Format output + if (geo_small == 'county') { + lexis_data <- lexis_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } - } - - # Format output - lexis <- merge(lexis_data, LExIstmp) - - if (geo_small == "state") { - lexis <- lexis %>% - dplyr::select(GEOID, state, LExIs) - } - if (geo_small == "county") { - lexis <- lexis %>% - dplyr::select(GEOID, state, county, LExIs) - } - if (geo_small == "tract") { - lexis <- lexis %>% - dplyr::select(GEOID, state, county, tract, LExIs) - } - if (geo_small == "block group") { + if (geo_small == 'tract') { + lexis_data <- lexis_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + lexis_data <- lexis_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for LEx/Is computation + if (geo_large == 'tract') { + lexis_data <- lexis_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'county') { + lexis_data <- lexis_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'state') { + lexis_data <- lexis_data %>% + dplyr::mutate( + oid = .$STATEFP, + state = stringr::str_trim(state) + ) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup = .[, in_subgroup]) + } else { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) + } + ## Count of racial/ethnic interaction subgroup population + if (length(in_subgroup_ixn) == 1) { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup_ixn = .[, in_subgroup_ixn]) + } else { + lexis_data <- lexis_data %>% + dplyr::mutate(subgroup_ixn = rowSums(.[, in_subgroup_ixn])) + } + + # Compute LEx/Is + ## From Bemanian & Beyer (2017) https://doi.org/10.1158/1055-9965.EPI-16-0926 + ## E^*_{m,n}(i) = log\left(\frac{p_{im} \times p_{in}}{1 - p_{im} \times p_{in}}\right) - log\left(\frac{P_{m} \times P_{n}}{1 - P_{m} \times P_{n}}\right) + ## Where for smaller geographical unit i: + ## p_{im} denotes the number of subgroup population m in smaller geographical unit i + ## p_{in} denotes the number of subgroup population n in smaller geographical unit i + ## P_{m} denotes the number of subgroup population m in larger geographical unit within which the smaller geographic unit i is located + ## P_{n} denotes the number of subgroup population n in larger geographical unit within which the smaller geographic unit i is located + ## If m \ne n, then computes the exposure of members of subgroup populations m and n + ## If m = n, then computes the simple isolation experienced by members of subgroup population m + + ## Compute + LExIstmp <- lexis_data %>% + split(., f = list(lexis_data$oid)) %>% + lapply(., FUN = lexis_fun, omit_NAs = omit_NAs) %>% + do.call('rbind', .) + + # Warning for missingness of census characteristics + missingYN <- lexis_data[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + lexis <- lexis_data %>% + dplyr::left_join(LExIstmp, by = dplyr::join_by(GEOID)) + + if (geo_small == 'state') { + lexis <- lexis %>% + dplyr::select(GEOID, state, LExIs) + } + if (geo_small == 'county') { + lexis <- lexis %>% + dplyr::select(GEOID, state, county, LExIs) + } + if (geo_small == 'tract') { + lexis <- lexis %>% + dplyr::select(GEOID, state, county, tract, LExIs) + } + if (geo_small == 'block group') { + lexis <- lexis %>% + dplyr::select(GEOID, state, county, tract, block.group, LExIs) + } + lexis <- lexis %>% - dplyr::select(GEOID, state, county, tract, block.group, LExIs) + unique(.) %>% + .[.$GEOID != 'NANA',] %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + lexis_data <- lexis_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(lexis = lexis, lexis_data = lexis_data, missing = missingYN) + + return(out) } - - lexis <- lexis %>% - unique(.) %>% - .[.$GEOID != "NANA", ] %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - lexis_data <- lexis_data %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(lexis = lexis, - lexis_data = lexis_data, - missing = missingYN) - - return(out) -} diff --git a/R/bravo.R b/R/bravo.R index b1a424f..46abceb 100644 --- a/R/bravo.R +++ b/R/bravo.R @@ -1,36 +1,36 @@ -#' Educational Isolation Index based on Bravo _et al._ (2021) -#' +#' Educational Isolation Index based on Bravo et al. (2021) +#' #' Compute the spatial Educational Isolation Index (Bravo) of selected educational attainment category(ies). #' -#' @param geo Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}. +#' @param geo Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the educational attainment category(ies). See Details for available choices. #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo _et al._ (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. -#' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: +#' @details This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B06009_002**: Less than high school graduate \code{"LtHS"} -#' \item **B06009_003**: High school graduate (includes equivalency) \code{"HSGiE"} -#' \item **B06009_004**: Some college or associate's degree \code{"SCoAD"} -#' \item **B06009_005**: Bachelor's degree \code{"BD"} -#' \item **B06009_006**: Graduate or professional degree \code{"GoPD"} +#' \item **B06009_002**: Less than high school graduate \code{'LtHS'} +#' \item **B06009_003**: High school graduate (includes equivalency) \code{'HSGiE'} +#' \item **B06009_004**: Some college or associate's degree \code{'SCoAD'} +#' \item **B06009_005**: Bachelor's degree \code{'BD'} +#' \item **B06009_006**: Graduate or professional degree \code{'GoPD'} #' } #' Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the **B15002** question. -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and EI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the EI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. -#' +#' #' A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an EI value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an EI value close to 0. -#' +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{ei}}{An object of class 'tbl' for the GEOID, name, EI, and raw census values of specified census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute EI.} #' } -#' +#' #' @import dplyr #' @importFrom Matrix sparseMatrix #' @importFrom sf st_drop_geometry st_geometry st_intersects @@ -39,182 +39,290 @@ #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Tract-level metric (2020) -#' bravo(geo = "tract", state = "GA", -#' year = 2020, subgroup = c("LtHS", "HSGiE")) -#' +#' bravo( +#' geo = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = c('LtHS', 'HSGiE') +#' ) +#' #' # County-level metric (2020) -#' bravo(geo = "county", state = "GA", -#' year = 2020, subgroup = c("LtHS", "HSGiE")) -#' +#' bravo( +#' geo = 'county', +#' state = 'GA', +#' year = 2020, +#' subgroup = c('LtHS', 'HSGiE') +#' ) +#' #' } -#' -bravo <- function(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo, choices = c("county", "tract")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("LtHS", "HSGiE", "SCoAD", "BD", "GoPD")) - - # Select census variables - vars <- c(TotalPop = "B06009_001", - LtHS = "B06009_002", - HSGiE = "B06009_003", - SCoAD = "B06009_004", - BD = "B06009_005", - GoPD = "B06009_006") - - selected_vars <- vars[c("TotalPop", subgroup)] +#' +bravo <- function(geo = 'tract', + year = 2020, + subgroup, + quiet = FALSE, + ...) { - if (year == 2009) { - vars <- matrix(c("TotalPop", "TotalPop", "B15002_001", - "LtHS", "mNSC", "B15002_003", - "LtHS", "mNt4G", "B15002_004", - "LtHS", "m5t6G", "B15002_005", - "LtHS", "m7t8G", "B15002_006", - "LtHS", "m9G", "B15002_007", - "LtHS", "m10G", "B15002_008", - "LtHS", "m11G", "B15002_009", - "LtHS", "m12GND", "B15002_010", - "HSGiE", "mHSGGEDoA", "B15002_011", - "SCoAD", "mSClt1Y", "B15002_012", - "SCoAD", "mSC1oMYND", "B15002_013", - "SCoAD", "mAD", "B15002_014", - "BD", "mBD", "B15002_015", - "GoPD", "mMD", "B15002_016", - "GoPD", "mPSD", "B15002_017", - "GoPD", "mDD", "B15002_018", - "LtHS", "fNSC", "B15002_020", - "LtHS", "fNt4G", "B15002_021", - "LtHS", "f5t6G", "B15002_022", - "LtHS", "f7t8G", "B15002_023", - "LtHS", "f9G", "B15002_024", - "LtHS", "f10G", "B15002_025", - "LtHS", "f11G", "B15002_026", - "LtHS", "f12GND", "B15002_027", - "HSGiE", "fHSGGEDoA", "B15002_028", - "SCoAD", "fSClt1Y", "B15002_029", - "SCoAD", "fSC1oMYND", "B15002_030", - "SCoAD", "fAD", "B15002_031", - "BD", "fBD", "B15002_032", - "GoPD", "fMD", "B15002_033", - "GoPD", "fPSD", "B15002_034", - "GoPD", "fDD", "B15002_035"), nrow = 33, ncol = 3, byrow = TRUE) + # Check arguments + match.arg(geo, choices = c('county', 'tract')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c('LtHS', 'HSGiE', 'SCoAD', 'BD', 'GoPD') + ) + + # Select census variables + vars <- c( + TotalPop = 'B06009_001', + LtHS = 'B06009_002', + HSGiE = 'B06009_003', + SCoAD = 'B06009_004', + BD = 'B06009_005', + GoPD = 'B06009_006' + ) + + selected_vars <- vars[c('TotalPop', subgroup)] + + if (year == 2009) { + vars <- matrix( + c( + 'TotalPop', + 'TotalPop', + 'B15002_001', + 'LtHS', + 'mNSC', + 'B15002_003', + 'LtHS', + 'mNt4G', + 'B15002_004', + 'LtHS', + 'm5t6G', + 'B15002_005', + 'LtHS', + 'm7t8G', + 'B15002_006', + 'LtHS', + 'm9G', + 'B15002_007', + 'LtHS', + 'm10G', + 'B15002_008', + 'LtHS', + 'm11G', + 'B15002_009', + 'LtHS', + 'm12GND', + 'B15002_010', + 'HSGiE', + 'mHSGGEDoA', + 'B15002_011', + 'SCoAD', + 'mSClt1Y', + 'B15002_012', + 'SCoAD', + 'mSC1oMYND', + 'B15002_013', + 'SCoAD', + 'mAD', + 'B15002_014', + 'BD', + 'mBD', + 'B15002_015', + 'GoPD', + 'mMD', + 'B15002_016', + 'GoPD', + 'mPSD', + 'B15002_017', + 'GoPD', + 'mDD', + 'B15002_018', + 'LtHS', + 'fNSC', + 'B15002_020', + 'LtHS', + 'fNt4G', + 'B15002_021', + 'LtHS', + 'f5t6G', + 'B15002_022', + 'LtHS', + 'f7t8G', + 'B15002_023', + 'LtHS', + 'f9G', + 'B15002_024', + 'LtHS', + 'f10G', + 'B15002_025', + 'LtHS', + 'f11G', + 'B15002_026', + 'LtHS', + 'f12GND', + 'B15002_027', + 'HSGiE', + 'fHSGGEDoA', + 'B15002_028', + 'SCoAD', + 'fSClt1Y', + 'B15002_029', + 'SCoAD', + 'fSC1oMYND', + 'B15002_030', + 'SCoAD', + 'fAD', + 'B15002_031', + 'BD', + 'fBD', + 'B15002_032', + 'GoPD', + 'fMD', + 'B15002_033', + 'GoPD', + 'fPSD', + 'B15002_034', + 'GoPD', + 'fDD', + 'B15002_035' + ), + nrow = 33, + ncol = 3, + byrow = TRUE + ) + + selected_vars <- stats::setNames( + vars[vars[, 1] %in% c('TotalPop', subgroup) , 3], + vars[vars[, 1] %in% c('TotalPop', subgroup) , 2] + ) + } + + out_names <- names(selected_vars) # save for output + prefix <- 'subgroup' + suffix <- seq(1:length(selected_vars[-1])) + names(selected_vars) <- c('TotalPop', paste(prefix, suffix, sep = '')) + in_names <- paste(names(selected_vars), 'E', sep = '') + + # Acquire EI variables and sf geometries + ei_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + ... + ) + )) + + if (geo == 'tract') { + ei_data <- ei_data %>% + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } else { + ei_data <- ei_data %>% + tidyr::separate(NAME, into = c('county', 'state'), sep = ',') + } - selected_vars <- stats::setNames(vars[ vars[ , 1] %in% c("TotalPop", subgroup) , 3], - vars[ vars[ , 1] %in% c("TotalPop", subgroup) , 2]) - } - - out_names <- names(selected_vars) # save for output - prefix <- "subgroup" - suffix <- seq(1:length(selected_vars[-1])) - names(selected_vars) <- c("TotalPop", paste(prefix, suffix, sep = "")) - in_names <- paste(names(selected_vars), "E", sep = "") - - # Acquire EI variables and sf geometries - ei_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, ...))) - - if (geo == "tract") { ei_data <- ei_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) - } else { - ei_data <- ei_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") - } - - ei_data <- ei_data %>% - dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ei_data[ , in_names[-1]]))) - - # Compute EI - ## From Bravo et al. (2021) https://doi.org/10.3390/ijerph18179384 - ## EI_{im} = (Sigma_{j∈∂_{i}} w_{ij} * T_{jm}) / (Sigma_{j∈∂_{i}} w_{ij} * T_{j}) - ## Where: - ## ∂_{i} denotes the set of index units i and its neighbors - ## Given M mutually exclusive subgroups of educational attainment categories, m indexes the subgroups of M - ## T_{i} denotes the total population in region i (TotalPop) - ## T_{im} denotes the population of the selected subgroup(s) (subgroup1, ...) - ## w_{ij} denotes a nXn first-order adjacency matrix, where n is the number of census geometries in the study area - ### and the entries of w_{ij} are set to 1 if a boundary is shared by region i and region j and zero otherwise - ### Entries of the main diagonal (since i∈∂_{i}, w_{ij} = w_{ii} when j = i) of w_{ij} are set to 1.5 - ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts - - ## Geospatial adjacency matrix (wij) - tmp <- sf::st_intersects(sf::st_geometry(ei_data), sparse = TRUE) - names(tmp) <- as.character(seq_len(nrow(ei_data))) - tmpL <- length(tmp) - tmpcounts <- unlist(Map(length, tmp)) - tmpi <- rep(1:tmpL, tmpcounts) - tmpj <- unlist(tmp) - wij <- Matrix::sparseMatrix(i = tmpi, j = tmpj, x = 1, dims = c(tmpL, tmpL)) - diag(wij) <- 1.5 - - ## Compute - ei_data <- sf::st_drop_geometry(ei_data) # drop geometries (can join back later) - EIim <- list() - for (i in 1:dim(wij)[1]){ - EIim[[i]] <- sum(as.matrix(wij[i, ])*ei_data[ , "subgroup"]) / sum(as.matrix(wij[i, ])*ei_data[, "TotalPopE"]) - } - ei_data$EI <- unlist(EIim) - - # Warning for missingness of census characteristics - missingYN <- ei_data[ , in_names] - names(missingYN) <- out_names - missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) - - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ei_data[, in_names[-1]]))) + + # Compute EI + ## From Bravo et al. (2021) https://doi.org/10.3390/ijerph18179384 + ## EI_{im} = (Sigma_{j∈∂_{i}} w_{ij} * T_{jm}) / (Sigma_{j∈∂_{i}} w_{ij} * T_{j}) + ## Where: + ## ∂_{i} denotes the set of index units i and its neighbors + ## Given M mutually exclusive subgroups of educational attainment categories, m indexes the subgroups of M + ## T_{i} denotes the total population in region i (TotalPop) + ## T_{im} denotes the population of the selected subgroup(s) (subgroup1, ...) + ## w_{ij} denotes a nXn first-order adjacency matrix, where n is the number of census geometries in the study area + ### and the entries of w_{ij} are set to 1 if a boundary is shared by region i and region j and zero otherwise + ### Entries of the main diagonal (since i∈∂_{i}, w_{ij} = w_{ii} when j = i) of w_{ij} are set to 1.5 + ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts + + ## Geospatial adjacency matrix (wij) + tmp <- sf::st_intersects(sf::st_geometry(ei_data), sparse = TRUE) + names(tmp) <- as.character(seq_len(nrow(ei_data))) + tmpL <- length(tmp) + tmpcounts <- unlist(Map(length, tmp)) + tmpi <- rep(1:tmpL, tmpcounts) + tmpj <- unlist(tmp) + wij <- Matrix::sparseMatrix( + i = tmpi, + j = tmpj, + x = 1, + dims = c(tmpL, tmpL) + ) + diag(wij) <- 1.5 + + ## Compute + ei_data <- ei_data %>% + sf::st_drop_geometry() # drop geometries (can join back later) + EIim <- list() + for (i in 1:dim(wij)[1]) { + EIim[[i]] <- sum(as.matrix(wij[i,]) * ei_data[, 'subgroup']) / + sum(as.matrix(wij[i,]) * ei_data[, 'TotalPopE']) } + ei_data$EI <- unlist(EIim) + + # Warning for missingness of census characteristics + missingYN <- ei_data[, in_names] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo == 'tract') { + ei <- ei_data %>% + dplyr::select(c( + 'GEOID', + 'state', + 'county', + 'tract', + 'EI', + dplyr::all_of(in_names) + )) + names(ei) <- c('GEOID', 'state', 'county', 'tract', 'EI', out_names) + } else { + ei <- ei_data %>% + dplyr::select(c('GEOID', 'state', 'county', 'EI', dplyr::all_of(in_names))) + names(ei) <- c('GEOID', 'state', 'county', 'EI', out_names) + } + + ei <- ei %>% + dplyr::mutate( + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(ei = ei, missing = missingYN) + + return(out) } - - # Format output - if (geo == "tract") { - ei <- ei_data %>% - dplyr::select(c("GEOID", - "state", - "county", - "tract", - "EI", - dplyr::all_of(in_names))) - names(ei) <- c("GEOID", "state", "county", "tract", "EI", out_names) - } else { - ei <- ei_data %>% - dplyr::select(c("GEOID", - "state", - "county", - "EI", - dplyr::all_of(in_names))) - names(ei) <- c("GEOID", "state", "county", "EI", out_names) - } - - ei <- ei %>% - dplyr::mutate(state = stringr::str_trim(state), - county = stringr::str_trim(county)) %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(ei = ei, - missing = missingYN) - - return(out) -} diff --git a/R/duncan.R b/R/duncan.R index 8215a26..8305b92 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -1,9 +1,9 @@ -#' Dissimilarity Index based on Duncan & Duncan (1955) -#' +#' Dissimilarity Index based on Duncan & Duncan (1955) +#' #' Compute the aspatial Dissimilarity Index (Duncan & Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies #' -#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. -#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the racial/ethnic subgroup(s) as the comparison population. See Details for available choices. #' @param subgroup_ref Character string specifying the racial/ethnic subgroup(s) as the reference population. See Details for available choices. @@ -12,45 +12,45 @@ #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' #' @details This function will compute the aspatial Dissimilarity Index (DI) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of DI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -#' +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' +#' #' DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. DI can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. -#' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. -#' +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and DI at specified larger census geographies.} #' \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI.} #' } -#' +#' #' @import dplyr #' @importFrom sf st_drop_geometry #' @importFrom stats complete.cases @@ -58,201 +58,281 @@ #' @importFrom tidyr pivot_longer separate #' @importFrom utils stack #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Dissimilarity Index of non-Hispanic Black vs. non-Hispanic white populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' duncan(geo_large = "county", geo_small = "tract", state = "GA", -#' year = 2020, subgroup = "NHoLB", subgroup_ref = "NHoLW") -#' +#' duncan( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB', +#' subgroup_ref = 'NHoLW' +#' ) +#' #' } -#' -duncan <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, subgroup_ref, omit_NAs = TRUE, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo_large, choices = c("state", "county", "tract")) - match.arg(geo_small, choices = c("county", "tract", "block group")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - match.arg(subgroup_ref, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) - - # Select census variables - vars <- c(NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021") - - selected_vars <- vars[c(subgroup, subgroup_ref)] - out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, "E", sep = "") - in_subgroup_ref <- paste(subgroup_ref, "E", sep = "") - - # Acquire DI variables and sf geometries - di_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, - keep_geo_vars = TRUE, ...))) - - # Format output - if (geo_small == "county") { - di_data <- sf::st_drop_geometry(di_data) %>% - tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") - } - if (geo_small == "tract") { - di_data <- sf::st_drop_geometry(di_data) %>% - tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) - } - if (geo_small == "block group") { - di_data <- sf::st_drop_geometry(di_data) %>% - tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), - block.group = gsub("[^0-9\\.]", "", block.group)) - } +#' +duncan <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + subgroup_ref, + omit_NAs = TRUE, + quiet = FALSE, + ...) { - # Grouping IDs for DI computation - if (geo_large == "tract") { - di_data <- di_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "county") { - di_data <- di_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) - } - if (geo_large == "state") { - di_data <- di_data %>% - dplyr::mutate(oid = .$STATEFP, - state = stringr::str_trim(state)) - } - - # Count of racial/ethnic subgroup populations - ## Count of racial/ethnic comparison subgroup population - if (length(in_subgroup) == 1) { - di_data <- di_data %>% - dplyr::mutate(subgroup = .[ , in_subgroup]) - } else { - di_data <- di_data %>% - dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) - } - ## Count of racial/ethnic reference subgroup population - if (length(in_subgroup_ref) == 1) { - di_data <- di_data %>% - dplyr::mutate(subgroup_ref = .[ , in_subgroup_ref]) - } else { - di_data <- di_data %>% - dplyr::mutate(subgroup_ref = rowSums(.[ , in_subgroup_ref])) - } - - # Compute DI - ## From Duncan & Duncan (1955) https://doi.org/10.2307/2088328 - ## D_{jt} = 1/2 \sum_{i=1}^{k} | \frac{x_{ijt}}{X_{jt}}-\frac{y_{ijt}}{Y_{jt}}| - ## Where for k smaller geographies: - ## D_{jt} denotes the DI of larger geography j at time t - ## x_{ijt} denotes the racial/ethnic subgroup population of smaller geography i within larger geography j at time t - ## X_{jt} denotes the racial/ethnic subgroup population of larger geography j at time t - ## y_{ijt} denotes the racial/ethnic referent subgroup population of smaller geography i within larger geography j at time t - ## Y_{jt} denotes the racial/ethnic referent subgroup population of larger geography j at time t - - ## Compute - DItmp <- di_data %>% - split(., f = list(di_data$oid)) %>% - lapply(., FUN = di_fun, omit_NAs = omit_NAs) %>% - utils::stack(.) %>% - dplyr::mutate(DI = values, - oid = ind) %>% - dplyr::select(DI, oid) - - # Warning for missingness of census characteristics - missingYN <- di_data[ , c(in_subgroup, in_subgroup_ref)] - names(missingYN) <- out_names - missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) - - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + match.arg( + subgroup_ref, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c(subgroup, subgroup_ref)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup_ref <- paste(subgroup_ref, 'E', sep = '') + + # Acquire DI variables and sf geometries + di_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + # Format output + if (geo_small == 'county') { + di_data <- di_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } + if (geo_small == 'tract') { + di_data <- di_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + di_data <- di_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for DI computation + if (geo_large == 'tract') { + di_data <- di_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'county') { + di_data <- di_data %>% + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'state') { + di_data <- di_data %>% + dplyr::mutate( + oid = .$STATEFP, + state = stringr::str_trim(state) + ) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + di_data <- di_data %>% + dplyr::mutate(subgroup = .[, in_subgroup]) + } else { + di_data <- di_data %>% + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) + } + ## Count of racial/ethnic reference subgroup population + if (length(in_subgroup_ref) == 1) { + di_data <- di_data %>% + dplyr::mutate(subgroup_ref = .[, in_subgroup_ref]) + } else { + di_data <- di_data %>% + dplyr::mutate(subgroup_ref = rowSums(.[, in_subgroup_ref])) + } + + # Compute DI + ## From Duncan & Duncan (1955) https://doi.org/10.2307/2088328 + ## D_{jt} = 1/2 \sum_{i=1}^{k} | \frac{x_{ijt}}{X_{jt}}-\frac{y_{ijt}}{Y_{jt}}| + ## Where for k smaller geographies: + ## D_{jt} denotes the DI of larger geography j at time t + ## x_{ijt} denotes the racial/ethnic subgroup population of smaller geography i within larger geography j at time t + ## X_{jt} denotes the racial/ethnic subgroup population of larger geography j at time t + ## y_{ijt} denotes the racial/ethnic referent subgroup population of smaller geography i within larger geography j at time t + ## Y_{jt} denotes the racial/ethnic referent subgroup population of larger geography j at time t + + ## Compute + DItmp <- di_data %>% + split(., f = list(di_data$oid)) %>% + lapply(., FUN = di_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate( + DI = values, + oid = ind + ) %>% + dplyr::select(DI, oid) + + # Warning for missingness of census characteristics + missingYN <- di_data[, c(in_subgroup, in_subgroup_ref)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo_large == 'state') { + di <- di_data %>% + dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, DI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, DI) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'county') { + di <- di_data %>% + dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, DI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, DI) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'tract') { + di <- di_data %>% + dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, tract, DI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, DI) %>% + .[.$GEOID != 'NANA',] + } + + di <- di %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + di_data <- di_data %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(di = di, di_data = di_data, missing = missingYN) + + return(out) } - - # Format output - if (geo_large == "state") { - di <- merge(di_data, DItmp) %>% - dplyr::select(oid, state, DI) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, DI) %>% - .[.$GEOID != "NANA", ] - } - if (geo_large == "county") { - di <- merge(di_data, DItmp) %>% - dplyr::select(oid, state, county, DI) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, DI) %>% - .[.$GEOID != "NANA", ] - } - if (geo_large == "tract") { - di <- merge(di_data, DItmp) %>% - dplyr::select(oid, state, county, tract, DI) %>% - unique(.) %>% - dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, tract, DI) %>% - .[.$GEOID != "NANA", ] - } - - di <- di %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - di_data <- di_data %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(di = di, - di_data = di_data, - missing = missingYN) - - return(out) -} diff --git a/R/gini.R b/R/gini.R index 4268a57..09da8a2 100644 --- a/R/gini.R +++ b/R/gini.R @@ -1,107 +1,121 @@ -#' Gini Index based on Gini (1921) -#' +#' Gini Index based on Gini (1921) +#' #' Retrieve the aspatial Gini Index of income inequality. #' -#' @param geo Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}. +#' @param geo Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param quiet Logical. If TRUE, will display messages about potential missing census information #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' #' @details This function will retrieve the aspatial Gini Index of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Gini (1921) \doi{10.2307/2223319}. -#' +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey estimates of the Gini Index for income inequality (ACS: B19083). The estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' -#' According to the U.S. Census Bureau \url{https://www.census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html}: "The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution." -#' +#' +#' According to the U.S. Census Bureau \url{https://www.census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html}: 'The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution.' +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{gini}}{An object of class 'tbl' for the GEOID, name, and Gini index of specified census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for the Gini index.} #' } -#' +#' #' @import dplyr #' @importFrom stringr str_trim #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Tract-level metric (2020) -#' gini(geo = "tract", state = "GA", year = 2020) -#' +#' gini(geo = 'tract', state = 'GA', year = 2020) +#' #' # County-level metric (2020) -#' gini(geo = "county", state = "GA", year = 2020) -#' +#' gini(geo = 'county', state = 'GA', year = 2020) +#' #' } -#' -gini <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { +#' +gini <- function(geo = 'tract', + year = 2020, + quiet = FALSE, + ...) { # Check arguments - match.arg(geo, choices = c("county", "tract")) + match.arg(geo, choices = c('county', 'tract')) stopifnot(is.numeric(year), year >= 2009) # the gini variable is available before and after 2009 but constrained for consistency with out indices (for now) # Select census variable - vars <- c(gini = "B19083_001") + vars <- c(gini = 'B19083_001') # Acquire Gini Index - gini_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = vars, ...))) - - if (geo == "tract") { + gini_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = vars, + ... + ) + )) + + if (geo == 'tract') { gini_data <- gini_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - gini_data <- gini_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + gini_data <- gini_data %>% + tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } gini_data <- gini_data %>% - dplyr::mutate(gini = giniE) + dplyr::mutate(gini = giniE) # Warning for missingness of census characteristics missingYN <- gini_data %>% dplyr::select(gini) %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) if (quiet == FALSE) { # Warning for missing census data if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + message('Warning: Missing census data') } } - if (geo == "tract") { + if (geo == 'tract') { gini <- gini_data %>% dplyr::select(GEOID, state, county, tract, gini) } else { gini <- gini_data %>% - dplyr::select(GEOID, state, county, gini) + dplyr::select(GEOID, state, county, gini) } gini <- gini %>% - dplyr::mutate(state = stringr::str_trim(state), - county = stringr::str_trim(county)) %>% + dplyr::mutate( + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% dplyr::arrange(GEOID) %>% - dplyr::as_tibble() + dplyr::as_tibble() - out <- list(gini = gini, - missing = missingYN) + out <- list(gini = gini, missing = missingYN) return(out) } diff --git a/R/globals.R b/R/globals.R index b2aeb06..43ec440 100644 --- a/R/globals.R +++ b/R/globals.R @@ -1,43 +1,253 @@ -globalVariables(c("CWD", "EDU", "EMP", "FHH", "GEOID", "MedHHInc", "MedHHIncE", "MedHomeVal", "MedHomeValE", "NAME", - "NDI", "OCC", "PC1", "POV", "PUB", "PctCrwdHH_denE", "PctCrwdHH_num1E", "PctCrwdHH_num2E", - "PctCrwdHH_num3E", "PctCrwdHH_num4E", "PctCrwdHH_num5E", "PctCrwdHH_num6E", - "PctEducBchPlus", "PctEducHSPlus", "PctEducLTBch", "PctEducLTBchZ", "PctEducLTHS", - "PctEducLTHSZ", "PctEducLessThanHS_denE", "PctEducLessThanHS_numE", - "PctEduc_den25upE", "PctEduc_num25upADE", "PctEduc_num25upBDE", - "PctEduc_num25upGDE", "PctEduc_num25upHSE", "PctEduc_num25upSCE", - "PctFamBelowPov", "PctFamBelowPovE", "PctFamBelowPovZ", "PctFemHeadKids", - "PctFemHeadKidsZ", "PctFemHeadKids_denE", "PctFemHeadKids_num1E", - "PctFemHeadKids_num2E", "PctHHPov_denE", "PctHHPov_numE", "PctHHUnder30K_denE", - "PctHHUnder30K_num1E", "PctHHUnder30K_num2E", "PctHHUnder30K_num3E", - "PctHHUnder30K_num4E", "PctHHUnder30K_num5E", "PctMenMgmtBusScArti_denE", - "PctMenMgmtBusScArti_num1E", "PctMenMgmtBusScArti_num2E", "PctMgmtBusScArti", - "PctMgmtBusScArti_denE", "PctMgmtBusScArti_numE", "PctNComPlmb", "PctNComPlmbE", - "PctNComPlmbZ", "PctNoIDR", "PctNoIDRZ", "PctNoPhone", "PctNoPhoneE", "PctNoPhoneZ", - "PctNotOwnerOcc", "PctNotOwnerOccZ", "PctOwnerOcc", "PctOwnerOccE", "PctPubAsst", - "PctPubAsstZ", "PctPubAsst_denE", "PctPubAsst_numE", "PctRecvIDR", - "PctRecvIDR_denE", "PctRecvIDR_numE", "PctUnemp_1619FE", "PctUnemp_1619ME", - "PctUnemp_2021FE", "PctUnemp_2021ME", "PctUnemp_2224FE", "PctUnemp_2224ME", - "PctUnemp_2529FE", "PctUnemp_2529ME", "PctUnemp_4554FE", "PctUnemp_4554ME", - "PctUnemp_5559FE", "PctUnemp_5559ME", "PctUnemp_6061FE", "PctUnemp_6061ME", - "PctUnemp_6264FE", "PctUnemp_6264ME", "PctUnemp_6569FE", "PctUnemp_6569ME", - "PctUnemp_7074FE", "PctUnemp_7074ME", "PctUnemp_75upME", "PctUnemp_denE", - "PctUnemp_numE", "PctUnempl", "PctUnemplE", "PctUnemplZ", "PctWorkClass", - "PctWorkClassZ", "TotalPop", "TotalPopulationE", "U30", "county", "logMedHHInc", - "logMedHomeVal", "percent", "state", "total", "tract", "val", "variable", "giniE", - "A_edu", "A_inc", "A_wbinc", "A_wpcinc", "B100125i", "B100125iE", "B100125nhw", - "B100125nhwE", "B1015bih", "B1015bihE", "B1015i", "B1015iE", "B1015nhw", "B1015nhwE", - "B125150i", "B125150iE", "B125150nhw", "B125150nhwE", "B150200hw", "B150200i", - "B150200iE", "B150200nhw", "B150200nhwE", "B1520bih", "B1520bihE", "B1520i", "B1520iE", - "B1520nhw", "B1520nhwE", "B2025bih", "B2025bihE", "B2025i", "B2025iE", "B2025nhw", - "B2025nhwE", "B2530bih", "B2530bihE", "B2530i", "B2530iE", "B2530nhw", "B2530nhwE", - "ICE_edu", "ICE_inc", "ICE_rewb", "ICE_wbinc", "ICE_wpcinc", "NHoLB", "NHoLBE", "NHoLW", - "NHoLWE", "O200i", "O200iE", "O200nhw", "O200nhwE", "O25F10G", "O25F10GE", "O25F11G", - "O25F11GE", "O25F12GND", "O25F12GNDE", "O25F5t6G", "O25F5t6GE", "O25F7t8G", "O25F7t8GE", - "O25F9G", "O25F9GE", "O25FBD", "O25FBDE", "O25FDD", "O25FDDE", "O25FMD", "O25FMDE", "O25FNSC", - "O25FNSCE", "O25FNt4G", "O25FNt4GE", "O25FPSD", "O25FPSDE", "O25M10G", "O25M10GE", "O25M11G", - "O25M11GE", "O25M12GND", "O25M12GNDE", "O25M5t6G", "O25M5t6GE", "O25M7t8G", "O25M7t8GE", - "O25M9G", "O25M9GE", "O25MBD", "O25MBDE", "O25MDD", "O25MDDE", "O25MMD", "O25MMDE", "O25MNSC", - "O25MNSCE", "O25MNt4G", "O25MNt4GE", "O25MPSD", "O25MPSDE", "P_edu", "P_inc", "P_wbinc", - "P_wpcinc", "TotalPop_edu", "TotalPop_inc", "TotalPop_re", "TotalPopeduE", - "TotalPopiE", "TotalPopreE", "U10bih", "U10bihE", "U10i", "U10iE", "U10nhw", "U10nhwE", "NAME.y", - ".", "values", "ind", "oid", "block.group", "DI", "AI", "II", "V", "LQ", "LExIs")) +globalVariables( + c( + 'CWD', + 'EDU', + 'EMP', + 'FHH', + 'GEOID', + 'MedHHInc', + 'MedHHIncE', + 'MedHomeVal', + 'MedHomeValE', + 'NAME', + 'NDI', + 'OCC', + 'PC1', + 'POV', + 'PUB', + 'PctCrwdHH_denE', + 'PctCrwdHH_num1E', + 'PctCrwdHH_num2E', + 'PctCrwdHH_num3E', + 'PctCrwdHH_num4E', + 'PctCrwdHH_num5E', + 'PctCrwdHH_num6E', + 'PctEducBchPlus', + 'PctEducHSPlus', + 'PctEducLTBch', + 'PctEducLTBchZ', + 'PctEducLTHS', + 'PctEducLTHSZ', + 'PctEducLessThanHS_denE', + 'PctEducLessThanHS_numE', + 'PctEduc_den25upE', + 'PctEduc_num25upADE', + 'PctEduc_num25upBDE', + 'PctEduc_num25upGDE', + 'PctEduc_num25upHSE', + 'PctEduc_num25upSCE', + 'PctFamBelowPov', + 'PctFamBelowPovE', + 'PctFamBelowPovZ', + 'PctFemHeadKids', + 'PctFemHeadKidsZ', + 'PctFemHeadKids_denE', + 'PctFemHeadKids_num1E', + 'PctFemHeadKids_num2E', + 'PctHHPov_denE', + 'PctHHPov_numE', + 'PctHHUnder30K_denE', + 'PctHHUnder30K_num1E', + 'PctHHUnder30K_num2E', + 'PctHHUnder30K_num3E', + 'PctHHUnder30K_num4E', + 'PctHHUnder30K_num5E', + 'PctMenMgmtBusScArti_denE', + 'PctMenMgmtBusScArti_num1E', + 'PctMenMgmtBusScArti_num2E', + 'PctMgmtBusScArti', + 'PctMgmtBusScArti_denE', + 'PctMgmtBusScArti_numE', + 'PctNComPlmb', + 'PctNComPlmbE', + 'PctNComPlmbZ', + 'PctNoIDR', + 'PctNoIDRZ', + 'PctNoPhone', + 'PctNoPhoneE', + 'PctNoPhoneZ', + 'PctNotOwnerOcc', + 'PctNotOwnerOccZ', + 'PctOwnerOcc', + 'PctOwnerOccE', + 'PctPubAsst', + 'PctPubAsstZ', + 'PctPubAsst_denE', + 'PctPubAsst_numE', + 'PctRecvIDR', + 'PctRecvIDR_denE', + 'PctRecvIDR_numE', + 'PctUnemp_1619FE', + 'PctUnemp_1619ME', + 'PctUnemp_2021FE', + 'PctUnemp_2021ME', + 'PctUnemp_2224FE', + 'PctUnemp_2224ME', + 'PctUnemp_2529FE', + 'PctUnemp_2529ME', + 'PctUnemp_4554FE', + 'PctUnemp_4554ME', + 'PctUnemp_5559FE', + 'PctUnemp_5559ME', + 'PctUnemp_6061FE', + 'PctUnemp_6061ME', + 'PctUnemp_6264FE', + 'PctUnemp_6264ME', + 'PctUnemp_6569FE', + 'PctUnemp_6569ME', + 'PctUnemp_7074FE', + 'PctUnemp_7074ME', + 'PctUnemp_75upME', + 'PctUnemp_denE', + 'PctUnemp_numE', + 'PctUnempl', + 'PctUnemplE', + 'PctUnemplZ', + 'PctWorkClass', + 'PctWorkClassZ', + 'TotalPop', + 'TotalPopulationE', + 'U30', + 'county', + 'logMedHHInc', + 'logMedHomeVal', + 'percent', + 'state', + 'total', + 'tract', + 'val', + 'variable', + 'giniE', + 'A_edu', + 'A_inc', + 'A_wbinc', + 'A_wpcinc', + 'B100125i', + 'B100125iE', + 'B100125nhw', + 'B100125nhwE', + 'B1015bih', + 'B1015bihE', + 'B1015i', + 'B1015iE', + 'B1015nhw', + 'B1015nhwE', + 'B125150i', + 'B125150iE', + 'B125150nhw', + 'B125150nhwE', + 'B150200hw', + 'B150200i', + 'B150200iE', + 'B150200nhw', + 'B150200nhwE', + 'B1520bih', + 'B1520bihE', + 'B1520i', + 'B1520iE', + 'B1520nhw', + 'B1520nhwE', + 'B2025bih', + 'B2025bihE', + 'B2025i', + 'B2025iE', + 'B2025nhw', + 'B2025nhwE', + 'B2530bih', + 'B2530bihE', + 'B2530i', + 'B2530iE', + 'B2530nhw', + 'B2530nhwE', + 'ICE_edu', + 'ICE_inc', + 'ICE_rewb', + 'ICE_wbinc', + 'ICE_wpcinc', + 'NHoLB', + 'NHoLBE', + 'NHoLW', + 'NHoLWE', + 'O200i', + 'O200iE', + 'O200nhw', + 'O200nhwE', + 'O25F10G', + 'O25F10GE', + 'O25F11G', + 'O25F11GE', + 'O25F12GND', + 'O25F12GNDE', + 'O25F5t6G', + 'O25F5t6GE', + 'O25F7t8G', + 'O25F7t8GE', + 'O25F9G', + 'O25F9GE', + 'O25FBD', + 'O25FBDE', + 'O25FDD', + 'O25FDDE', + 'O25FMD', + 'O25FMDE', + 'O25FNSC', + 'O25FNSCE', + 'O25FNt4G', + 'O25FNt4GE', + 'O25FPSD', + 'O25FPSDE', + 'O25M10G', + 'O25M10GE', + 'O25M11G', + 'O25M11GE', + 'O25M12GND', + 'O25M12GNDE', + 'O25M5t6G', + 'O25M5t6GE', + 'O25M7t8G', + 'O25M7t8GE', + 'O25M9G', + 'O25M9GE', + 'O25MBD', + 'O25MBDE', + 'O25MDD', + 'O25MDDE', + 'O25MMD', + 'O25MMDE', + 'O25MNSC', + 'O25MNSCE', + 'O25MNt4G', + 'O25MNt4GE', + 'O25MPSD', + 'O25MPSDE', + 'P_edu', + 'P_inc', + 'P_wbinc', + 'P_wpcinc', + 'TotalPop_edu', + 'TotalPop_inc', + 'TotalPop_re', + 'TotalPopeduE', + 'TotalPopiE', + 'TotalPopreE', + 'U10bih', + 'U10bihE', + 'U10i', + 'U10iE', + 'U10nhw', + 'U10nhwE', + 'NAME.y', + '.', + 'values', + 'ind', + 'oid', + 'block.group', + 'DI', + 'AI', + 'II', + 'V', + 'LQ', + 'LExIs', + 'DEL' + ) +) diff --git a/R/krieger.R b/R/krieger.R index 6bcdd06..73f0987 100644 --- a/R/krieger.R +++ b/R/krieger.R @@ -1,22 +1,22 @@ -#' Index of Concentration at the Extremes based on Feldman _et al._ (2015) and Krieger _et al._ (2016) -#' +#' Index of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016) +#' #' Compute the aspatial Index of Concentration at the Extremes (Krieger). #' -#' @param geo Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}. +#' @param geo Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman _et al._ (2015) \doi{10.1136/jech-2015-205728} and Krieger _et al._ (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: -#' -#' \itemize{ +#' @details This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: +#' +#' \itemize{ #' \item **Income**: 80th income percentile vs. 20th income percentile #' \item **Education**: less than high school vs. four-year college degree or more #' \item **Race/Ethnicity**: white non-Hispanic vs. black non-Hispanic #' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile #' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile #' } -#' +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five ICE metrics are: #' \itemize{ #' \item **B03002**: HISPANIC OR LATINO ORIGIN BY RACE @@ -25,280 +25,453 @@ #' \item **B19001B**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER) #' \item **B19001H**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER) #' } -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' +#' #' ICE metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. -#' +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{ice}}{An object of class 'tbl' for the GEOID, name, ICE metrics, and raw census values of specified census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the ICEs.} #' } -#' +#' #' @import dplyr #' @importFrom stringr str_trim #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Tract-level metric (2020) -#' krieger(geo = "tract", state = "GA", year = 2020) -#' +#' krieger(geo = 'tract', state = 'GA', year = 2020) +#' #' # County-level metric (2020) -#' krieger(geo = "county", state = "GA", year = 2020) -#' +#' krieger(geo = 'county', state = 'GA', year = 2020) +#' #' } -#' -krieger <- function(geo = "tract", year = 2020, quiet = FALSE, ...) { - - # Check arguments - match.arg(geo, choices = c("county", "tract")) - stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - - # Select census variables - vars <- c(TotalPopi = "B19001_001", - TotalPopedu = "B15002_001", - TotalPopre = "B03002_001", - U10i = "B19001_002", - B1015i = "B19001_003", - B1520i = "B19001_004", - B2025i = "B19001_005", - B2530i = "B19001_006", - B100125i = "B19001_014", - B125150i = "B19001_015", - B150200i = "B19001_016", - O200i = "B19001_017", - O25MNSC = "B15002_003", - O25FNSC = "B15002_020", - O25MNt4G = "B15002_004", - O25FNt4G = "B15002_021", - O25M5t6G = "B15002_005", - O25F5t6G = "B15002_022", - O25M7t8G = "B15002_006", - O25F7t8G = "B15002_023", - O25M9G = "B15002_007", - O25F9G = "B15002_024", - O25M10G = "B15002_008", - O25F10G = "B15002_025", - O25M11G = "B15002_009", - O25F11G = "B15002_026", - O25M12GND = "B15002_010", - O25F12GND = "B15002_027", - O25MBD = "B15002_015", - O25FBD = "B15002_032", - O25MMD = "B15002_016", - O25FMD = "B15002_033", - O25MPSD = "B15002_017", - O25FPSD = "B15002_034", - O25MDD = "B15002_018", - O25FDD = "B15002_035", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - U10nhw = "B19001H_002", - B1015nhw = "B19001H_003", - B1520nhw = "B19001H_004", - B2025nhw = "B19001H_005", - B2530nhw = "B19001H_006", - B100125nhw = "B19001H_014", - B125150nhw = "B19001H_015", - B150200nhw = "B19001H_016", - O200nhw = "B19001H_017", - U10bih = "B19001B_002", - B1015bih = "B19001B_003", - B1520bih = "B19001B_004", - B2025bih = "B19001B_005", - B2530bih = "B19001B_006") +#' +krieger <- function(geo = 'tract', + year = 2020, + quiet = FALSE, + ...) { - # Acquire ICE variables - ice_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = vars, ...))) - - if (geo == "tract") { + # Check arguments + match.arg(geo, choices = c('county', 'tract')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + + # Select census variables + vars <- c( + TotalPopi = 'B19001_001', + TotalPopedu = 'B15002_001', + TotalPopre = 'B03002_001', + U10i = 'B19001_002', + B1015i = 'B19001_003', + B1520i = 'B19001_004', + B2025i = 'B19001_005', + B2530i = 'B19001_006', + B100125i = 'B19001_014', + B125150i = 'B19001_015', + B150200i = 'B19001_016', + O200i = 'B19001_017', + O25MNSC = 'B15002_003', + O25FNSC = 'B15002_020', + O25MNt4G = 'B15002_004', + O25FNt4G = 'B15002_021', + O25M5t6G = 'B15002_005', + O25F5t6G = 'B15002_022', + O25M7t8G = 'B15002_006', + O25F7t8G = 'B15002_023', + O25M9G = 'B15002_007', + O25F9G = 'B15002_024', + O25M10G = 'B15002_008', + O25F10G = 'B15002_025', + O25M11G = 'B15002_009', + O25F11G = 'B15002_026', + O25M12GND = 'B15002_010', + O25F12GND = 'B15002_027', + O25MBD = 'B15002_015', + O25FBD = 'B15002_032', + O25MMD = 'B15002_016', + O25FMD = 'B15002_033', + O25MPSD = 'B15002_017', + O25FPSD = 'B15002_034', + O25MDD = 'B15002_018', + O25FDD = 'B15002_035', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + U10nhw = 'B19001H_002', + B1015nhw = 'B19001H_003', + B1520nhw = 'B19001H_004', + B2025nhw = 'B19001H_005', + B2530nhw = 'B19001H_006', + B100125nhw = 'B19001H_014', + B125150nhw = 'B19001H_015', + B150200nhw = 'B19001H_016', + O200nhw = 'B19001H_017', + U10bih = 'B19001B_002', + B1015bih = 'B19001B_003', + B1520bih = 'B19001B_004', + B2025bih = 'B19001B_005', + B2530bih = 'B19001B_006' + ) + + # Acquire ICE variables + ice_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = vars, + ... + ) + )) + + + if (geo == 'tract') { + ice_data <- ice_data %>% + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } else { + ice_data <- ice_data %>% + tidyr::separate(NAME, into = c('county', 'state'), sep = ',') + } + ice_data <- ice_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) - } else { - ice_data <- ice_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") - } - - ice_data <- ice_data %>% - dplyr::mutate(TotalPop_inc = TotalPopiE, - TotalPop_edu = TotalPopeduE, - TotalPop_re = TotalPopreE, - U10i = U10iE, - B1015i = B1015iE, - B1520i = B1520iE, - B2025i = B2025iE, - B2530i = B2530iE, - B100125i = B100125iE, - B125150i = B125150iE, - B150200i = B150200iE, - O200i = O200iE, - O25MNSC = O25MNSCE, - O25FNSC = O25FNSCE, - O25MNt4G = O25MNt4GE, - O25FNt4G = O25FNt4GE, - O25M5t6G = O25M5t6GE, - O25F5t6G = O25F5t6GE, - O25M7t8G = O25M7t8GE, - O25F7t8G = O25F7t8GE, - O25M9G = O25M9GE, - O25F9G = O25F9GE, - O25M10G = O25M10GE, - O25F10G = O25F10GE, - O25M11G = O25M11GE, - O25F11G = O25F11GE, - O25M12GND = O25M12GNDE, - O25F12GND = O25F12GNDE, - O25MBD = O25MBDE, - O25FBD = O25FBDE, - O25MMD = O25MMDE, - O25FMD = O25FMDE, - O25MPSD = O25MPSDE, - O25FPSD = O25FPSDE, - O25MDD = O25MDDE, - O25FDD = O25FDDE, - NHoLW = NHoLWE, - NHoLB = NHoLBE, - U10nhw = U10nhwE, - B1015nhw = B1015nhwE, - B1520nhw = B1520nhwE, - B2025nhw = B2025nhwE, - B2530nhw = B2530nhwE, - B100125nhw = B100125nhwE, - B125150nhw = B125150nhwE, - B150200nhw = B150200nhwE, - O200nhw = O200nhwE, - U10bih = U10bihE, - B1015bih = B1015bihE, - B1520bih = B1520bihE, - B2025bih = B2025bihE, - B2530bih = B2530bihE) - - # Sum educational attainment categories - # A_{edu} = Less than high school / 12 year / GED - # P_{edu} = Four-year college degree or more - ice_data <- ice_data %>% - dplyr::mutate(A_edu = O25MBD + O25FBD + O25MMD + O25FMD + O25MPSD + - O25FPSD + O25MDD + O25FDD, - P_edu = O25MNSC + O25FNSC + O25MNt4G + O25FNt4G + - O25M5t6G + O25F5t6G + O25M7t8G + O25F7t8G + - O25M9G + O25F9G + O25M10G + O25F10G + - O25M11G + O25F11G + O25M12GND + O25F12GND) - - # Sum income percentile counts - ## A_income (A_{inc}) is the 80th income percentile - ## P_income (P_{inc}) is the 20th income percentile - ## Add "Total, $25,000 to $34,999" for years 2016 and after - ## Remove "Total, $100,000 to $124,999" for years 2016 and after - ## According to U.S. Census Bureau Table A-4a - ## "Selected Measures of Household Income Dispersion: 1967 to 2020" - if (year < 2016) { - ice_data <- ice_data %>% - dplyr::mutate(A_inc = B100125i + B125150i + B150200i + O200i, - P_inc = U10i + B1015i + B1520i + B2025i, - A_wbinc = B100125nhw + B125150nhw + B150200nhw + O200nhw, - P_wbinc = U10bih + B1015bih + B1520bih + B2025bih, - A_wpcinc = B100125nhw + B125150nhw + B150200nhw + O200nhw, - P_wpcinc = U10nhw + B1015nhw + B1520nhw + B2025nhw) - } else { - ice_data <- ice_data %>% - dplyr::mutate(A_inc = B125150i + B150200i + O200i, - P_inc = U10i + B1015i + B1520i + B2025i + B2530i, - A_wbinc = B125150nhw + B150200nhw + O200nhw, - P_wbinc = U10bih + B1015bih + B1520bih + B2025bih + B2530bih, - A_wpcinc = B125150nhw + B150200nhw + O200nhw, - P_wpcinc = U10nhw + B1015nhw + B1520nhw + B2025nhw + B2530nhw) - } - - # Compute ICEs - ## From Kreiger et al. (2016) https://doi.org/10.2105%2FAJPH.2015.302955 - ## ICE_{i} = (A_{i} - P_{i}) / T_{i} - ## Where: - ## A_{i} denotes the count within the lowest extreme (e.g., households in 20th income percentile) - ## P_{i} denotes the count within the highest extreme (e.g., households in 80th income percentile) - ## T_{i} denotes the total population in region i (TotalPop) - - ice_data <- ice_data %>% - dplyr::mutate(ICE_inc = (A_inc - P_inc) / TotalPop_inc, - ICE_edu = (A_edu - P_edu) / TotalPop_edu, - ICE_rewb = (NHoLW - NHoLB) / TotalPop_re, - ICE_wbinc = (A_wbinc - P_wbinc) / TotalPop_inc, - ICE_wpcinc = (A_wpcinc - P_wpcinc) / TotalPop_inc) - - # Warning for missingness of census characteristics - missingYN <- ice_data %>% - dplyr::select(U10i, B1015i, B1520i, B2025i, B2530i, B100125i, B125150i, - B150200i, O200i, O25MNSC, O25FNSC,O25MNt4G, O25FNt4G, - O25M5t6G, O25F5t6G, O25M7t8G, O25F7t8G, O25M9G, O25F9G, - O25M10G, O25F10G, O25M11G, O25F11G, O25M12GND, O25F12GND, - O25MBD, O25FBD, O25MMD, O25FMD, O25MPSD, O25FPSD, O25MDD, - O25FDD, NHoLW, NHoLB, U10nhw, B1015nhw, B1520nhw, - B2025nhw, B2530nhw, B100125nhw, B125150nhw, - B150200nhw, O200nhw, U10bih, B1015bih, B1520bih, B2025bih, - B2530bih, TotalPop_inc, TotalPop_edu, TotalPop_re) %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) - - if (quiet == FALSE) { - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + dplyr::mutate( + TotalPop_inc = TotalPopiE, + TotalPop_edu = TotalPopeduE, + TotalPop_re = TotalPopreE, + U10i = U10iE, + B1015i = B1015iE, + B1520i = B1520iE, + B2025i = B2025iE, + B2530i = B2530iE, + B100125i = B100125iE, + B125150i = B125150iE, + B150200i = B150200iE, + O200i = O200iE, + O25MNSC = O25MNSCE, + O25FNSC = O25FNSCE, + O25MNt4G = O25MNt4GE, + O25FNt4G = O25FNt4GE, + O25M5t6G = O25M5t6GE, + O25F5t6G = O25F5t6GE, + O25M7t8G = O25M7t8GE, + O25F7t8G = O25F7t8GE, + O25M9G = O25M9GE, + O25F9G = O25F9GE, + O25M10G = O25M10GE, + O25F10G = O25F10GE, + O25M11G = O25M11GE, + O25F11G = O25F11GE, + O25M12GND = O25M12GNDE, + O25F12GND = O25F12GNDE, + O25MBD = O25MBDE, + O25FBD = O25FBDE, + O25MMD = O25MMDE, + O25FMD = O25FMDE, + O25MPSD = O25MPSDE, + O25FPSD = O25FPSDE, + O25MDD = O25MDDE, + O25FDD = O25FDDE, + NHoLW = NHoLWE, + NHoLB = NHoLBE, + U10nhw = U10nhwE, + B1015nhw = B1015nhwE, + B1520nhw = B1520nhwE, + B2025nhw = B2025nhwE, + B2530nhw = B2530nhwE, + B100125nhw = B100125nhwE, + B125150nhw = B125150nhwE, + B150200nhw = B150200nhwE, + O200nhw = O200nhwE, + U10bih = U10bihE, + B1015bih = B1015bihE, + B1520bih = B1520bihE, + B2025bih = B2025bihE, + B2530bih = B2530bihE + ) + + # Sum educational attainment categories + # A_{edu} = Less than high school / 12 year / GED + # P_{edu} = Four-year college degree or more + ice_data <- ice_data %>% + dplyr::mutate( + A_edu = O25MBD + O25FBD + O25MMD + O25FMD + O25MPSD + O25FPSD + O25MDD + O25FDD, + P_edu = O25MNSC + O25FNSC + O25MNt4G + O25FNt4G + O25M5t6G + O25F5t6G + O25M7t8G + + O25F7t8G + O25M9G + O25F9G + O25M10G + O25F10G + O25M11G + O25F11G + O25M12GND + + O25F12GND + ) + + # Sum income percentile counts + ## A_income (A_{inc}) is the 80th income percentile + ## P_income (P_{inc}) is the 20th income percentile + ## Add 'Total, $25,000 to $34,999' for years 2016 and after + ## Remove 'Total, $100,000 to $124,999' for years 2016 and after + ## According to U.S. Census Bureau Table A-4a + ## 'Selected Measures of Household Income Dispersion: 1967 to 2020' + if (year < 2016) { + ice_data <- ice_data %>% + dplyr::mutate( + A_inc = B100125i + B125150i + B150200i + O200i, + P_inc = U10i + B1015i + B1520i + B2025i, + A_wbinc = B100125nhw + B125150nhw + B150200nhw + O200nhw, + P_wbinc = U10bih + B1015bih + B1520bih + B2025bih, + A_wpcinc = B100125nhw + B125150nhw + B150200nhw + O200nhw, + P_wpcinc = U10nhw + B1015nhw + B1520nhw + B2025nhw + ) + } else { + ice_data <- ice_data %>% + dplyr::mutate( + A_inc = B125150i + B150200i + O200i, + P_inc = U10i + B1015i + B1520i + B2025i + B2530i, + A_wbinc = B125150nhw + B150200nhw + O200nhw, + P_wbinc = U10bih + B1015bih + B1520bih + B2025bih + B2530bih, + A_wpcinc = B125150nhw + B150200nhw + O200nhw, + P_wpcinc = U10nhw + B1015nhw + B1520nhw + B2025nhw + B2530nhw + ) } + + # Compute ICEs + ## From Kreiger et al. (2016) https://doi.org/10.2105%2FAJPH.2015.302955 + ## ICE_{i} = (A_{i} - P_{i}) / T_{i} + ## Where: + ## A_{i} denotes the count within the lowest extreme (e.g., households in 20th income percentile) + ## P_{i} denotes the count within the highest extreme (e.g., households in 80th income percentile) + ## T_{i} denotes the total population in region i (TotalPop) + + ice_data <- ice_data %>% + dplyr::mutate( + ICE_inc = (A_inc - P_inc) / TotalPop_inc, + ICE_edu = (A_edu - P_edu) / TotalPop_edu, + ICE_rewb = (NHoLW - NHoLB) / TotalPop_re, + ICE_wbinc = (A_wbinc - P_wbinc) / TotalPop_inc, + ICE_wpcinc = (A_wpcinc - P_wpcinc) / TotalPop_inc + ) + + # Warning for missingness of census characteristics + missingYN <- ice_data %>% + dplyr::select( + U10i, + B1015i, + B1520i, + B2025i, + B2530i, + B100125i, + B125150i, + B150200i, + O200i, + O25MNSC, + O25FNSC, + O25MNt4G, + O25FNt4G, + O25M5t6G, + O25F5t6G, + O25M7t8G, + O25F7t8G, + O25M9G, + O25F9G, + O25M10G, + O25F10G, + O25M11G, + O25F11G, + O25M12GND, + O25F12GND, + O25MBD, + O25FBD, + O25MMD, + O25FMD, + O25MPSD, + O25FPSD, + O25MDD, + O25FDD, + NHoLW, + NHoLB, + U10nhw, + B1015nhw, + B1520nhw, + B2025nhw, + B2530nhw, + B100125nhw, + B125150nhw, + B150200nhw, + O200nhw, + U10bih, + B1015bih, + B1520bih, + B2025bih, + B2530bih, + TotalPop_inc, + TotalPop_edu, + TotalPop_re + ) %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo == 'tract') { + ice <- ice_data %>% + dplyr::select( + GEOID, + state, + county, + tract, + ICE_inc, + ICE_edu, + ICE_rewb, + ICE_wbinc, + ICE_wpcinc, + U10i, + B1015i, + B1520i, + B2025i, + B2530i, + B100125i, + B125150i, + B150200i, + O200i, + O25MNSC, + O25FNSC, + O25MNt4G, + O25FNt4G, + O25M5t6G, + O25F5t6G, + O25M7t8G, + O25F7t8G, + O25M9G, + O25F9G, + O25M10G, + O25F10G, + O25M11G, + O25F11G, + O25M12GND, + O25F12GND, + O25MBD, + O25FBD, + O25MMD, + O25FMD, + O25MPSD, + O25FPSD, + O25MDD, + O25FDD, + NHoLW, + NHoLB, + U10nhw, + B1015nhw, + B1520nhw, + B2025nhw, + B2530nhw, + B100125nhw, + B125150nhw, + B150200nhw, + O200nhw, + U10bih, + B1015bih, + B1520bih, + B2025bih, + B2530bih, + TotalPop_inc, + TotalPop_edu, + TotalPop_re + ) + } else { + ice <- ice_data %>% + dplyr::select( + GEOID, + state, + county, + ICE_inc, + ICE_edu, + ICE_rewb, + ICE_wbinc, + ICE_wpcinc, + U10i, + B1015i, + B1520i, + B2025i, + B2530i, + B100125i, + B125150i, + B150200i, + O200i, + O25MNSC, + O25FNSC, + O25MNt4G, + O25FNt4G, + O25M5t6G, + O25F5t6G, + O25M7t8G, + O25F7t8G, + O25M9G, + O25F9G, + O25M10G, + O25F10G, + O25M11G, + O25F11G, + O25M12GND, + O25F12GND, + O25MBD, + O25FBD, + O25MMD, + O25FMD, + O25MPSD, + O25FPSD, + O25MDD, + O25FDD, + NHoLW, + NHoLB, + U10nhw, + B1015nhw, + B1520nhw, + B2025nhw, + B2530nhw, + B100125nhw, + B125150nhw, + B150200nhw, + O200nhw, + U10bih, + B1015bih, + B1520bih, + B2025bih, + B2530bih, + TotalPop_inc, + TotalPop_edu, + TotalPop_re + ) + } + + ice <- ice %>% + dplyr::mutate( + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(ice = ice, missing = missingYN) + + return(out) } - - # Format output - if (geo == "tract") { - ice <- ice_data %>% - dplyr::select(GEOID, state, county, tract, - ICE_inc, ICE_edu, ICE_rewb, ICE_wbinc, ICE_wpcinc, - U10i, B1015i, B1520i, B2025i, B2530i, B100125i, B125150i, - B150200i, O200i, O25MNSC, O25FNSC,O25MNt4G, O25FNt4G, - O25M5t6G, O25F5t6G, O25M7t8G, O25F7t8G, O25M9G, O25F9G, - O25M10G, O25F10G, O25M11G, O25F11G, O25M12GND, O25F12GND, - O25MBD, O25FBD, O25MMD, O25FMD, O25MPSD, O25FPSD, O25MDD, - O25FDD, NHoLW, NHoLB, U10nhw, B1015nhw, B1520nhw, - B2025nhw, B2530nhw, B100125nhw, B125150nhw, - B150200nhw, O200nhw, U10bih, B1015bih, B1520bih, B2025bih, - B2530bih, TotalPop_inc, TotalPop_edu, TotalPop_re) - } else { - ice <- ice_data %>% - dplyr::select(GEOID, state, county, - ICE_inc, ICE_edu, ICE_rewb, ICE_wbinc, ICE_wpcinc, - U10i, B1015i, B1520i, B2025i, B2530i, B100125i, B125150i, - B150200i, O200i, O25MNSC, O25FNSC,O25MNt4G, O25FNt4G, - O25M5t6G, O25F5t6G, O25M7t8G, O25F7t8G, O25M9G, O25F9G, - O25M10G, O25F10G, O25M11G, O25F11G, O25M12GND, O25F12GND, - O25MBD, O25FBD, O25MMD, O25FMD, O25MPSD, O25FPSD, O25MDD, - O25FDD, NHoLW, NHoLB, U10nhw, B1015nhw, B1520nhw, - B2025nhw, B2530nhw, B100125nhw, B125150nhw, - B150200nhw, O200nhw, U10bih, B1015bih, B1520bih, B2025bih, - B2530bih, TotalPop_inc, TotalPop_edu, TotalPop_re) - } - - ice <- ice %>% - dplyr::mutate(state = stringr::str_trim(state), - county = stringr::str_trim(county)) %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() - - out <- list(ice = ice, - missing = missingYN) - - return(out) -} diff --git a/R/messer.R b/R/messer.R index 01b71a5..614ffdd 100644 --- a/R/messer.R +++ b/R/messer.R @@ -1,8 +1,8 @@ -#' Neighborhood Deprivation Index based on Messer _et al._ (2006) +#' Neighborhood Deprivation Index based on Messer et al. (2006) #' #' Compute the aspatial Neighborhood Deprivation Index (Messer). #' -#' @param geo Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}. +#' @param geo Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available. #' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}}. If FALSE (the default), will not impute. #' @param quiet Logical. If TRUE, will display messages about potential missing census information and the proportion of variance explained by principal component analysis. The default is FALSE. @@ -10,7 +10,7 @@ #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer _et al._ (2006) \doi{10.1007/s11524-006-9094-x}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: #' \itemize{ @@ -27,11 +27,11 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. #' -#' The continuous NDI (Messer) values are z-transformed, i.e., "standardized," and the categorical NDI (Messer) values are quartiles of the standardized continuous NDI (Messer) values. +#' The continuous NDI (Messer) values are z-transformed, i.e., 'standardized,' and the categorical NDI (Messer) values are quartiles of the standardized continuous NDI (Messer) values. #' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). #' -#' Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer _et al._ (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). +#' Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer et al. (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). #' #' @return An object of class 'list'. This is a named list with the following components: #' @@ -59,232 +59,333 @@ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' #' # Tract-level metric (2020) -#' messer(geo = "tract", state = "GA", year = 2020) +#' messer(geo = 'tract', state = 'GA', year = 2020) #' #' # Impute NDI for tracts (2020) with missing census information (median values) -#' messer(state = "tract", "GA", year = 2020, imp = TRUE) +#' messer(state = 'tract', 'GA', year = 2020, imp = TRUE) #' #' # County-level metric (2020) -#' messer(geo = "county", state = "GA", year = 2020) +#' messer(geo = 'county', state = 'GA', year = 2020) #' #' } #' -messer <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round_output = FALSE, df = NULL, ...) { +messer <- function(geo = 'tract', + year = 2020, + imp = FALSE, + quiet = FALSE, + round_output = FALSE, + df = NULL, + ...) { # Check arguments - if (!is.null(df) & !inherits(df, c("tbl_df", "tbl", "data.frame"))) { stop("'df' must be class 'data.frame' or 'tbl'") } + if (!is.null(df) & + !inherits(df, c('tbl_df', 'tbl', 'data.frame'))) { + stop("df' must be class 'data.frame' or 'tbl'") + } if (is.null(df)) { - # Check additional arguments - match.arg(geo, choices = c("county", "tract")) + match.arg(geo, choices = c('county', 'tract')) stopifnot(is.numeric(year), year >= 2010) # all variables available 2010 onward # Select census variables - vars <- c(PctMenMgmtBusScArti_num1 = "C24030_018", PctMenMgmtBusScArti_num2 = "C24030_019", - PctMenMgmtBusScArti_den = "C24030_002", - PctCrwdHH_num1 = "B25014_005", PctCrwdHH_num2 = "B25014_006", - PctCrwdHH_num3 = "B25014_007", PctCrwdHH_num4 = "B25014_011", - PctCrwdHH_num5 = "B25014_012", PctCrwdHH_num6 = "B25014_013", - PctCrwdHH_den = "B25014_001", - PctHHPov_num = "B17017_002", PctHHPov_den = "B17017_001", - PctFemHeadKids_num1 = "B25115_012", PctFemHeadKids_num2 = "B25115_025", - PctFemHeadKids_den = "B25115_001", - PctPubAsst_num = "B19058_002", PctPubAsst_den = "B19058_001", - PctHHUnder30K_num1 = "B19001_002", PctHHUnder30K_num2 = "B19001_003", - PctHHUnder30K_num3 = "B19001_004", PctHHUnder30K_num4 = "B19001_005", - PctHHUnder30K_num5 = "B19001_006", PctHHUnder30K_den = "B19001_001", - PctEducLessThanHS_num = "B06009_002", PctEducLessThanHS_den = "B06009_001", - PctUnemp_num = "B23025_005", PctUnemp_den = "B23025_003") + vars <- + c( + PctMenMgmtBusScArti_num1 = 'C24030_018', + PctMenMgmtBusScArti_num2 = 'C24030_019', + PctMenMgmtBusScArti_den = 'C24030_002', + PctCrwdHH_num1 = 'B25014_005', + PctCrwdHH_num2 = 'B25014_006', + PctCrwdHH_num3 = 'B25014_007', + PctCrwdHH_num4 = 'B25014_011', + PctCrwdHH_num5 = 'B25014_012', + PctCrwdHH_num6 = 'B25014_013', + PctCrwdHH_den = 'B25014_001', + PctHHPov_num = 'B17017_002', + PctHHPov_den = 'B17017_001', + PctFemHeadKids_num1 = 'B25115_012', + PctFemHeadKids_num2 = 'B25115_025', + PctFemHeadKids_den = 'B25115_001', + PctPubAsst_num = 'B19058_002', + PctPubAsst_den = 'B19058_001', + PctHHUnder30K_num1 = 'B19001_002', + PctHHUnder30K_num2 = 'B19001_003', + PctHHUnder30K_num3 = 'B19001_004', + PctHHUnder30K_num4 = 'B19001_005', + PctHHUnder30K_num5 = 'B19001_006', + PctHHUnder30K_den = 'B19001_001', + PctEducLessThanHS_num = 'B06009_002', + PctEducLessThanHS_den = 'B06009_001', + PctUnemp_num = 'B23025_005', + PctUnemp_den = 'B23025_003' + ) if (year == 2010) { # Select census variables - vars <- c(vars[-c(26,27)], PctUnemp_den = "B23001_001", - PctUnemp_1619M = "B23001_008", PctUnemp_2021M = "B23001_015", - PctUnemp_2224M = "B23001_022", PctUnemp_2529M = "B23001_029", - PctUnemp_3034M = "B23001_036", PctUnemp_3544M = "B23001_043", - PctUnemp_4554M = "B23001_050", PctUnemp_5559M = "B23001_057", - PctUnemp_6061M = "B23001_064", PctUnemp_6264M = "B23001_071", - PctUnemp_6569M = "B23001_076", PctUnemp_7074M = "B23001_081", - PctUnemp_75upM = "B23001_086", PctUnemp_1619F = "B23001_094", - PctUnemp_2021F = "B23001_101", PctUnemp_2224F = "B23001_108", - PctUnemp_2529F = "B23001_115", PctUnemp_3034F = "B23001_122", - PctUnemp_3544F = "B23001_129", PctUnemp_4554F = "B23001_136", - PctUnemp_5559F = "B23001_143", PctUnemp_6061F = "B23001_150", - PctUnemp_6264F = "B23001_157", PctUnemp_6569F = "B23001_162", - PctUnemp_7074F = "B23001_167", PctUnemp_75upF = "B23001_172") + vars <- c( + vars[-c(26, 27)], + PctUnemp_den = 'B23001_001', + PctUnemp_1619M = 'B23001_008', + PctUnemp_2021M = 'B23001_015', + PctUnemp_2224M = 'B23001_022', + PctUnemp_2529M = 'B23001_029', + PctUnemp_3034M = 'B23001_036', + PctUnemp_3544M = 'B23001_043', + PctUnemp_4554M = 'B23001_050', + PctUnemp_5559M = 'B23001_057', + PctUnemp_6061M = 'B23001_064', + PctUnemp_6264M = 'B23001_071', + PctUnemp_6569M = 'B23001_076', + PctUnemp_7074M = 'B23001_081', + PctUnemp_75upM = 'B23001_086', + PctUnemp_1619F = 'B23001_094', + PctUnemp_2021F = 'B23001_101', + PctUnemp_2224F = 'B23001_108', + PctUnemp_2529F = 'B23001_115', + PctUnemp_3034F = 'B23001_122', + PctUnemp_3544F = 'B23001_129', + PctUnemp_4554F = 'B23001_136', + PctUnemp_5559F = 'B23001_143', + PctUnemp_6061F = 'B23001_150', + PctUnemp_6264F = 'B23001_157', + PctUnemp_6569F = 'B23001_162', + PctUnemp_7074F = 'B23001_167', + PctUnemp_75upF = 'B23001_172' + ) # Acquire NDI variables - ndi_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = vars, ...))) + ndi_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = vars, + ... + ) + )) - if (geo == "tract") { + if (geo == 'tract') { ndi_data <- ndi_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ndi_data <- + ndi_data %>% tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } ndi_data <- ndi_data %>% - dplyr::mutate(OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, - CWD = (PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + - PctCrwdHH_num4E + PctCrwdHH_num5E + PctCrwdHH_num6E) / PctCrwdHH_denE, - POV = PctHHPov_numE / PctHHPov_denE, - FHH = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE, - PUB = PctPubAsst_numE / PctPubAsst_denE, - U30 = (PctHHUnder30K_num1E + PctHHUnder30K_num2E + PctHHUnder30K_num3E + - PctHHUnder30K_num4E + PctHHUnder30K_num5E) / PctHHUnder30K_denE, - EDU = PctEducLessThanHS_numE / PctEducLessThanHS_denE, - EMP = (PctUnemp_1619ME + PctUnemp_2021ME + - PctUnemp_2224ME + PctUnemp_2529ME + - PctUnemp_4554ME + PctUnemp_5559ME + - PctUnemp_6061ME + PctUnemp_6264ME + - PctUnemp_6569ME + PctUnemp_7074ME + - PctUnemp_75upME + PctUnemp_1619FE + - PctUnemp_2021FE + PctUnemp_2224FE + - PctUnemp_2529FE + PctUnemp_4554FE + - PctUnemp_5559FE + PctUnemp_6061FE + - PctUnemp_6264FE + PctUnemp_6569FE + - PctUnemp_7074FE + PctUnemp_75upME) / PctUnemp_denE) + dplyr::mutate( + OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, + CWD = ( + PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + PctCrwdHH_num4E + + PctCrwdHH_num5E + PctCrwdHH_num6E + ) / PctCrwdHH_denE, + POV = PctHHPov_numE / PctHHPov_denE, + FHH = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE, + PUB = PctPubAsst_numE / PctPubAsst_denE, + U30 = ( + PctHHUnder30K_num1E + PctHHUnder30K_num2E + PctHHUnder30K_num3E + PctHHUnder30K_num4E + + PctHHUnder30K_num5E + ) / PctHHUnder30K_denE, + EDU = PctEducLessThanHS_numE / PctEducLessThanHS_denE, + EMP = ( + PctUnemp_1619ME + PctUnemp_2021ME + + PctUnemp_2224ME + PctUnemp_2529ME + + PctUnemp_4554ME + PctUnemp_5559ME + + PctUnemp_6061ME + PctUnemp_6264ME + + PctUnemp_6569ME + PctUnemp_7074ME + + PctUnemp_75upME + PctUnemp_1619FE + + PctUnemp_2021FE + PctUnemp_2224FE + + PctUnemp_2529FE + PctUnemp_4554FE + + PctUnemp_5559FE + PctUnemp_6061FE + + PctUnemp_6264FE + PctUnemp_6569FE + + PctUnemp_7074FE + PctUnemp_75upME + ) / PctUnemp_denE + ) } else { # Acquire NDI variables - ndi_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = vars, ...))) - - if (geo == "tract") { + ndi_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = vars, + ... + ) + )) + + if (geo == 'tract') { ndi_data <- ndi_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + ndi_data <- + ndi_data %>% tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } ndi_data <- ndi_data %>% - dplyr::mutate(OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, - CWD = (PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + - PctCrwdHH_num4E + PctCrwdHH_num5E + PctCrwdHH_num6E) / PctCrwdHH_denE, - POV = PctHHPov_numE / PctHHPov_denE, - FHH = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE, - PUB = PctPubAsst_numE / PctPubAsst_denE, - U30 = (PctHHUnder30K_num1E + PctHHUnder30K_num2E + PctHHUnder30K_num3E + - PctHHUnder30K_num4E + PctHHUnder30K_num5E) / PctHHUnder30K_denE, - EDU = PctEducLessThanHS_numE / PctEducLessThanHS_denE, - EMP = PctUnemp_numE / PctUnemp_denE) + dplyr::mutate( + OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, + CWD = ( + PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + PctCrwdHH_num4E + + PctCrwdHH_num5E + PctCrwdHH_num6E + ) / PctCrwdHH_denE, + POV = PctHHPov_numE / PctHHPov_denE, + FHH = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE, + PUB = PctPubAsst_numE / PctPubAsst_denE, + U30 = ( + PctHHUnder30K_num1E + PctHHUnder30K_num2E + PctHHUnder30K_num3E + PctHHUnder30K_num4E + + PctHHUnder30K_num5E + ) / PctHHUnder30K_denE, + EDU = PctEducLessThanHS_numE / PctEducLessThanHS_denE, + EMP = PctUnemp_numE / PctUnemp_denE + ) } # Generate NDI - ndi_data_pca <- ndi_data %>% + ndi_data_pca <- ndi_data %>% dplyr::select(OCC, CWD, POV, FHH, PUB, U30, EDU, EMP) } else { - # If inputing pre-formatted data: + # If inputing pre-formatted data: ndi_data <- dplyr::as_tibble(df) - ndi_data_pca <- df[ , -1] # omits the first feature (column) typically an ID (e.g., GEOID or FIPS) + # omit the first feature (column) typically an ID (e.g., GEOID or FIPS) + ndi_data_pca <- df[,-1] } # Replace infinite values as zero (typically because denominator is zero) - ndi_data_pca <- do.call(data.frame, - lapply(ndi_data_pca, - function(x) replace(x, is.infinite(x), 0))) + ndi_data_pca <- do.call( + data.frame, + lapply(ndi_data_pca, function(x) replace(x, is.infinite(x), 0)) + ) # Run principal component analysis - pca <- psych::principal(ndi_data_pca, - nfactors = 1, - n.obs = nrow(ndi_data_pca), - covar = FALSE, - scores = TRUE, - missing = imp) + pca <- psych::principal( + ndi_data_pca, + nfactors = 1, + n.obs = nrow(ndi_data_pca), + covar = FALSE, + scores = TRUE, + missing = imp + ) # Warning for missingness of census characteristics missingYN <- ndi_data_pca %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) if (quiet == FALSE) { # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') } # Warning for proportion of variance explained by PC1 if (pca$Vaccounted[2] < 0.50) { - message("Warning: The proportion of variance explained by PC1 is less than 0.50.") + message('Warning: The proportion of variance explained by PC1 is less than 0.50.') } } # NDI quartiles NDIQuart <- data.frame(PC1 = pca$scores) %>% - dplyr::mutate(NDI = PC1 / pca$value[1]^2, - NDIQuart = cut(NDI, - breaks = stats::quantile(NDI, - probs = c(0, 0.25, 0.50, 0.75, 1), - na.rm = TRUE), - labels = c("1-Least deprivation", "2-BelowAvg deprivation", - "3-AboveAvg deprivation", "4-Most deprivation"), - include.lowest = TRUE), - NDIQuart = factor(replace(as.character(NDIQuart), - is.na(NDIQuart), - "9-NDI not avail"), - c(levels(NDIQuart), "9-NDI not avail"))) %>% + dplyr::mutate( + NDI = PC1 / pca$value[1] ^ 2, + NDIQuart = cut( + NDI, + breaks = stats::quantile(NDI, probs = c(0, 0.25, 0.50, 0.75, 1), na.rm = TRUE), + labels = c( + '1-Least deprivation', + '2-BelowAvg deprivation', + '3-AboveAvg deprivation', + '4-Most deprivation' + ), + include.lowest = TRUE + ), + NDIQuart = factor( + replace(as.character(NDIQuart), is.na(NDIQuart), '9-NDI not avail'), + c(levels(NDIQuart), '9-NDI not avail') + ) + ) %>% dplyr::select(NDI, NDIQuart) if (is.null(df)) { # Format output if (round_output == TRUE) { ndi <- cbind(ndi_data, NDIQuart) %>% - dplyr::mutate(OCC = round(OCC, digits = 1), - CWD = round(CWD, digits = 1), - POV = round(POV, digits = 1), - FHH = round(FHH, digits = 1), - PUB = round(PUB, digits = 1), - U30 = round(U30, digits = 1), - EDU = round(EDU, digits = 1), - EMP = round(EMP, digits = 1), - NDI = round(NDI, digits = 4)) + dplyr::mutate( + OCC = round(OCC, digits = 1), + CWD = round(CWD, digits = 1), + POV = round(POV, digits = 1), + FHH = round(FHH, digits = 1), + PUB = round(PUB, digits = 1), + U30 = round(U30, digits = 1), + EDU = round(EDU, digits = 1), + EMP = round(EMP, digits = 1), + NDI = round(NDI, digits = 4) + ) } else { ndi <- cbind(ndi_data, NDIQuart) } - if (geo == "tract") { + if (geo == 'tract') { ndi <- ndi %>% - dplyr::select(GEOID, - state, - county, - tract, - NDI, NDIQuart, - OCC, CWD, POV, FHH, PUB, U30, EDU, EMP) + dplyr::select( + GEOID, + state, + county, + tract, + NDI, + NDIQuart, + OCC, + CWD, + POV, + FHH, + PUB, + U30, + EDU, + EMP + ) } else { ndi <- ndi %>% - dplyr::select(GEOID, - state, - county, - NDI, NDIQuart, - OCC, CWD, POV, FHH, PUB, U30, EDU, EMP) + dplyr::select( + GEOID, + state, + county, + NDI, + NDIQuart, + OCC, + CWD, + POV, + FHH, + PUB, + U30, + EDU, + EMP + ) } ndi <- ndi %>% - dplyr::mutate(state = stringr::str_trim(state), - county = stringr::str_trim(county)) %>% + dplyr::mutate( + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() } else { - ndi <- cbind(df[ , 1], NDIQuart, df[ , 2:ncol(df)]) - ndi <- dplyr::as_tibble(ndi[order(ndi[ , 1]), ]) + ndi <- cbind(df[, 1], NDIQuart, df[, 2:ncol(df)]) + ndi <- dplyr::as_tibble(ndi[order(ndi[, 1]),]) } - out <- list(ndi = ndi, - pca = pca, - missing = missingYN) + out <- list(ndi = ndi, pca = pca, missing = missingYN) return(out) } diff --git a/R/powell_wiley.R b/R/powell_wiley.R index d765dc5..07acd46 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -1,17 +1,17 @@ -#' Neighborhood Deprivation Index based on Andrews _et al._ (2020) and Slotman _et al._ (2022) -#' +#' Neighborhood Deprivation Index based on Andrews et al. (2020) and Slotman et al. (2022) +#' #' Compute the aspatial Neighborhood Deprivation Index (Powell-Wiley). #' -#' @param geo Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}. +#' @param geo Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available. -#' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}} using median values of variables. If FALSE (the default), will not impute. +#' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}} using median values of variables. If FALSE (the default), will not impute. #' @param quiet Logical. If TRUE, will display messages about potential missing census information, standardized Cronbach's alpha, and proportion of variance explained by principal component analysis. The default is FALSE. #' @param round_output Logical. If TRUE, will round the output of raw census and NDI values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002}. -#' +#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: #' \itemize{ #' \item **MedHHInc (B19013)**: median household income (dollars) @@ -28,25 +28,25 @@ #' \item **PctFamBelowPov (S1702)**: percent of families with incomes below the poverty level #' \item **PctUnempl (S2301)**: percent unemployed #' } -#' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews _et al._ (2020) \doi{10.1080/17445647.2020.1750066} and Slotman _et al._ (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. -#' -#' The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. -#' +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +#' +#' The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. +#' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). -#' +#' #' Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Promax (oblique) rotation and a minimum Eigenvalue of 1, omitting variables with absolute loading score < 0.4. The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), an estimate of the total population in the second feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). -#' +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, NDI continuous, NDI quintiles, and raw census values of specified census geographies.} #' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the NDI values.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute NDI.} #' \item{\code{cronbach}}{An object of class 'character' or 'numeric' for the results of the Cronbach's alpha calculation. If only one factor is computed, a message is returned. If more than one factor is computed, Cronbach's alpha is calculated and should check that it is >0.7 for respectable internal consistency between factors.} #' } -#' -#' @import dplyr +#' +#' @import dplyr #' @importFrom MASS ginv #' @importFrom psych alpha principal #' @importFrom stats complete.cases cor cov2cor loadings median promax quantile sd @@ -54,310 +54,417 @@ #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic referent selection (i.e., \code{state} and \code{county}). #' #' @examples -#' +#' #' powell_wiley(df = DCtracts2020[ , -c(3:10)]) -#' +#' #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Tract-level metric (2020) -#' powell_wiley(geo = "tract", state = "GA", year = 2020) +#' powell_wiley(geo = 'tract', state = 'GA', year = 2020) #' #' # Impute NDI for tracts (2020) with missing census information (median values) -#' powell_wiley(state = "tract", "GA", year = 2020, imp = TRUE) -#' +#' powell_wiley(state = 'tract', 'GA', year = 2020, imp = TRUE) +#' #' # County-level metric (2020) -#' powell_wiley(geo = "county", state = "GA", year = 2020) -#' +#' powell_wiley(geo = 'county', state = 'GA', year = 2020) +#' #' } -#' -powell_wiley <- function(geo = "tract", year = 2020, imp = FALSE, quiet = FALSE, round_output = FALSE, df = NULL, ...) { - - # Check arguments - if (!is.null(df) & !inherits(df, c("tbl_df", "tbl", "data.frame"))) { stop("'df' must be class 'data.frame' or 'tbl'") } +#' +powell_wiley <- function(geo = 'tract', + year = 2020, + imp = FALSE, + quiet = FALSE, + round_output = FALSE, + df = NULL, + ...) { - if (is.null(df)) { - - # Check additional arguments - match.arg(geo, choices = c("county", "tract")) - stopifnot(is.numeric(year), year >= 2010) # all variables available 2010 onward - - # Select census variables - vars <- c(MedHHInc = "B19013_001", - PctRecvIDR_num = "B19054_002", PctRecvIDR_den = "B19054_001", - PctPubAsst_num = "B19058_002", PctPubAsst_den = "B19058_001", - MedHomeVal = "B25077_001", - PctMgmtBusScArti_num = "C24060_002", PctMgmtBusScArti_den = "C24060_001", - PctFemHeadKids_num1 = "B11005_007", PctFemHeadKids_num2 = "B11005_010", - PctFemHeadKids_den = "B11005_001", - PctOwnerOcc = "DP04_0046P", - PctNoPhone = "DP04_0075P", - PctNComPlmb = "DP04_0073P", - PctEduc_num25upHS = "S1501_C01_009", - PctEduc_num25upSC = "S1501_C01_010", - PctEduc_num25upAD = "S1501_C01_011", - PctEduc_num25upBD = "S1501_C01_012", - PctEduc_num25upGD = "S1501_C01_013", - PctEduc_den25up = "S1501_C01_006", - PctFamBelowPov = "S1702_C02_001", - PctUnempl = "S2301_C04_001", - TotalPopulation = "B01001_001") - - # Updated census variable definition(s) - if (year < 2015){ vars <- c(vars[-13], PctNoPhone = "DP04_0074P") } - - # Acquire NDI variables - ndi_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo, - year = year, - output = "wide", - variables = vars, ...))) + # Check arguments + if (!is.null(df) & + !inherits(df, c('tbl_df', 'tbl', 'data.frame'))) { + stop("'df' must be class 'data.frame' or 'tbl'") + } - if (geo == "tract") { + if (is.null(df)) { + # Check additional arguments + match.arg(geo, choices = c('county', 'tract')) + stopifnot(is.numeric(year), year >= 2010) # all variables available 2010 onward + + # Select census variables + vars <- c( + MedHHInc = 'B19013_001', + PctRecvIDR_num = 'B19054_002', + PctRecvIDR_den = 'B19054_001', + PctPubAsst_num = 'B19058_002', + PctPubAsst_den = 'B19058_001', + MedHomeVal = 'B25077_001', + PctMgmtBusScArti_num = 'C24060_002', + PctMgmtBusScArti_den = 'C24060_001', + PctFemHeadKids_num1 = 'B11005_007', + PctFemHeadKids_num2 = 'B11005_010', + PctFemHeadKids_den = 'B11005_001', + PctOwnerOcc = 'DP04_0046P', + PctNoPhone = 'DP04_0075P', + PctNComPlmb = 'DP04_0073P', + PctEduc_num25upHS = 'S1501_C01_009', + PctEduc_num25upSC = 'S1501_C01_010', + PctEduc_num25upAD = 'S1501_C01_011', + PctEduc_num25upBD = 'S1501_C01_012', + PctEduc_num25upGD = 'S1501_C01_013', + PctEduc_den25up = 'S1501_C01_006', + PctFamBelowPov = 'S1702_C02_001', + PctUnempl = 'S2301_C04_001', + TotalPopulation = 'B01001_001' + ) + + # Updated census variable definition(s) + if (year < 2015) { + vars <- c(vars[-13], PctNoPhone = 'DP04_0074P') + } + + # Acquire NDI variables + ndi_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo, + year = year, + output = 'wide', + variables = vars, + ... + ) + )) + + + if (geo == 'tract') { + ndi_data <- ndi_data %>% + tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } else { + ndi_data <- ndi_data %>% + tidyr::separate(NAME, into = c('county', 'state'), sep = ',') + } + ndi_data <- ndi_data %>% - tidyr::separate(NAME, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]","", tract)) + dplyr::mutate( + MedHHInc = MedHHIncE, + PctRecvIDR = PctRecvIDR_numE / PctRecvIDR_denE * 100, + PctPubAsst = PctPubAsst_numE / PctPubAsst_denE * 100, + MedHomeVal = MedHomeValE, + PctMgmtBusScArti = PctMgmtBusScArti_numE / PctMgmtBusScArti_denE * 100, + PctFemHeadKids = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / + PctFemHeadKids_denE * 100, + PctOwnerOcc = PctOwnerOccE, + PctNoPhone = PctNoPhoneE, + PctNComPlmb = PctNComPlmbE, + PctEducHSPlus = ( + PctEduc_num25upHSE + PctEduc_num25upSCE + PctEduc_num25upADE + PctEduc_num25upBDE + + PctEduc_num25upGDE + ) / PctEduc_den25upE * 100, + PctEducBchPlus = (PctEduc_num25upBDE + PctEduc_num25upGDE) / PctEduc_den25upE * 100, + PctFamBelowPov = PctFamBelowPovE, + PctUnempl = PctUnemplE, + TotalPop = TotalPopulationE + ) %>% + # Log transform median household income and median home value + # Reverse code percentages so that higher values represent more deprivation + # Round percentages to 1 decimal place + dplyr::mutate( + logMedHHInc = log(MedHHInc), + logMedHomeVal = log(MedHomeVal), + PctNoIDR = 100 - PctRecvIDR, + PctWorkClass = 100 - PctMgmtBusScArti, + PctNotOwnerOcc = 100 - PctOwnerOcc, + PctEducLTHS = 100 - PctEducHSPlus, + PctEducLTBch = 100 - PctEducBchPlus + ) %>% + # Z-standardize the percentages + dplyr::mutate( + PctNoIDRZ = scale(PctNoIDR), + PctPubAsstZ = scale(PctPubAsst), + PctWorkClassZ = scale(PctWorkClass), + PctFemHeadKidsZ = scale(PctFemHeadKids), + PctNotOwnerOccZ = scale(PctNotOwnerOcc), + PctNoPhoneZ = scale(PctNoPhone), + PctNComPlmbZ = scale(PctNComPlmb), + PctEducLTHSZ = scale(PctEducLTHS), + PctEducLTBchZ = scale(PctEducLTBch), + PctFamBelowPovZ = scale(PctFamBelowPov), + PctUnemplZ = scale(PctUnempl) + ) + + # generate NDI + ndi_data_pca <- ndi_data %>% + dplyr::select( + logMedHHInc, + PctNoIDRZ, + PctPubAsstZ, + logMedHomeVal, + PctWorkClassZ, + PctFemHeadKidsZ, + PctNotOwnerOccZ, + PctNoPhoneZ, + PctNComPlmbZ, + PctEducLTHSZ, + PctEducLTBchZ, + PctFamBelowPovZ, + PctUnemplZ + ) } else { - ndi_data <- ndi_data %>% tidyr::separate(NAME, into = c("county", "state"), sep = ",") + # If inputing pre-formatted data: + ## rename first and second features (columns) with name to match above + colnames(df)[1:2] <- c('GEOID', 'TotalPop') + ndi_data <- dplyr::as_tibble(df) + ## omit the first two features (columns) typically an ID (e.g., GEOID or FIPS) and TotalPop + ndi_data_pca <- ndi_data[,-c(1:2)] } + # Run a factor analysis using Promax (oblique) rotation and a minimum Eigenvalue of 1 + nfa <- eigen(stats::cor(ndi_data_pca, use = 'complete.obs')) + nfa <- sum(nfa$values > 1) # count of factors with a minimum Eigenvalue of 1 + fit <- psych::principal(ndi_data_pca, nfactors = nfa, rotate = 'none') + fit_rotate <- stats::promax(stats::loadings(fit), m = 3) - ndi_data <- ndi_data %>% - dplyr::mutate(MedHHInc = MedHHIncE, - PctRecvIDR = PctRecvIDR_numE / PctRecvIDR_denE * 100, - PctPubAsst = PctPubAsst_numE / PctPubAsst_denE * 100, - MedHomeVal = MedHomeValE, - PctMgmtBusScArti = PctMgmtBusScArti_numE / PctMgmtBusScArti_denE * 100, - PctFemHeadKids = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE * 100, - PctOwnerOcc = PctOwnerOccE, - PctNoPhone = PctNoPhoneE, - PctNComPlmb = PctNComPlmbE, - PctEducHSPlus = (PctEduc_num25upHSE + PctEduc_num25upSCE + PctEduc_num25upADE + - PctEduc_num25upBDE + PctEduc_num25upGDE) / PctEduc_den25upE * 100, - PctEducBchPlus = (PctEduc_num25upBDE + PctEduc_num25upGDE) / PctEduc_den25upE * 100, - PctFamBelowPov = PctFamBelowPovE, - PctUnempl = PctUnemplE, - TotalPop = TotalPopulationE) %>% - # Log transform median household income and median home value - # Reverse code percentages so that higher values represent more deprivation - # Round percentages to 1 decimal place - dplyr::mutate(logMedHHInc = log(MedHHInc), - logMedHomeVal = log(MedHomeVal), - PctNoIDR = 100 - PctRecvIDR, - PctWorkClass = 100 - PctMgmtBusScArti, - PctNotOwnerOcc = 100 - PctOwnerOcc, - PctEducLTHS = 100 - PctEducHSPlus, - PctEducLTBch = 100 - PctEducBchPlus) %>% - # Z-standardize the percentages - dplyr::mutate(PctNoIDRZ = scale(PctNoIDR), - PctPubAsstZ = scale(PctPubAsst), - PctWorkClassZ = scale(PctWorkClass), - PctFemHeadKidsZ = scale(PctFemHeadKids), - PctNotOwnerOccZ = scale(PctNotOwnerOcc), - PctNoPhoneZ = scale(PctNoPhone), - PctNComPlmbZ = scale(PctNComPlmb), - PctEducLTHSZ = scale(PctEducLTHS), - PctEducLTBchZ = scale(PctEducLTBch), - PctFamBelowPovZ = scale(PctFamBelowPov), - PctUnemplZ = scale(PctUnempl)) + # Calculate the factors using only variables with an absolute loading score > 0.4 for the first factor + ## If number of factors > 2, use structure matrix, else pattern matrix + if (nfa > 1) { + P_mat <- matrix(stats::loadings(fit_rotate), nrow = 13, ncol = nfa) + + # Structure matrix (S_mat) from under-the-hood of the psych::principal() function + rot.mat <- fit_rotate$rotmat # rotation matrix + ui <- solve(rot.mat) + Phi <- cov2cor(ui %*% t(ui)) # interfactor correlation + S_mat <- P_mat %*% Phi # pattern matrix multiplied by interfactor correlation + + } else { + P_mat <- matrix(fit_rotate, nrow = 13, ncol = 1) + Phi <- 1 + S_mat <- P_mat + } - # generate NDI - ndi_data_pca <- ndi_data %>% - dplyr::select(logMedHHInc, PctNoIDRZ, PctPubAsstZ, logMedHomeVal, PctWorkClassZ, - PctFemHeadKidsZ, PctNotOwnerOccZ, PctNoPhoneZ, PctNComPlmbZ, PctEducLTHSZ, - PctEducLTBchZ, PctFamBelowPovZ, PctUnemplZ) - } else { - # If inputing pre-formatted data: - colnames(df)[1:2] <- c("GEOID", "TotalPop") # rename first and second features (columns) with name to match above - ndi_data <- dplyr::as_tibble(df) - ndi_data_pca <- ndi_data[ , -c(1:2)] # omits the first two features (columns) typically an ID (e.g., GEOID or FIPS) and TotalPop - } - # Run a factor analysis using Promax (oblique) rotation and a minimum Eigenvalue of 1 - nfa <- eigen(stats::cor(ndi_data_pca, use = "complete.obs")) - nfa <- sum(nfa$values > 1) # count of factors with a minimum Eigenvalue of 1 - fit <- psych::principal(ndi_data_pca, - nfactors = nfa, - rotate = "none") - fit_rotate <- stats::promax(stats::loadings(fit), m = 3) - - # Calculate the factors using only variables with an absolute loading score > 0.4 for the first factor - ## If number of factors > 2, use structure matrix, else pattern matrix - if (nfa > 1) { - P_mat <- matrix(stats::loadings(fit_rotate), nrow = 13, ncol = nfa) + ## Variable correlation matrix (R_mat) + R_mat <- as.matrix(cor(ndi_data_pca[complete.cases(ndi_data_pca),])) - # Structure matrix (S_mat) from under-the-hood of the psych::principal() function - rot.mat <- fit_rotate$rotmat # rotation matrix - ui <- solve(rot.mat) - Phi <- cov2cor(ui %*% t(ui)) # interfactor correlation - S_mat <- P_mat %*% Phi # pattern matrix multiplied by interfactor correlation + ## standardized score coefficients or weight matrix (B_mat) + B_mat <- solve(R_mat, S_mat) - } else { - P_mat <- matrix(fit_rotate, nrow = 13, ncol = 1) - Phi <- 1 - S_mat <- P_mat - } - - ## Variable correlation matrix (R_mat) - R_mat <- as.matrix(cor(ndi_data_pca[complete.cases(ndi_data_pca), ])) - - ## standardized score coefficients or weight matrix (B_mat) - B_mat <- solve(R_mat, S_mat) - - # Additional PCA Information - fit_rotate$rotation <- "promax" - fit_rotate$Phi <- Phi - fit_rotate$Structure <- S_mat - - if (nfa > 1) { - fit_rotate$communality <- rowSums(P_mat^2) - } else { - fit_rotate$communality <- P_mat^2 - } - fit_rotate$uniqueness <- diag(R_mat) - fit_rotate$communality - - if (nfa > 1) { - vx <- colSums(P_mat^2) - } else { - vx <- sum(P_mat^2) - } - - vtotal <- sum(fit_rotate$communality + fit_rotate$uniqueness) - vx <- diag(Phi %*% t(P_mat) %*% P_mat) - names(vx) <- colnames(loadings) - varex <- rbind(`SS loadings` = vx) - varex <- rbind(varex, `Proportion Var` = vx/vtotal) - if (nfa > 1) { - varex <- rbind(varex, `Cumulative Var` = cumsum(vx/vtotal)) - varex <- rbind(varex, `Proportion Explained` = vx/sum(vx)) - varex <- rbind(varex, `Cumulative Proportion` = cumsum(vx/sum(vx))) - } - fit_rotate$Vaccounted <- varex - - if (imp == TRUE) { - ndi_data_scrs <- as.matrix(ndi_data_pca) - miss <- which(is.na(ndi_data_scrs), arr.ind = TRUE) - item.med <- apply(ndi_data_scrs, 2, stats::median, na.rm = TRUE) - ndi_data_scrs[miss] <- item.med[miss[, 2]] - } else { - ndi_data_scrs <- ndi_data_pca - } - - scrs <- as.matrix(scale(ndi_data_scrs[complete.cases(ndi_data_scrs), abs(S_mat[ , 1]) > 0.4 ])) %*% B_mat[abs(S_mat[ , 1]) > 0.4, 1] - - ndi_data_NA <- ndi_data[complete.cases(ndi_data_scrs), ] - ndi_data_NA$NDI <- c(scrs) - - ndi_data_NDI <- dplyr::left_join(ndi_data[ , c("GEOID", "TotalPop")], ndi_data_NA[ , c("GEOID", "NDI")], by = "GEOID") - - # Calculate Cronbach's alpha correlation coefficient among the factors and verify values are above 0.7. - if (nfa == 1) { - crnbch <- "Only one factor with minimum Eigenvalue of 1. Cannot calculate Cronbach's alpha." - } else { - cronbach <- suppressMessages(psych::alpha(ndi_data_pca[ , abs(S_mat[ , 1]) > 0.4 ], check.keys = TRUE, na.rm = TRUE, warnings = FALSE)) - crnbch <- cronbach$total$std.alpha - } - - # Warning for missingness of census characteristics - missingYN <- ndi_data_pca %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% - dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) - - if (quiet == FALSE) { + # Additional PCA Information + fit_rotate$rotation <- 'promax' + fit_rotate$Phi <- Phi + fit_rotate$Structure <- S_mat - # Warning for missing census data - if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + if (nfa > 1) { + fit_rotate$communality <- rowSums(P_mat ^ 2) + } else { + fit_rotate$communality <- P_mat ^ 2 } + fit_rotate$uniqueness <- diag(R_mat) - fit_rotate$communality - # Warning for Cronbach's alpha < 0.7 - if (cronbach$total$std.alpha < 0.7) { - message("Warning: Cronbach's alpha correlation coefficient among the factors is less than 0.7.") + if (nfa > 1) { + vx <- colSums(P_mat ^ 2) + } else { + vx <- sum(P_mat ^ 2) } - # Warning for proportion of variance explained by FA1 - if (fit_rotate$Vaccounted[2] < 0.50) { - message("Warning: The proportion of variance explained by PC1 is less than 0.50.") + vtotal <- sum(fit_rotate$communality + fit_rotate$uniqueness) + vx <- diag(Phi %*% t(P_mat) %*% P_mat) + names(vx) <- colnames(loadings) + varex <- rbind(`SS loadings` = vx) + varex <- rbind(varex, `Proportion Var` = vx / vtotal) + if (nfa > 1) { + varex <- rbind(varex, `Cumulative Var` = cumsum(vx / vtotal)) + varex <- rbind(varex, `Proportion Explained` = vx / sum(vx)) + varex <- rbind(varex, `Cumulative Proportion` = cumsum(vx / sum(vx))) } - } - - # NDI quintiles weighted by tract population - NDIQuint <- ndi_data_NDI %>% - dplyr::mutate(NDIQuint = cut(NDI*log(TotalPop), - breaks = stats::quantile(NDI*log(TotalPop), - probs = c(0, 0.2, 0.4, 0.6, 0.8, 1), - na.rm = TRUE), - labels = c("1-Least deprivation", "2-BelowAvg deprivation", - "3-Average deprivation","4-AboveAvg deprivation", - "5-Most deprivation"), - include.lowest = TRUE), - NDIQuint = factor(replace(as.character(NDIQuint), - is.na(NDIQuint) | is.infinite(NDIQuint), - "9-NDI not avail"), - c(levels(NDIQuint), "9-NDI not avail"))) %>% - dplyr::select(NDI, NDIQuint) - - if (is.null(df)) { - # Format output - if (round_output == TRUE) { - ndi <- cbind(ndi_data, NDIQuint) %>% - dplyr::mutate(PctRecvIDR = round(PctRecvIDR, digits = 1), - PctPubAsst = round(PctPubAsst, digits = 1), - PctMgmtBusScArti = round(PctMgmtBusScArti, digits = 1), - PctFemHeadKids = round(PctFemHeadKids, digits = 1), - PctOwnerOcc = round(PctOwnerOcc, digits = 1), - PctNoPhone = round(PctNoPhone, digits = 1), - PctNComPlmb = round(PctNComPlmb, digits = 1), - PctEducHSPlus = round(PctEducHSPlus, digits = 1), - PctEducBchPlus = round(PctEducBchPlus, digits = 1), - PctFamBelowPov = round(PctFamBelowPov, digits = 1), - PctUnempl = round(PctUnempl, digits = 1)) + fit_rotate$Vaccounted <- varex + + if (imp == TRUE) { + ndi_data_scrs <- as.matrix(ndi_data_pca) + miss <- which(is.na(ndi_data_scrs), arr.ind = TRUE) + item.med <- apply(ndi_data_scrs, 2, stats::median, na.rm = TRUE) + ndi_data_scrs[miss] <- item.med[miss[, 2]] } else { - ndi <- cbind(ndi_data, NDIQuint) + ndi_data_scrs <- ndi_data_pca } - if (geo == "tract") { - ndi <- ndi %>% - dplyr::select(GEOID, - state, - county, - tract, - NDI, NDIQuint, - MedHHInc, PctRecvIDR, PctPubAsst, MedHomeVal, PctMgmtBusScArti, - PctFemHeadKids,PctOwnerOcc, PctNoPhone, PctNComPlmb, PctEducHSPlus, - PctEducBchPlus, PctFamBelowPov, PctUnempl, TotalPop) + scrs <- as.matrix( + scale(ndi_data_scrs[complete.cases(ndi_data_scrs), abs(S_mat[, 1]) > 0.4]) + ) %*% B_mat[abs(S_mat[, 1]) > 0.4, 1] + + ndi_data_NA <- ndi_data[complete.cases(ndi_data_scrs),] + ndi_data_NA$NDI <- c(scrs) + + ndi_data_NDI <- ndi_data[, c('GEOID', 'TotalPop')] %>% + dplyr::left_join(ndi_data_NA[, c('GEOID', 'NDI')], by = dplyr::join_by(GEOID)) + + # Calculate Cronbach's alpha correlation coefficient among the factors and verify values are above 0.7. + if (nfa == 1) { + crnbch <- + "Only one factor with minimum Eigenvalue of 1. Cannot calculate Cronbach's alpha." } else { + cronbach <- suppressMessages(psych::alpha( + ndi_data_pca[, abs(S_mat[, 1]) > 0.4], + check.keys = TRUE, + na.rm = TRUE, + warnings = FALSE + )) + crnbch <- cronbach$total$std.alpha + } + + # Warning for missingness of census characteristics + missingYN <- ndi_data_pca %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + + # Warning for Cronbach's alpha < 0.7 + if (cronbach$total$std.alpha < 0.7) { + message( + "Warning: Cronbach's alpha correlation coefficient among the factors is less than 0.7." + ) + } + + # Warning for proportion of variance explained by FA1 + if (fit_rotate$Vaccounted[2] < 0.50) { + message('Warning: The proportion of variance explained by PC1 is less than 0.50.') + } + } + + # NDI quintiles weighted by tract population + NDIQuint <- ndi_data_NDI %>% + dplyr::mutate( + NDIQuint = cut( + NDI * log(TotalPop), + breaks = stats::quantile( + NDI * log(TotalPop), + probs = c(0, 0.2, 0.4, 0.6, 0.8, 1), + na.rm = TRUE + ), + labels = c( + '1-Least deprivation', + '2-BelowAvg deprivation', + '3-Average deprivation', + '4-AboveAvg deprivation', + '5-Most deprivation' + ), + include.lowest = TRUE + ), + NDIQuint = factor( + replace( + as.character(NDIQuint), + is.na(NDIQuint) | + is.infinite(NDIQuint), + '9-NDI not avail' + ), + c(levels(NDIQuint), '9-NDI not avail') + ) + ) %>% + dplyr::select(NDI, NDIQuint) + + if (is.null(df)) { + # Format output + if (round_output == TRUE) { + ndi <- cbind(ndi_data, NDIQuint) %>% + dplyr::mutate( + PctRecvIDR = round(PctRecvIDR, digits = 1), + PctPubAsst = round(PctPubAsst, digits = 1), + PctMgmtBusScArti = round(PctMgmtBusScArti, digits = 1), + PctFemHeadKids = round(PctFemHeadKids, digits = 1), + PctOwnerOcc = round(PctOwnerOcc, digits = 1), + PctNoPhone = round(PctNoPhone, digits = 1), + PctNComPlmb = round(PctNComPlmb, digits = 1), + PctEducHSPlus = round(PctEducHSPlus, digits = 1), + PctEducBchPlus = round(PctEducBchPlus, digits = 1), + PctFamBelowPov = round(PctFamBelowPov, digits = 1), + PctUnempl = round(PctUnempl, digits = 1) + ) + } else { + ndi <- cbind(ndi_data, NDIQuint) + } + + if (geo == 'tract') { + ndi <- ndi %>% + dplyr::select( + GEOID, + state, + county, + tract, + NDI, + NDIQuint, + MedHHInc, + PctRecvIDR, + PctPubAsst, + MedHomeVal, + PctMgmtBusScArti, + PctFemHeadKids, + PctOwnerOcc, + PctNoPhone, + PctNComPlmb, + PctEducHSPlus, + PctEducBchPlus, + PctFamBelowPov, + PctUnempl, + TotalPop + ) + } else { + ndi <- ndi %>% + dplyr::select( + GEOID, + state, + county, + NDI, + NDIQuint, + MedHHInc, + PctRecvIDR, + PctPubAsst, + MedHomeVal, + PctMgmtBusScArti, + PctFemHeadKids, + PctOwnerOcc, + PctNoPhone, + PctNComPlmb, + PctEducHSPlus, + PctEducBchPlus, + PctFamBelowPov, + PctUnempl, + TotalPop + ) + } + ndi <- ndi %>% - dplyr::select(GEOID, - state, - county, - NDI, NDIQuint, - MedHHInc, PctRecvIDR, PctPubAsst, MedHomeVal, PctMgmtBusScArti, - PctFemHeadKids,PctOwnerOcc, PctNoPhone, PctNComPlmb, PctEducHSPlus, - PctEducBchPlus, PctFamBelowPov, PctUnempl, TotalPop) + dplyr::mutate( + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + } else { + ndi <- cbind(df[, 1], NDIQuint, df[, 2:ncol(df)]) + ndi <- dplyr::as_tibble(ndi[order(ndi[, 1]),]) } - ndi <- ndi %>% - dplyr::mutate(state = stringr::str_trim(state), - county = stringr::str_trim(county)) %>% - dplyr::arrange(GEOID) %>% - dplyr::as_tibble() + out <- list( + ndi = ndi, + pca = fit_rotate, + missing = missingYN, + cronbach = crnbch + ) - } else { - ndi <- cbind(df[ , 1], NDIQuint, df[ , 2:ncol(df)]) - ndi <- dplyr::as_tibble(ndi[order(ndi[ , 1]), ]) + return(out) } - - out <- list(ndi = ndi, - pca = fit_rotate, - missing = missingYN, - cronbach = crnbch) - - return(out) -} diff --git a/R/sudano.R b/R/sudano.R index cb1afca..5155ccc 100644 --- a/R/sudano.R +++ b/R/sudano.R @@ -1,55 +1,55 @@ -#' Location Quotient (LQ) based on Merton (1938) and Sudano _et al._ (2013) -#' +#' Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) +#' #' Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. #' -#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. -#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. #' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano _et al._ (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -#' +#' @details This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } -#' +#' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -#' +#' #' LQ is some measure of relative racial homogeneity of each smaller geography within a larger geography. LQ can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an LQ of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. -#' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. -#' +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. +#' #' @return An object of class 'list'. This is a named list with the following components: -#' +#' #' \describe{ #' \item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and LQ at specified smaller census geographies.} #' \item{\code{lq_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LQ.} #' } -#' +#' #' @import dplyr #' @importFrom sf st_drop_geometry #' @importFrom stats complete.cases @@ -57,111 +57,162 @@ #' @importFrom tidyr pivot_longer separate #' @importFrom utils stack #' @export -#' +#' #' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). #' #' @examples #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. -#' +#' #' # Isolation of non-Hispanic Black populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' sudano(geo_large = "state", geo_small = "county", state = "GA", -#' year = 2020, subgroup = "NHoLB") -#' +#' sudano( +#' geo_large = 'state', +#' geo_small = 'county', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB' +#' ) +#' #' } -#' -sudano <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, omit_NAs = TRUE, quiet = FALSE, ...) { +#' +sudano <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + omit_NAs = TRUE, + quiet = FALSE, + ...) { # Check arguments - match.arg(geo_large, choices = c("state", "county", "tract")) - match.arg(geo_small, choices = c("county", "tract", "block group")) + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) # Select census variables - vars <- c(TotalPop = "B03002_001", - NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021") - - selected_vars <- vars[c("TotalPop", subgroup)] + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, "E", sep = "") + in_subgroup <- paste(subgroup, 'E', sep = '') # Acquire LQ variables and sf geometries - lq_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, - keep_geo_vars = TRUE, ...))) + lq_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + # Format output - if (geo_small == "county") { - lq_data <- sf::st_drop_geometry(lq_data) %>% - tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") + if (geo_small == 'county') { + lq_data <- lq_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') + } + if (geo_small == 'tract') { + lq_data <- lq_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + lq_data <- lq_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) } - if (geo_small == "tract") { - lq_data <- sf::st_drop_geometry(lq_data) %>% - tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) - } - if (geo_small == "block group") { - lq_data <- sf::st_drop_geometry(lq_data) %>% - tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), - block.group = gsub("[^0-9\\.]", "", block.group)) - } # Grouping IDs for R computation - if (geo_large == "tract") { + if (geo_large == 'tract') { lq_data <- lq_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) } - if (geo_large == "county") { + if (geo_large == 'county') { lq_data <- lq_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) } - if (geo_large == "state") { + if (geo_large == 'state') { lq_data <- lq_data %>% - dplyr::mutate(oid = .$STATEFP, - state = stringr::str_trim(state)) + dplyr::mutate( + oid = .$STATEFP, + state = stringr::str_trim(state) + ) } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { lq_data <- lq_data %>% - dplyr::mutate(subgroup = .[ , in_subgroup]) + dplyr::mutate(subgroup = .[, in_subgroup]) } else { lq_data <- lq_data %>% - dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } # Compute LQ @@ -174,60 +225,63 @@ sudano <- function(geo_large = "county", geo_small = "tract", year = 2020, subgr LQtmp <- lq_data %>% split(., f = list(lq_data$oid)) %>% lapply(., FUN = lq_fun, omit_NAs = omit_NAs) %>% - do.call("rbind", .) + do.call('rbind', .) # Warning for missingness of census characteristics - missingYN <- lq_data[ , c("TotalPopE", in_subgroup)] + missingYN <- lq_data[, c('TotalPopE', in_subgroup)] names(missingYN) <- out_names missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) if (quiet == FALSE) { # Warning for missing census data if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + message('Warning: Missing census data') } } # Format output - lq <- merge(lq_data, LQtmp) + lq <- lq_data %>% + dplyr::left_join(LQtmp, by = dplyr::join_by(GEOID)) - if (geo_small == "state") { + if (geo_small == 'state') { lq <- lq %>% dplyr::select(GEOID, state, LQ) } - if (geo_small == "county") { + if (geo_small == 'county') { lq <- lq %>% dplyr::select(GEOID, state, county, LQ) } - if (geo_small == "tract") { + if (geo_small == 'tract') { lq <- lq %>% dplyr::select(GEOID, state, county, tract, LQ) } - if (geo_small == "block group") { + if (geo_small == 'block group') { lq <- lq %>% dplyr::select(GEOID, state, county, tract, block.group, LQ) } lq <- lq %>% unique(.) %>% - .[.$GEOID != "NANA", ] %>% + .[.$GEOID != 'NANA',] %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() lq_data <- lq_data %>% dplyr::arrange(GEOID) %>% - dplyr::as_tibble() + dplyr::as_tibble() - out <- list(lq = lq, - lq_data = lq_data, - missing = missingYN) + out <- list(lq = lq, lq_data = lq_data, missing = missingYN) return(out) } diff --git a/R/white.R b/R/white.R index b5a3505..04f4208 100644 --- a/R/white.R +++ b/R/white.R @@ -2,8 +2,8 @@ #' #' Compute the aspatial Correlation Ratio (White) of a selected racial/ethnic subgroup(s) and U.S. geographies. #' -#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}. -#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}. +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. #' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. #' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. @@ -14,33 +14,33 @@ #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{"NHoL"} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{"NHoLW"} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{"NHoLA"} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -#' \item **B03002_012**: Hispanic or Latino \code{"HoL"} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{"HoLW"} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{"HoLB"} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{"HoLA"} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} +#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} +#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} +#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from 0 to 1. +#' V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from -Inf to Inf. #' -#' Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. #' #' @return An object of class 'list'. This is a named list with the following components: #' @@ -66,102 +66,149 @@ #' #' # Isolation of non-Hispanic Black populations #' ## of census tracts within Georgia, U.S.A., counties (2020) -#' white(geo_large = "county", geo_small = "tract", state = "GA", -#' year = 2020, subgroup = "NHoLB") +#' white( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB' +#' ) #' #' } #' -white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgroup, omit_NAs = TRUE, quiet = FALSE, ...) { +white <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + omit_NAs = TRUE, + quiet = FALSE, + ...) { # Check arguments - match.arg(geo_large, choices = c("state", "county", "tract")) - match.arg(geo_small, choices = c("county", "tract", "block group")) + match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward - match.arg(subgroup, several.ok = TRUE, - choices = c("NHoL", "NHoLW", "NHoLB", "NHoLAIAN", "NHoLA", "NHoLNHOPI", - "NHoLSOR", "NHoLTOMR", "NHoLTRiSOR", "NHoLTReSOR", - "HoL", "HoLW", "HoLB", "HoLAIAN", "HoLA", "HoLNHOPI", - "HoLSOR", "HoLTOMR", "HoLTRiSOR", "HoLTReSOR")) + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) # Select census variables - vars <- c(TotalPop = "B03002_001", - NHoL = "B03002_002", - NHoLW = "B03002_003", - NHoLB = "B03002_004", - NHoLAIAN = "B03002_005", - NHoLA = "B03002_006", - NHoLNHOPI = "B03002_007", - NHoLSOR = "B03002_008", - NHoLTOMR = "B03002_009", - NHoLTRiSOR = "B03002_010", - NHoLTReSOR = "B03002_011", - HoL = "B03002_012", - HoLW = "B03002_013", - HoLB = "B03002_014", - HoLAIAN = "B03002_015", - HoLA = "B03002_016", - HoLNHOPI = "B03002_017", - HoLSOR = "B03002_018", - HoLTOMR = "B03002_019", - HoLTRiSOR = "B03002_020", - HoLTReSOR = "B03002_021") - - selected_vars <- vars[c("TotalPop", subgroup)] + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, "E", sep = "") + in_subgroup <- paste(subgroup, 'E', sep = '') # Acquire V variables and sf geometries - v_data <- suppressMessages(suppressWarnings(tidycensus::get_acs(geography = geo_small, - year = year, - output = "wide", - variables = selected_vars, - geometry = TRUE, - keep_geo_vars = TRUE, ...))) + v_data <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + # Format output - if (geo_small == "county") { - v_data <- sf::st_drop_geometry(v_data) %>% - tidyr::separate(NAME.y, into = c("county", "state"), sep = ",") + if (geo_small == 'county') { + v_data <- v_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } - if (geo_small == "tract") { - v_data <- sf::st_drop_geometry(v_data) %>% - tidyr::separate(NAME.y, into = c("tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract)) + if (geo_small == 'tract') { + v_data <- v_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } - if (geo_small == "block group") { - v_data <- sf::st_drop_geometry(v_data) %>% - tidyr::separate(NAME.y, into = c("block.group", "tract", "county", "state"), sep = ",") %>% - dplyr::mutate(tract = gsub("[^0-9\\.]", "", tract), - block.group = gsub("[^0-9\\.]", "", block.group)) + if (geo_small == 'block group') { + v_data <- v_data %>% + sf::st_drop_geometry() %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), block.group = gsub('[^0-9\\.]', '', block.group) + ) } # Grouping IDs for R computation - if (geo_large == "tract") { + if (geo_large == 'tract') { v_data <- v_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) } - if (geo_large == "county") { + if (geo_large == 'county') { v_data <- v_data %>% - dplyr::mutate(oid = paste(.$STATEFP, .$COUNTYFP, sep = ""), - state = stringr::str_trim(state), - county = stringr::str_trim(county)) + dplyr::mutate( + oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) } - if (geo_large == "state") { + if (geo_large == 'state') { v_data <- v_data %>% - dplyr::mutate(oid = .$STATEFP, - state = stringr::str_trim(state)) + dplyr::mutate(oid = .$STATEFP, state = stringr::str_trim(state)) } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { v_data <- v_data %>% - dplyr::mutate(subgroup = .[ , in_subgroup]) + dplyr::mutate(subgroup = .[, in_subgroup]) } else { v_data <- v_data %>% - dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } # Compute V or \mathit{Eta}^{2} @@ -176,53 +223,59 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro split(., f = list(v_data$oid)) %>% lapply(., FUN = v_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% - dplyr::mutate(V = values, - oid = ind) %>% + dplyr::mutate(V = values, oid = ind) %>% dplyr::select(V, oid) # Warning for missingness of census characteristics - missingYN <- v_data[ , c("TotalPopE", in_subgroup)] + missingYN <- v_data[, c('TotalPopE', in_subgroup)] names(missingYN) <- out_names missingYN <- missingYN %>% - tidyr::pivot_longer(cols = dplyr::everything(), - names_to = "variable", - values_to = "val") %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% dplyr::group_by(variable) %>% - dplyr::summarise(total = dplyr::n(), - n_missing = sum(is.na(val)), - percent_missing = paste0(round(mean(is.na(val)) * 100, 2), " %")) + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) if (quiet == FALSE) { # Warning for missing census data if (sum(missingYN$n_missing) > 0) { - message("Warning: Missing census data") + message('Warning: Missing census data') } } # Format output - if (geo_large == "state") { - v <- merge(v_data, Vtmp) %>% + if (geo_large == 'state') { + v <- v_data %>% + dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, state, V) %>% - .[.$GEOID != "NANA", ] + .[.$GEOID != 'NANA',] } - if (geo_large == "county") { - v <- merge(v_data, Vtmp) %>% + if (geo_large == 'county') { + v <- v_data %>% + dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, state, county, V) %>% - .[.$GEOID != "NANA", ] + .[.$GEOID != 'NANA',] } - if (geo_large == "tract") { - v <- merge(v_data, Vtmp) %>% + if (geo_large == 'tract') { + v <- v_data %>% + dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, tract, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, state, county, tract, V) %>% - .[.$GEOID != "NANA", ] + .[.$GEOID != 'NANA',] } v <- v %>% @@ -231,11 +284,9 @@ white <- function(geo_large = "county", geo_small = "tract", year = 2020, subgro v_data <- v_data %>% dplyr::arrange(GEOID) %>% - dplyr::as_tibble() + dplyr::as_tibble() - out <- list(v = v, - v_data = v_data, - missing = missingYN) + out <- list(v = v, v_data = v_data, missing = missingYN) return(out) } diff --git a/R/zzz.R b/R/zzz.R index e8d7e4a..1579f24 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -1,3 +1,3 @@ .onAttach <- function(...) { - packageStartupMessage(paste("\nWelcome to {ndi} version ", utils::packageDescription("ndi")$Version, "\n> help(\"ndi\") # for documentation\n> citation(\"ndi\") # for how to cite\n", sep = ""), appendLF = TRUE) + packageStartupMessage(paste('\nWelcome to {ndi} version ', utils::packageDescription('ndi')$Version, '\n> help(\'ndi\') # for documentation\n> citation(\'ndi\') # for how to cite\n', sep = ''), appendLF = TRUE) } diff --git a/README.md b/README.md index d220950..93f3f51 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -ndi: Neighborhood Deprivation Indices +ndi: Neighborhood Deprivation Indices =================================================== @@ -12,78 +12,93 @@ ndi: Neighborhood Deprivation Indices -**Date repository last updated**: January 23, 2024 +**Date repository last updated**: July 06, 2024 ### Overview -The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer _et al._ (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews _et al._ (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman _et al._ (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos _et al._ (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo _et al._ (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman _et al._ (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger _et al._ (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano _et al._ (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), and (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). +The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), and (10) aspatial racial/ethnic Delta based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation To install the release version from CRAN: - install.packages("ndi") + install.packages('ndi') To install the development version from GitHub: - devtools::install_github("idblr/ndi") + devtools::install_github('idblr/ndi') ### Available functions --++ - + + - + + - + + - + + - + + - + + - + - + + + + + + - + + - + + - + + - + + - + -
Function Description
anthopolosCompute the spatial Racial Isolation Index (RI) based on Anthopolos _et al._ (2011)Compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011)
atkinsonCompute the aspatial Atkinson Index (AI) based on Atkinson (1970)Compute the aspatial Atkinson Index (AI) based on Atkinson (1970)
bellCompute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954)Compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954)
bemanian_beyerCompute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017)Compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017)
bravoCompute the spatial Educational Isolation Index (EI) based on Bravo _et al._ (2021)Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021)
duncanCompute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955)Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955)
giniRetrieve the aspatial Gini Index based on Gini (1921)Retrieve the aspatial Gini Index based on Gini (1921)
hooverCompute the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089).
kriegerCompute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman _et al._ (2015) and Krieger _et al._ (2016)Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016)
messerCompute the aspatial Neighborhood Deprivation Index (NDI) based on Messer _et al._ (2006)Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006)
powell_wileyCompute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews _et al._ (2020) and Slotman _et al._ (2022) with variables chosen by Roux and Mair (2010)Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010)
sudanoCompute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano _et al._ (2013)Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013)
whiteCompute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986)Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986)
+
The repository also includes the code to create the project hexagon sticker. -

+

### Available sample dataset @@ -91,44 +106,49 @@ The repository also includes the code to create the project hexagon sticker. --++ - + + - + -
Data Description
DCtracts2020A sample data set containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the tidycensus package and formatted for the messer() and powell_wiley() functions input.A sample data set containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the tidycensus package and formatted for the messer() and powell_wiley() functions input.
+
### Author -* **Ian D. Buller** - *Social & Scientific Systems, Inc., a division of DLH Corporation, Silver Spring, Maryland (current)* - *Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland (original)* - [GitHub](https://github.com/idblr) - [ORCID](https://orcid.org/0000-0001-9477-8582) +* **Ian D. Buller** - *Social & Scientific Systems, Inc., a DLH Corporation Holding Company, Bethesda, Maryland (current)* - *Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland (original)* - [GitHub](https://github.com/idblr) - [ORCID](https://orcid.org/0000-0001-9477-8582) See also the list of [contributors](https://github.com/idblr/ndi/graphs/contributors) who participated in this package, including: * **Jacob Englert** - *Biostatistics and Bioinformatics Doctoral Program, Laney Graduate School, Emory University, Atlanta, Georgia* - [GitHub](https://github.com/jacobenglert) +* **Jessica Gleason** - *Epidemiology Branch, Division of Population Health Research, Eunice Kennedy Shriver National Institute of Child Health and Human Development, National Institutes of Health, Bethesda, Maryland* - [ORCID](https://orcid.org/0000-0001-9877-7931) + * **Chris Prener** - *Real World Evidence Center of Excellence, Pfizer, Inc.* - [GitHub](https://github.com/chris-prener) - [ORCID](https://orcid.org/0000-0002-4310-9888) -* **Jessica Gleason** - *Epidemiology Branch, Division of Population Health Research, Eunice Kennedy Shriver National Institute of Child Health and Human Development, National Institutes of Health, Bethesda, Maryland* - [ORCID](https://orcid.org/0000-0001-9877-7931) +* **Davis Vaughan** - *Posit* - [GitHub](https://github.com/DavisVaughan) - [ORCID](https://orcid.org/0000-0003-4777-038X) Thank you to those who suggested additional metrics, including: -* **Jessica Madrigal** - *Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland* - [ORCID](https://orcid.org/0000-0001-5303-5109) - * **David Berrigan** - *Behavioral Research Program, Division of Cancer Control and Population Sciences, National Cancer Institute, National Institutes of Health, Rockville, Maryland* - [ORCID](https://orcid.org/0000-0002-5333-179X) +* **Symielle Gaston** - *Social and Environmental Determinants of Health Equity Group, Epidemiology Branch, National Institute of Environmental Health Sciences, National Institutes of Health, Research Triangle Park, North Carolina* - [ORCID](https://orcid.org/0000-0001-9495-1592) + +* **Jessica Madrigal** - *Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland* - [ORCID](https://orcid.org/0000-0001-5303-5109) + ### Getting Started * Step 1: Obtain a unique access key from the U.S. Census Bureau. Follow [this link](http://api.census.gov/data/key_signup.html) to obtain one. -* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions (see an example below). +* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `hoover()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `hoover()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions (see an example below). ### Usage @@ -139,8 +159,8 @@ Thank you to those who suggested additional metrics, including: library(ndi) library(ggplot2) -library(sf) # dependency fo the "ndi" package -library(tidycensus) # a dependency for the "ndi" package +library(sf) # dependency fo the 'ndi' package +library(tidycensus) # a dependency for the 'ndi' package library(tigris) # -------- # @@ -149,14 +169,14 @@ library(tigris) ## Access Key for census data download ### Obtain one at http://api.census.gov/data/key_signup.html -tidycensus::census_api_key("...") # INSERT YOUR OWN KEY FROM U.S. CENSUS API +tidycensus::census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API # ---------------------- # # Calculate NDI (Messer) # # ---------------------- # # Compute the NDI (Messer) values (2016-2020 5-year ACS) for Washington, D.C. census tracts -messer2020DC <- messer(state = "DC", year = 2020) +messer2020DC <- messer(state = 'DC', year = 2020) # ------------------------------ # # Outputs from messer() function # @@ -175,11 +195,11 @@ messer2020DC$missing # Visualize the messer() function output # # -------------------------------------- # -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (Messer) values to the census tract geometry -DC2020messer <- dplyr::left_join(tract2020DC, messer2020DC$ndi, by = "GEOID") +DC2020messer <- dplyr::left_join(tract2020DC, messer2020DC$ndi, by = 'GEOID') # Visualize the NDI (Messer) values (2016-2020 5-year ACS) for Washington, D.C. census tracts @@ -187,32 +207,32 @@ DC2020messer <- dplyr::left_join(tract2020DC, messer2020DC$ndi, by = "GEOID") ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020messer, ggplot2::aes(fill = NDI), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index\nContinuous (Messer, non-imputed)", - subtitle = "Washington, D.C. tracts as the referent") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Neighborhood Deprivation Index\nContinuous (Messer, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent') ## Categorical Index (Quartiles) -### Rename "9-NDI not avail" level as NA for plotting +### Rename '9-NDI not avail' level as NA for plotting DC2020messer$NDIQuartNA <- factor(replace(as.character(DC2020messer$NDIQuart), - DC2020messer$NDIQuart == "9-NDI not avail", + DC2020messer$NDIQuart == '9-NDI not avail', NA), c(levels(DC2020messer$NDIQuart)[-5], NA)) ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020messer, ggplot2::aes(fill = NDIQuartNA), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey50") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index\nQuartiles (Messer, non-imputed)", - subtitle = "Washington, D.C. tracts as the referent") + na.value = 'grey50') + + ggplot2::labs(fill = 'Index (Categorical)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggplot2::ggtitle('Neighborhood Deprivation Index\nQuartiles (Messer, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent') ``` ![](man/figures/messer1.png) ![](man/figures/messer2.png) @@ -223,8 +243,8 @@ ggplot2::ggplot() + # ---------------------------- # # Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C. census tracts -powell_wiley2020DC <- powell_wiley(state = "DC", year = 2020) -powell_wiley2020DCi <- powell_wiley(state = "DC", year = 2020, imp = TRUE) # impute missing values +powell_wiley2020DC <- powell_wiley(state = 'DC', year = 2020) +powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # impute missing values # ------------------------------------ # # Outputs from powell_wiley() function # @@ -243,12 +263,12 @@ powell_wiley2020DC$missing # Visualize the powell_wiley() function output # # -------------------------------------------- # -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (powell_wiley) values to the census tract geometry -DC2020powell_wiley <- dplyr::left_join(tract2020DC, powell_wiley2020DC$ndi, by = "GEOID") -DC2020powell_wiley <- dplyr::left_join(DC2020powell_wiley, powell_wiley2020DCi$ndi, by = "GEOID") +DC2020powell_wiley <- dplyr::left_join(tract2020DC, powell_wiley2020DC$ndi, by = 'GEOID') +DC2020powell_wiley <- dplyr::left_join(DC2020powell_wiley, powell_wiley2020DCi$ndi, by = 'GEOID') # Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C. census tracts @@ -256,32 +276,32 @@ DC2020powell_wiley <- dplyr::left_join(DC2020powell_wiley, powell_wiley2020DCi$n ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020powell_wiley, ggplot2::aes(fill = NDI.x), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index\nContinuous (Powell-Wiley, non-imputed)", - subtitle = "Washington, D.C. tracts as the referent") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Neighborhood Deprivation Index\nContinuous (Powell-Wiley, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent') ## Non-imputed missing tracts (Categorical quintiles) -### Rename "9-NDI not avail" level as NA for plotting +### Rename '9-NDI not avail' level as NA for plotting DC2020powell_wiley$NDIQuintNA.x <- factor(replace(as.character(DC2020powell_wiley$NDIQuint.x), - DC2020powell_wiley$NDIQuint.x == "9-NDI not avail", + DC2020powell_wiley$NDIQuint.x == '9-NDI not avail', NA), c(levels(DC2020powell_wiley$NDIQuint.x)[-6], NA)) ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020powell_wiley, ggplot2::aes(fill = NDIQuintNA.x), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey50") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, non-imputed)", - subtitle = "Washington, D.C. tracts as the referent") + na.value = 'grey50') + + ggplot2::labs(fill = 'Index (Categorical)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent') ``` ![](man/figures/powell_wiley1.png) @@ -292,32 +312,32 @@ ggplot2::ggplot() + ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020powell_wiley, ggplot2::aes(fill = NDI.y), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index\nContinuous (Powell-Wiley, imputed)", - subtitle = "Washington, D.C. tracts as the referent") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Neighborhood Deprivation Index\nContinuous (Powell-Wiley, imputed)', + subtitle = 'Washington, D.C. tracts as the referent') ## Imputed missing tracts (Categorical quintiles) -### Rename "9-NDI not avail" level as NA for plotting +### Rename '9-NDI not avail' level as NA for plotting DC2020powell_wiley$NDIQuintNA.y <- factor(replace(as.character(DC2020powell_wiley$NDIQuint.y), - DC2020powell_wiley$NDIQuint.y == "9-NDI not avail", + DC2020powell_wiley$NDIQuint.y == '9-NDI not avail', NA), c(levels(DC2020powell_wiley$NDIQuint.y)[-6], NA)) ggplot2::ggplot() + ggplot2::geom_sf(data = DC2020powell_wiley, ggplot2::aes(fill = NDIQuintNA.y), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey50") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, imputed)", - subtitle = "Washington, D.C. tracts as the referent") + na.value = 'grey50') + + ggplot2::labs(fill = 'Index (Categorical)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, imputed)', + subtitle = 'Washington, D.C. tracts as the referent') ``` ![](man/figures/powell_wiley3.png) @@ -329,10 +349,10 @@ ggplot2::ggplot() + # --------------------------- # # Merge the two NDI metrics (Messer and Powell-Wiley, imputed) -ndi2020DC <- dplyr::left_join(messer2020DC$ndi, powell_wiley2020DCi$ndi, by = "GEOID", suffix = c(".messer", ".powell_wiley")) +ndi2020DC <- dplyr::left_join(messer2020DC$ndi, powell_wiley2020DCi$ndi, by = 'GEOID', suffix = c('.messer', '.powell_wiley')) # Check the correlation the two NDI metrics (Messer and Powell-Wiley, imputed) as continuous values -cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = "complete.obs") # Pearsons r = 0.975 +cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = 'complete.obs') # Pearsons r = 0.975 # Check the similarity of the two NDI metrics (Messer and Powell-Wiley, imputed) as quartiles table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) @@ -344,24 +364,24 @@ table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) # ---------------------------- # # Gini Index based on Gini (1921) from the ACS-5 -gini2020DC <- gini(state = "DC", year = 2020) +gini2020DC <- gini(state = 'DC', year = 2020) -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the Gini Index values to the census tract geometry -gini2020DC <- dplyr::left_join(tract2020DC, gini2020DC$gini, by = "GEOID") +gini2020DC <- dplyr::left_join(tract2020DC, gini2020DC$gini, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = gini2020DC, ggplot2::aes(fill = gini), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Gini Index\nGrey color denotes no data", - subtitle = "Washington, D.C. tracts") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Gini Index\nGrey color denotes no data', + subtitle = 'Washington, D.C. tracts') ``` ![](man/figures/gini.png) @@ -373,24 +393,24 @@ ggplot2::ggplot() + # Racial Isolation Index based on Anthopolos et al. (2011) ## Selected subgroup: Not Hispanic or Latino, Black or African American alone -ri2020DC <- anthopolos(state = "DC", year = 2020, subgroup = "NHoLB") +ri2020DC <- anthopolos(state = 'DC', year = 2020, subgroup = 'NHoLB') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the RI (Anthopolos) values to the census tract geometry -ri2020DC <- dplyr::left_join(tract2020DC, ri2020DC$ri, by = "GEOID") +ri2020DC <- dplyr::left_join(tract2020DC, ri2020DC$ri, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = ri2020DC, ggplot2::aes(fill = RI), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Racial Isolation Index\nNot Hispanic or Latino, Black or African American alone (Anthopolos)", - subtitle = "Washington, D.C. tracts (not corrected for edge effects)") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Racial Isolation Index\nNot Hispanic or Latino, Black or African American alone (Anthopolos)', + subtitle = 'Washington, D.C. tracts (not corrected for edge effects)') ``` ![](man/figures/ri.png) @@ -402,24 +422,24 @@ ggplot2::ggplot() + # Educational Isolation Index based on Bravo et al. (2021) ## Selected subgroup: without four-year college degree -ei2020DC <- bravo(state = "DC", year = 2020, subgroup = c("LtHS", "HSGiE", "SCoAD")) +ei2020DC <- bravo(state = 'DC', year = 2020, subgroup = c('LtHS', 'HSGiE', 'SCoAD')) -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the EI (Bravo) values to the census tract geometry -ei2020DC <- dplyr::left_join(tract2020DC, ei2020DC$ei, by = "GEOID") +ei2020DC <- dplyr::left_join(tract2020DC, ei2020DC$ei, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = ei2020DC, ggplot2::aes(fill = EI), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Educational Isolation Index\nWithout a four-year college degree (Bravo)", - subtitle = "Washington, D.C. tracts (not corrected for edge effects)") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Educational Isolation Index\nWithout a four-year college degree (Bravo)', + subtitle = 'Washington, D.C. tracts (not corrected for edge effects)') ``` ![](man/figures/ei.png) @@ -431,25 +451,25 @@ ggplot2::ggplot() + # Five Indices of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016) -ice2020DC <- krieger(state = "DC", year = 2020) +ice2020DC <- krieger(state = 'DC', year = 2020) -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the ICEs (Krieger) values to the census tract geometry -ice2020DC <- dplyr::left_join(tract2020DC, ice2020DC$ice, by = "GEOID") +ice2020DC <- dplyr::left_join(tract2020DC, ice2020DC$ice, by = 'GEOID') # Plot ICE for Income ggplot2::ggplot() + ggplot2::geom_sf(data = ice2020DC, ggplot2::aes(fill = ICE_inc), - color = "white") + + color = 'white') + ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1,1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome (Krieger)", - subtitle = "80th income percentile vs. 20th income percentile") + ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1,1)) + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Index of Concentration at the Extremes\nIncome (Krieger)', + subtitle = '80th income percentile vs. 20th income percentile') ``` ![](man/figures/ice1.png) @@ -459,13 +479,13 @@ ggplot2::ggplot() + ggplot2::ggplot() + ggplot2::geom_sf(data = ice2020DC, ggplot2::aes(fill = ICE_edu), - color = "white") + + color = 'white') + ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1,1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nEducation (Krieger)", - subtitle = "less than high school vs. four-year college degree or more") + ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1,1)) + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Index of Concentration at the Extremes\nEducation (Krieger)', + subtitle = 'less than high school vs. four-year college degree or more') ``` ![](man/figures/ice2.png) @@ -475,13 +495,13 @@ ggplot2::ggplot() + ggplot2::ggplot() + ggplot2::geom_sf(data = ice2020DC, ggplot2::aes(fill = ICE_rewb), - color = "white") + + color = 'white') + ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)", - subtitle = "white non-Hispanic vs. black non-Hispanic") + ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1, 1)) + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)', + subtitle = 'white non-Hispanic vs. black non-Hispanic') ``` ![](man/figures/ice3.png) @@ -492,13 +512,13 @@ ggplot2::ggplot() + ggplot2::ggplot() + ggplot2::geom_sf(data = ice2020DC, ggplot2::aes(fill = ICE_wbinc), - color = "white") + + color = 'white') + ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)", - subtitle = "white non-Hispanic in 80th income percentile vs. black (incl. Hispanic) in 20th inc. percentile") + ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1, 1)) + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)', + subtitle = 'white non-Hispanic in 80th income percentile vs. black (incl. Hispanic) in 20th inc. percentile') ``` ![](man/figures/ice4.png) @@ -509,13 +529,13 @@ ggplot2::ggplot() + ggplot2::ggplot() + ggplot2::geom_sf(data = ice2020DC, ggplot2::aes(fill = ICE_wpcinc), - color = "white") + + color = 'white') + ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)", - subtitle = "white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile") + ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1, 1)) + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)', + subtitle = 'white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile') ``` ![](man/figures/ice5.png) @@ -530,25 +550,25 @@ ggplot2::ggplot() + ## Selected subgroup reference: Not Hispanic or Latino, white alone ## Selected large geography: census tract ## Selected small geography: census block group -di2020DC <- duncan(geo_large = "tract", geo_small = "block group", state = "DC", - year = 2020, subgroup = "NHoLB", subgroup_ref = "NHoLW") +di2020DC <- duncan(geo_large = 'tract', geo_small = 'block group', state = 'DC', + year = 2020, subgroup = 'NHoLB', subgroup_ref = 'NHoLW') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the DI (Duncan & Duncan) values to the census tract geometry -di2020DC <- dplyr::left_join(tract2020DC, di2020DC$di, by = "GEOID") +di2020DC <- dplyr::left_join(tract2020DC, di2020DC$di, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = di2020DC, ggplot2::aes(fill = DI), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Dissimilarity Index (Duncan & Duncan)\nWashington, D.C. census block groups to tracts", - subtitle = "Black non-Hispanic vs. white non-Hispanic") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ + ggplot2::ggtitle('Dissimilarity Index (Duncan & Duncan)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic vs. white non-Hispanic') ``` ![](man/figures/di.png) @@ -563,25 +583,25 @@ ggplot2::ggplot() + ## Selected large geography: census tract ## Selected small geography: census block group ## Default epsilon (0.5 or over- and under-representation contribute equally) -ai2020DC <- atkinson(geo_large = "tract", geo_small = "block group", state = "DC", - year = 2020, subgroup = "NHoLB") +ai2020DC <- atkinson(geo_large = 'tract', geo_small = 'block group', state = 'DC', + year = 2020, subgroup = 'NHoLB') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the AI (Atkinson) values to the census tract geometry -ai2020DC <- dplyr::left_join(tract2020DC, ai2020DC$ai, by = "GEOID") +ai2020DC <- dplyr::left_join(tract2020DC, ai2020DC$ai, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = ai2020DC, ggplot2::aes(fill = AI), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Atkinson Index (Atkinson)\nWashington, D.C. census block groups to tracts", - subtitle = expression(paste("Black non-Hispanic (", epsilon, " = 0.5)"))) + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggplot2::ggtitle('Atkinson Index (Atkinson)\nWashington, D.C. census block groups to tracts', + subtitle = expression(paste('Black non-Hispanic (', epsilon, ' = 0.5)'))) ``` ![](man/figures/ai.png) @@ -596,25 +616,25 @@ ggplot2::ggplot() + ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -ii2020DC <- bell(geo_large = "tract", geo_small = "block group", state = "DC", - year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") +ii2020DC <- bell(geo_large = 'tract', geo_small = 'block group', state = 'DC', + year = 2020, subgroup = 'NHoLB', subgroup_ixn = 'NHoLW') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the II (Bell) values to the census tract geometry -ii2020DC <- dplyr::left_join(tract2020DC, ii2020DC$ii, by = "GEOID") +ii2020DC <- dplyr::left_join(tract2020DC, ii2020DC$ii, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = ii2020DC, ggplot2::aes(fill = II), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Isolation Index (Bell)\nWashington, D.C. census block groups to tracts", - subtitle = "Black non-Hispanic vs. white non-Hispanic") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggplot2::ggtitle('Isolation Index (Bell)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic vs. white non-Hispanic') ``` ![](man/figures/ii.png) @@ -628,25 +648,25 @@ ggplot2::ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -v2020DC <- white(geo_large = "tract", geo_small = "block group", state = "DC", - year = 2020, subgroup = "NHoLB") +v2020DC <- white(geo_large = 'tract', geo_small = 'block group', state = 'DC', + year = 2020, subgroup = 'NHoLB') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the V (White) values to the census tract geometry -v2020DC <- dplyr::left_join(tract2020DC, v2020DC$v, by = "GEOID") +v2020DC <- dplyr::left_join(tract2020DC, v2020DC$v, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = v2020DC, ggplot2::aes(fill = V), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Correlation Ratio (White)\nWashington, D.C. census block groups to tracts", - subtitle = "Black non-Hispanic") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggplot2::ggtitle('Correlation Ratio (White)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic') ``` ![](man/figures/v.png) @@ -660,25 +680,25 @@ ggplot2::ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: state ## Selected small geography: census tract -lq2020DC <- sudano(geo_large = "state", geo_small = "tract", state = "DC", - year = 2020, subgroup = "NHoLB") +lq2020DC <- sudano(geo_large = 'state', geo_small = 'tract', state = 'DC', + year = 2020, subgroup = 'NHoLB') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the LQ (Sudano) values to the census tract geometry -lq2020DC <- dplyr::left_join(tract2020DC, lq2020DC$lq, by = "GEOID") +lq2020DC <- dplyr::left_join(tract2020DC, lq2020DC$lq, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = lq2020DC, ggplot2::aes(fill = LQ), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle('Location Quotient (Sudano)\nWashington, D.C. census tracts vs. "state"', - subtitle = "Black non-Hispanic") + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggplot2::ggtitle('Location Quotient (Sudano)\nWashington, D.C. census tracts vs. 'state'', + subtitle = 'Black non-Hispanic') ``` ![](man/figures/lq.png) @@ -693,40 +713,72 @@ ggplot2::ggplot() + ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: state ## Selected small geography: census tract -lexis2020DC <- bemanian_beyer(geo_large = "state", geo_small = "tract", state = "DC", - year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") +lexis2020DC <- bemanian_beyer(geo_large = 'state', geo_small = 'tract', state = 'DC', + year = 2020, subgroup = 'NHoLB', subgroup_ixn = 'NHoLW') -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) # Join the LEx/Is (Bemanian & Beyer) values to the census tract geometry -lexis2020DC <- dplyr::left_join(tract2020DC, lexis2020DC$lexis, by = "GEOID") +lexis2020DC <- dplyr::left_join(tract2020DC, lexis2020DC$lexis, by = 'GEOID') ggplot2::ggplot() + ggplot2::geom_sf(data = lexis2020DC, ggplot2::aes(fill = LExIs), - color = "white") + + color = 'white') + ggplot2::theme_bw() + ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + ggplot2::ggtitle('Local Exposure and Isolation (Bemanian & Beyer) metric\nWashington, D.C. census block groups to tracts', - subtitle = "Black non-Hispanic vs. white non-Hispanic") + subtitle = 'Black non-Hispanic vs. white non-Hispanic') ``` ![](man/figures/lexis.png) +```r +# --------------------------------------------- # +# Compute aspatial racial/ethnic Delta (Hoover) # +# --------------------------------------------- # + +# Delta based on Hoover (1941) and Duncan et al. (1961) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: census tract +## Selected small geography: census block group +del2020DC <- hoover(geo_large = 'tract', geo_small = 'block group', state = 'DC', + year = 2020, subgroup = 'NHoLB') + +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) + +# Join the DEL (Hoover) values to the census tract geometry +del2020DC <- dplyr::left_join(tract2020DC, del2020DC$del, by = 'GEOID') + +ggplot2::ggplot() + + ggplot2::geom_sf(data = del2020DC, + ggplot2::aes(fill = DEL), + color = 'white') + + ggplot2::theme_bw() + + ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + + ggplot2::labs(fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggplot2::ggtitle('Delta (Hoover)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic') +``` + +![](man/figures/del.png) + ### Funding -This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a division of [DLH Corporation](https://www.dlhcorp.com). +This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a [DLH Corporation](https://www.dlhcorp.com) Holding Company. ### Acknowledgments -The `messer()` function functionalizes the code found in [Hruska _et al._ (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer _et al._ (2006)](https://doi.org/10.1007/s11524-006-9094-x). The `messer()` function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews _et al._ (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman _et al._ (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their `SAS` code in `R` for the `powell_wiley()` function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews _et al._ (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman _et al._ (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., `SPSS` and `SAS`, respectively) that intrinsically calculate the principal component analysis differently from `R`. The internal function to calculate the Atkinson Index is based on the `Atkinson()` function in the [DescTools](https://cran.r-project.org/package=DescTools) package. +The `messer()` function functionalizes the code found in [Hruska et al. (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x). The `messer()` function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their `SAS` code in `R` for the `powell_wiley()` function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., `SPSS` and `SAS`, respectively) that intrinsically calculate the principal component analysis differently from `R`. The internal function to calculate the Atkinson Index is based on the `Atkinson()` function in the [DescTools](https://cran.r-project.org/package=DescTools) package. When citing this package for publication, please follow: - citation("ndi") + citation('ndi') ### Questions? Feedback? diff --git a/data-raw/get_DCtracts2020.R b/data-raw/get_DCtracts2020.R index cc25284..bb881c1 100644 --- a/data-raw/get_DCtracts2020.R +++ b/data-raw/get_DCtracts2020.R @@ -1,147 +1,216 @@ -# code to prepare `DCtracts2020` +# ----------------------------------------------------------------------------------------------- # +# Code to prepare `DCtracts2020` +# ----------------------------------------------------------------------------------------------- # +# +# Created by: Ian Buller, Ph.D., M.A. (GitHub: @idblr) +# Created on: 2022-07-23 +# +# Recently modified by: @idblr +# Recently modified on: 2024-07-06 +# +# Notes: +# A) 2024-07-06 (@idblr): Re-formatted +# ----------------------------------------------------------------------------------------------- # # ------------------ # -# Necessary packages # +# NECESSARY PACKAGES # # ------------------ # -library(dplyr) -library(tidycensus) -library(usethis) +loadedPackages <- c('dplyr', 'tidycensus', 'usethis') +suppressMessages(invisible(lapply(loadedPackages, library, character.only = TRUE))) # -------- # -# Settings # +# SETTINGS # # -------- # ## Access Key for census data download ### Obtain one at http://api.census.gov/data/key_signup.html -tidycensus::census_api_key("...") # INSERT YOUR OWN KEY FROM U.S. CENSUS API +census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API # ---------------- # -# Data preparation # +# DATA PREPARATION # # ---------------- # # U.S. Census Bureau American Community Survey (ACS) 5-year variables ## For NDI (Messer) ### ACS-5 variables -messer_vars <- c(PctMenMgmtBusScArti_num1 = "C24030_018", PctMenMgmtBusScArti_num2 = "C24030_019", - PctMenMgmtBusScArti_den = "C24030_002", - PctCrwdHH_num1 = "B25014_005", PctCrwdHH_num2 = "B25014_006", - PctCrwdHH_num3 = "B25014_007", PctCrwdHH_num4 = "B25014_011", - PctCrwdHH_num5 = "B25014_012", PctCrwdHH_num6 = "B25014_013", - PctCrwdHH_den = "B25014_001", - PctHHPov_num = "B17017_002", PctHHPov_den = "B17017_001", - PctFemHeadKids_num1 = "B25115_012", PctFemHeadKids_num2 = "B25115_025", - PctFemHeadKids_den = "B25115_001", - PctPubAsst_num = "B19058_002", PctPubAsst_den = "B19058_001", - PctHHUnder30K_num1 = "B19001_002", PctHHUnder30K_num2 = "B19001_003", - PctHHUnder30K_num3 = "B19001_004", PctHHUnder30K_num4 = "B19001_005", - PctHHUnder30K_num5 = "B19001_006", PctHHUnder30K_den = "B19001_001", - PctEducLessThanHS_num = "B06009_002", PctEducLessThanHS_den = "B06009_001", - PctUnemp_num = "B23025_005", PctUnemp_den = "B23025_003") +messer_vars <- c( + PctMenMgmtBusScArti_num1 = 'C24030_018', + PctMenMgmtBusScArti_num2 = 'C24030_019', + PctMenMgmtBusScArti_den = 'C24030_002', + PctCrwdHH_num1 = 'B25014_005', + PctCrwdHH_num2 = 'B25014_006', + PctCrwdHH_num3 = 'B25014_007', + PctCrwdHH_num4 = 'B25014_011', + PctCrwdHH_num5 = 'B25014_012', + PctCrwdHH_num6 = 'B25014_013', + PctCrwdHH_den = 'B25014_001', + PctHHPov_num = 'B17017_002', + PctHHPov_den = 'B17017_001', + PctFemHeadKids_num1 = 'B25115_012', + PctFemHeadKids_num2 = 'B25115_025', + PctFemHeadKids_den = 'B25115_001', + PctPubAsst_num = 'B19058_002', + PctPubAsst_den = 'B19058_001', + PctHHUnder30K_num1 = 'B19001_002', + PctHHUnder30K_num2 = 'B19001_003', + PctHHUnder30K_num3 = 'B19001_004', + PctHHUnder30K_num4 = 'B19001_005', + PctHHUnder30K_num5 = 'B19001_006', + PctHHUnder30K_den = 'B19001_001', + PctEducLessThanHS_num = 'B06009_002', + PctEducLessThanHS_den = 'B06009_001', + PctUnemp_num = 'B23025_005', + PctUnemp_den = 'B23025_003' +) ### Obtain ACS-5 data for DC tracts in 2020 -DCtracts2020messer <- tidycensus::get_acs(geography = "tract", - year = 2020, - output = "wide", - variables = messer_vars, - state = "DC") +DCtracts2020messer <- get_acs( + geography = 'tract', + year = 2020, + output = 'wide', + variables = messer_vars, + state = 'DC' +) ### Format ACS-5 data for NDI (Messer) of DC tracts in 2020 DCtracts2020messer <- DCtracts2020messer[ , -2] # omit NAME feature (column) DCtracts2020messer <- DCtracts2020messer %>% - dplyr::mutate(OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, - CWD = (PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + - PctCrwdHH_num4E + PctCrwdHH_num5E + PctCrwdHH_num6E) / PctCrwdHH_denE, - POV = PctHHPov_numE / PctHHPov_denE, - FHH = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE, - PUB = PctPubAsst_numE / PctPubAsst_denE, - U30 = (PctHHUnder30K_num1E + PctHHUnder30K_num2E + PctHHUnder30K_num3E + - PctHHUnder30K_num4E + PctHHUnder30K_num5E) / PctHHUnder30K_denE, - EDU = PctEducLessThanHS_numE / PctEducLessThanHS_denE, - EMP = PctUnemp_numE / PctUnemp_denE) + mutate( + OCC = (PctMenMgmtBusScArti_num1E + PctMenMgmtBusScArti_num2E) / PctMenMgmtBusScArti_denE, + CWD = ( + PctCrwdHH_num1E + PctCrwdHH_num2E + PctCrwdHH_num3E + + PctCrwdHH_num4E + PctCrwdHH_num5E + PctCrwdHH_num6E + ) / PctCrwdHH_denE, + POV = PctHHPov_numE / PctHHPov_denE, + FHH = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE, + PUB = PctPubAsst_numE / PctPubAsst_denE, + U30 = ( + PctHHUnder30K_num1E + PctHHUnder30K_num2E + PctHHUnder30K_num3E + + PctHHUnder30K_num4E + PctHHUnder30K_num5E + ) / PctHHUnder30K_denE, + EDU = PctEducLessThanHS_numE / PctEducLessThanHS_denE, + EMP = PctUnemp_numE / PctUnemp_denE + ) ### Clean-up and format DCtracts2020messer <- DCtracts2020messer %>% - dplyr::select(GEOID, OCC, CWD, POV, FHH, PUB, U30, EDU, EMP) + select(GEOID, OCC, CWD, POV, FHH, PUB, U30, EDU, EMP) ## For NDI (Powell-Wiley) ### ACS-5 variables -powell_wiley_vars <- c(MedHHInc = "B19013_001", - PctRecvIDR_num = "B19054_002", PctRecvIDR_den = "B19054_001", - PctPubAsst_num = "B19058_002", PctPubAsst_den = "B19058_001", - MedHomeVal = "B25077_001", - PctMgmtBusScArti_num = "C24060_002", PctMgmtBusScArti_den = "C24060_001", - PctFemHeadKids_num1 = "B11005_007", PctFemHeadKids_num2 = "B11005_010", - PctFemHeadKids_den = "B11005_001", - PctOwnerOcc = "DP04_0046P", - PctNoPhone = "DP04_0075P", - PctNComPlmb = "DP04_0073P", - PctEduc_num25upHS = "S1501_C01_009", - PctEduc_num25upSC = "S1501_C01_010", - PctEduc_num25upAD = "S1501_C01_011", - PctEduc_num25upBD = "S1501_C01_012", - PctEduc_num25upGD = "S1501_C01_013", - PctEduc_den25up = "S1501_C01_006", - PctFamBelowPov = "S1702_C02_001", - PctUnempl = "S2301_C04_001", - TotalPopulation = "B01001_001") +powell_wiley_vars <- c( + MedHHInc = 'B19013_001', + PctRecvIDR_num = 'B19054_002', + PctRecvIDR_den = 'B19054_001', + PctPubAsst_num = 'B19058_002', + PctPubAsst_den = 'B19058_001', + MedHomeVal = 'B25077_001', + PctMgmtBusScArti_num = 'C24060_002', + PctMgmtBusScArti_den = 'C24060_001', + PctFemHeadKids_num1 = 'B11005_007', + PctFemHeadKids_num2 = 'B11005_010', + PctFemHeadKids_den = 'B11005_001', + PctOwnerOcc = 'DP04_0046P', + PctNoPhone = 'DP04_0075P', + PctNComPlmb = 'DP04_0073P', + PctEduc_num25upHS = 'S1501_C01_009', + PctEduc_num25upSC = 'S1501_C01_010', + PctEduc_num25upAD = 'S1501_C01_011', + PctEduc_num25upBD = 'S1501_C01_012', + PctEduc_num25upGD = 'S1501_C01_013', + PctEduc_den25up = 'S1501_C01_006', + PctFamBelowPov = 'S1702_C02_001', + PctUnempl = 'S2301_C04_001', + TotalPopulation = 'B01001_001' +) ### Obtain ACS-5 data for DC tracts in 2020 -DCtracts2020pw <- tidycensus::get_acs(geography = "tract", - year = 2020, - output = "wide", - variables = powell_wiley_vars, - state = "DC") +DCtracts2020pw <- get_acs( + geography = 'tract', + year = 2020, + output = 'wide', + variables = powell_wiley_vars, + state = 'DC' +) ### Format ACS-5 data for NDI (Powell-Wiley) of DC tracts in 2020 -DCtracts2020pw <- DCtracts2020pw[ , -2] # omit NAME feature (column) +DCtracts2020pw <- DCtracts2020pw[,-2] # omit NAME feature (column) DCtracts2020pw <- DCtracts2020pw %>% - dplyr::mutate(MedHHInc = MedHHIncE, - PctRecvIDR = PctRecvIDR_numE / PctRecvIDR_denE * 100, - PctPubAsst = PctPubAsst_numE / PctPubAsst_denE * 100, - MedHomeVal = MedHomeValE, - PctMgmtBusScArti = PctMgmtBusScArti_numE / PctMgmtBusScArti_denE * 100, - PctFemHeadKids = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE * 100, - PctOwnerOcc = PctOwnerOccE, - PctNoPhone = PctNoPhoneE, - PctNComPlmb = PctNComPlmbE, - PctEducHSPlus = (PctEduc_num25upHSE + PctEduc_num25upSCE + PctEduc_num25upADE + - PctEduc_num25upBDE + PctEduc_num25upGDE) / PctEduc_den25upE * 100, - PctEducBchPlus = (PctEduc_num25upBDE + PctEduc_num25upGDE) / PctEduc_den25upE * 100, - PctFamBelowPov = PctFamBelowPovE, - PctUnempl = PctUnemplE, - TotalPop = TotalPopulationE) %>% + mutate( + MedHHInc = MedHHIncE, + PctRecvIDR = PctRecvIDR_numE / PctRecvIDR_denE * 100, + PctPubAsst = PctPubAsst_numE / PctPubAsst_denE * 100, + MedHomeVal = MedHomeValE, + PctMgmtBusScArti = PctMgmtBusScArti_numE / PctMgmtBusScArti_denE * 100, + PctFemHeadKids = (PctFemHeadKids_num1E + PctFemHeadKids_num2E) / PctFemHeadKids_denE * 100, + PctOwnerOcc = PctOwnerOccE, + PctNoPhone = PctNoPhoneE, + PctNComPlmb = PctNComPlmbE, + PctEducHSPlus = ( + PctEduc_num25upHSE + PctEduc_num25upSCE + PctEduc_num25upADE + + PctEduc_num25upBDE + PctEduc_num25upGDE + ) / PctEduc_den25upE * 100, + PctEducBchPlus = (PctEduc_num25upBDE + PctEduc_num25upGDE) / PctEduc_den25upE * 100, + PctFamBelowPov = PctFamBelowPovE, + PctUnempl = PctUnemplE, + TotalPop = TotalPopulationE + ) %>% # Log transform median household income and median home value - # Reverse code percentages so that higher values represent more deprivation + # Reverse code percentages so that higher values represent more deprivation # Round percentages to 1 decimal place - dplyr::mutate(logMedHHInc = log(MedHHInc), - logMedHomeVal = log(MedHomeVal), - PctNoIDR = 100 - PctRecvIDR, - PctWorkClass = 100 - PctMgmtBusScArti, - PctNotOwnerOcc = 100 - PctOwnerOcc, - PctEducLTHS = 100 - PctEducHSPlus, - PctEducLTBch = 100 - PctEducBchPlus) %>% + mutate( + logMedHHInc = log(MedHHInc), + logMedHomeVal = log(MedHomeVal), + PctNoIDR = 100 - PctRecvIDR, + PctWorkClass = 100 - PctMgmtBusScArti, + PctNotOwnerOcc = 100 - PctOwnerOcc, + PctEducLTHS = 100 - PctEducHSPlus, + PctEducLTBch = 100 - PctEducBchPlus + ) %>% # Z-standardize the percentages - dplyr::mutate(PctNoIDRZ = scale(PctNoIDR), - PctPubAsstZ = scale(PctPubAsst), - PctWorkClassZ = scale(PctWorkClass), - PctFemHeadKidsZ = scale(PctFemHeadKids), - PctNotOwnerOccZ = scale(PctNotOwnerOcc), - PctNoPhoneZ = scale(PctNoPhone), - PctNComPlmbZ = scale(PctNComPlmb), - PctEducLTHSZ = scale(PctEducLTHS), - PctEducLTBchZ = scale(PctEducLTBch), - PctFamBelowPovZ = scale(PctFamBelowPov), - PctUnemplZ = scale(PctUnempl)) + mutate( + PctNoIDRZ = scale(PctNoIDR), + PctPubAsstZ = scale(PctPubAsst), + PctWorkClassZ = scale(PctWorkClass), + PctFemHeadKidsZ = scale(PctFemHeadKids), + PctNotOwnerOccZ = scale(PctNotOwnerOcc), + PctNoPhoneZ = scale(PctNoPhone), + PctNComPlmbZ = scale(PctNComPlmb), + PctEducLTHSZ = scale(PctEducLTHS), + PctEducLTBchZ = scale(PctEducLTBch), + PctFamBelowPovZ = scale(PctFamBelowPov), + PctUnemplZ = scale(PctUnempl) + ) ### Clean-up and format DCtracts2020pw <- DCtracts2020pw %>% - dplyr::select(GEOID, TotalPop, logMedHHInc, PctNoIDRZ, PctPubAsstZ, logMedHomeVal, PctWorkClassZ, - PctFemHeadKidsZ, PctNotOwnerOccZ, PctNoPhoneZ, PctNComPlmbZ, PctEducLTHSZ, - PctEducLTBchZ, PctFamBelowPovZ, PctUnemplZ) + select( + GEOID, + TotalPop, + logMedHHInc, + PctNoIDRZ, + PctPubAsstZ, + logMedHomeVal, + PctWorkClassZ, + PctFemHeadKidsZ, + PctNotOwnerOccZ, + PctNoPhoneZ, + PctNComPlmbZ, + PctEducLTHSZ, + PctEducLTBchZ, + PctFamBelowPovZ, + PctUnemplZ + ) -# Combine -DCtracts2020 <- dplyr::left_join(DCtracts2020messer, DCtracts2020pw, by = "GEOID") -DCtracts2020 <- DCtracts2020[ , c(1, 10, 2:9, 11:ncol(DCtracts2020))] # reorder so TotalPop is second feature (column) +# Combine +DCtracts2020 <- left_join(DCtracts2020messer, DCtracts2020pw, by = 'GEOID') +# reorder so TotalPop is second feature (column) +DCtracts2020 <- DCtracts2020[, c(1, 10, 2:9, 11:ncol(DCtracts2020))] -# Export -usethis::use_data(DCtracts2020, overwrite = TRUE) +# ---------------- # +# DATA EXPORTATION # +# ---------------- # + +use_data(DCtracts2020, overwrite = TRUE) + +# ----------------------------------------- END OF CODE ----------------------------------------- # diff --git a/dev/hex_ndi.R b/dev/hex_ndi.R index 192285a..58ee32d 100644 --- a/dev/hex_ndi.R +++ b/dev/hex_ndi.R @@ -1,72 +1,70 @@ -# ------------------------------------------------------------------------------ # -# Hexsticker for the GitHub Repository idblr/ndi -# ------------------------------------------------------------------------------ # +# ----------------------------------------------------------------------------------------------- # +# Hexagon sticker for the GitHub Repository idblr/ndi +# ----------------------------------------------------------------------------------------------- # # # Created by: Ian Buller, Ph.D., M.A. (GitHub: @idblr) -# Created on: July 23, 2022 +# Created on: 2022-07-23 # # Recently modified by: @idblr -# Recently modified on: August 04, 2022 +# Recently modified on: 2024-07-06 # # Notes: -# A) Uses the "hexSticker" package +# A) Uses the 'hexSticker' package # B) Subplot from an example computation of tract-level NDI (Messer) for Washington, D.C. (2020) # C) Hexsticker for the GitHub Repository https://github.com/idblr/ndi -# ------------------------------------------------------------------------------ # +# ----------------------------------------------------------------------------------------------- # -############ +# -------- # # PACKAGES # -############ +# -------- # -loadedPackages <- c("hexSticker", "ndi") +loadedPackages <- c('ggplot2', 'hexSticker', 'ndi', 'tidycensus', 'tigris') suppressMessages(invisible(lapply(loadedPackages, library, character.only = TRUE))) -############ +# -------- # # SETTINGS # -############ +# -------- # ## Access Key for census data download ### Obtain one at http://api.census.gov/data/key_signup.html -tidycensus::census_api_key("...") # INSERT YOUR OWN KEY FROM U.S. CENSUS API +census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API -###################### +# ------------------ # # SUBPLOT GENERATION # -###################### +# ------------------ # # NDI 2020 -messer2020DC <- ndi::messer(state = "DC", year = 2020, imp = TRUE) +messer2020DC <- messer(state = 'DC', year = 2020, imp = TRUE) # Tracts 2020 -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join -DC2020messer <- merge(tract2020DC, messer2020DC$ndi, by = "GEOID") +DC2020messer <- merge(tract2020DC, messer2020DC$ndi, by = 'GEOID') # Plot of tract-level NDI (Messer) for Washington, D.C. (2020) -dcp <- ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020messer, - ggplot2::aes(fill = NDI), - color = NA, - show.legend = FALSE) + - ggplot2::theme_void() + - ggplot2::theme(axis.text = ggplot2::element_blank()) + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "", - caption = "")+ - ggplot2::ggtitle("", subtitle = "") +dcp <- ggplot() + + geom_sf(data = DC2020messer, aes(fill = NDI), color = NA, show.legend = FALSE) + + theme_void() + + theme(axis.text = element_blank()) + + scale_fill_viridis_c() + + labs(fill = '', caption = '')+ + ggtitle('', subtitle = '') -##################### -# CREATE HEXSTICKER # -##################### +# ---------------------- # +# CREATE HEXAGON STICKER # +# ---------------------- # -s <- hexSticker::sticker(subplot = dcp, - package = "ndi", - p_size = 75, p_x = 0.55, p_y = 0.75, p_color = "#FDE724", # title - s_x = 1.15, s_y = 1.05, s_width = 2.1, s_height = 2.1, # symbol - h_fill = "#695488", # inside - h_color = "#440C54", # outline - dpi = 1000, # resolution - filename = "man/figures/ndi.png", - white_around_sticker = F) +s <-sticker( + subplot = dcp, + package = 'ndi', + p_size = 75, p_x = 0.55, p_y = 0.75, p_color = '#FDE724', # title + s_x = 1.15, s_y = 1.05, s_width = 2.1, s_height = 2.1, # symbol + h_fill = '#695488', # inside + h_color = '#440C54', # outline + dpi = 1000, # resolution + filename = file.path('man', 'figures', 'ndi.png'), + white_around_sticker = FALSE +) -# -------------------------------- END OF CODE --------------------------------- # +# ----------------------------------------- END OF CODE ----------------------------------------- # diff --git a/inst/CITATION b/inst/CITATION index 8a32f7c..76fb190 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,385 +1,421 @@ -bibentry(bibtype = "manual", - title = "ndi: Neighborhood Deprivation Indices", - author = c(as.person("Ian D. Buller")), - publisher = "The Comprehensive R Archive Network", - year = "2024", - number = "0.1.5", - doi = "10.5281/zenodo.6989030", - url = "https://cran.r-project.org/package=ndi", +bibentry(bibtype = 'manual', + title = 'ndi: Neighborhood Deprivation Indices', + author = c(as.person('Ian D. Buller')), + publisher = 'The Comprehensive R Archive Network', + year = '2024', + number = '0.1.6.9000.', + doi = '10.5281/zenodo.6989030', + url = 'https://cran.r-project.org/package=ndi', textVersion = - paste("Ian D. Buller (2024).", - "ndi: Neighborhood Deprivation Indices.", - "The Comprehensive R Archive Network.", - "v0.1.5.", - "DOI:10.5281/zenodo.6989030", - "Accessed by: https://cran.r-project.org/package=ndi"), + paste('Ian D. Buller (2024).', + 'ndi: Neighborhood Deprivation Indices.', + 'The Comprehensive R Archive Network.', + 'v0.1.6.9000.', + 'DOI:10.5281/zenodo.6989030', + 'Accessed by: https://cran.r-project.org/package=ndi'), - header = "To cite ndi in publications, please use the following and include the version number and DOI:" + header = 'To cite ndi in publications, please use the following and include the version number and DOI:' ) -bibentry(bibtype = "Article", - title = "A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina", - author = c(as.person("Rebecca Anthopolos"), - as.person("Sherman A. James"), - as.person("Alan E. Gelfand"), - as.person("Marie Lynn Miranda")), - journal = "Spatial and Spatio-temporal Epidemiology", - year = "2011", - volume = "2", - number = "4", - pages = "235--246", - doi = "10.1016/j.sste.2011.06.002", +bibentry(bibtype = 'Article', + title = 'A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina', + author = c(as.person('Rebecca Anthopolos'), + as.person('Sherman A. James'), + as.person('Alan E. Gelfand'), + as.person('Marie Lynn Miranda')), + journal = 'Spatial and Spatio-temporal Epidemiology', + year = '2011', + volume = '2', + number = '4', + pages = '235--246', + doi = '10.1016/j.sste.2011.06.002', textVersion = - paste("Rebecca Anthopolos, Sherman A. James, Alan E. Gelfand, Marie Lynn Miranda (2011).", - "A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina.", - "Spatial and Spatio-temporal Epidemiology, 2(4), 235-246.", - "DOI:10.1016/j.sste.2011.06.002"), + paste('Rebecca Anthopolos, Sherman A. James, Alan E. Gelfand, Marie Lynn Miranda (2011).', + 'A spatial measure of neighborhood level racial isolation applied to low birthweight, preterm birth, and birthweight in North Carolina.', + 'Spatial and Spatio-temporal Epidemiology, 2(4), 235-246.', + 'DOI:10.1016/j.sste.2011.06.002'), - header = "If you computed RI (Anthopolos) values, please also cite:" + header = 'If you computed RI (Anthopolos) values, please also cite:' ) -bibentry(bibtype = "Article", - title = "On the measurement of inequality", - author = c(as.person("Anthony B. Atkinson")), - journal = "Journal of economic theory", - year = "1970", - volume = "2", - number = "3", - pages = "244--263", - doi = "10.1016/0022-0531(70)90039-6", +bibentry(bibtype = 'Article', + title = 'On the measurement of inequality', + author = c(as.person('Anthony B. Atkinson')), + journal = 'Journal of economic theory', + year = '1970', + volume = '2', + number = '3', + pages = '244--263', + doi = '10.1016/0022-0531(70)90039-6', textVersion = - paste("Anthony B. Atkinson (1970).", - "On the measurement of inequality.", - "Journal of economic theory, 2(3), 244-263.", - "DOI:10.1016/0022-0531(70)90039-6"), + paste('Anthony B. Atkinson (1970).', + 'On the measurement of inequality.', + 'Journal of economic theory, 2(3), 244-263.', + 'DOI:10.1016/0022-0531(70)90039-6'), - header = "If you computed AI (Atkinson) values, please also cite:" + header = 'If you computed AI (Atkinson) values, please also cite:' ) -bibentry(bibtype = "Book", - title = "The Social Areas of Los Angeles: Analysis and Typology", - author = c(as.person("Eshref Shevky"), - as.person("Marilyn Williams")), - year = "1949", - edition = "1st edition", - city = "Los Angeles", - publisher = "John Randolph Haynes and Dora Haynes Foundation", - isbn = "978-0-837-15637-8", +bibentry(bibtype = 'Book', + title = 'The Social Areas of Los Angeles: Analysis and Typology', + author = c(as.person('Eshref Shevky'), + as.person('Marilyn Williams')), + year = '1949', + edition = '1st edition', + city = 'Los Angeles', + publisher = 'John Randolph Haynes and Dora Haynes Foundation', + isbn = '978-0-837-15637-8', textVersion = - paste("Eshref Shevky, Marilyn Williams (1949).", - "The Social Areas of Los Angeles: Analysis and Typology.", - "1st Ed.", - "Los Angeles:John Randolph Haynes and Dora Haynes Foundation.", - "ISBN-13:978-0-837-15637-8"), + paste('Eshref Shevky, Marilyn Williams (1949).', + 'The Social Areas of Los Angeles: Analysis and Typology.', + '1st Ed.', + 'Los Angeles:John Randolph Haynes and Dora Haynes Foundation.', + 'ISBN-13:978-0-837-15637-8'), - header = "If you computed II (Bell) values, please also cite (1):" + header = 'If you computed II (Bell) values, please also cite (1):' ) -bibentry(bibtype = "Article", - title = "A Probability Model for the Measurement of Ecological Segregation", - author = c(as.person("Wendell Bell")), - journal = "Social Forces", - year = "1954", - volume = "32", - issue = "4", - pages = "357--364", - doi = "10.2307/2574118", +bibentry(bibtype = 'Article', + title = 'A Probability Model for the Measurement of Ecological Segregation', + author = c(as.person('Wendell Bell')), + journal = 'Social Forces', + year = '1954', + volume = '32', + issue = '4', + pages = '357--364', + doi = '10.2307/2574118', textVersion = - paste("Wendell Bell (1954).", - "A Probability Model for the Measurement of Ecological Segregation.", - "Social Forces, 32(4), 357-364.", - "DOI:10.2307/2574118"), + paste('Wendell Bell (1954).', + 'A Probability Model for the Measurement of Ecological Segregation.', + 'Social Forces, 32(4), 357-364.', + 'DOI:10.2307/2574118'), - header = "And (2):" + header = 'And (2):' ) -bibentry(bibtype = "Article", - title = "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival", - author = c(as.person("Amin Bemanian"), - as.person("Kirsten M.M. Beyer")), - journal = "Cancer Epidemiology, Biomarkers & Prevention", - year = "2017", - volume = "26", - issue = "4", - pages = "516--524", - doi = "10.1158/1055-9965.EPI-16-0926", +bibentry(bibtype = 'Article', + title = 'Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival', + author = c(as.person('Amin Bemanian'), + as.person('Kirsten M.M. Beyer')), + journal = 'Cancer Epidemiology, Biomarkers & Prevention', + year = '2017', + volume = '26', + issue = '4', + pages = '516--524', + doi = '10.1158/1055-9965.EPI-16-0926', textVersion = - paste("Amin Bemanian, Kirsten M.M. Beyer (2017).", - "Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival.", - "Cancer Epidemiology, Biomarkers & Prevention, 26(4), 516-524.", - "DOI:10.1158/1055-9965.EPI-16-0926"), + paste('Amin Bemanian, Kirsten M.M. Beyer (2017).', + 'Measures Matter: The Local Exposure/Isolation (LEx/Is) Metrics and Relationships between Local-Level Segregation and Breast Cancer Survival.', + 'Cancer Epidemiology, Biomarkers & Prevention, 26(4), 516-524.', + 'DOI:10.1158/1055-9965.EPI-16-0926'), - header = "If you computed LEx/Is (Bemanian & Beyer) values, please also cite:" + header = 'If you computed LEx/Is (Bemanian & Beyer) values, please also cite:' ) -bibentry(bibtype = "Article", - title = "Assessing Disparity Using Measures of Racial and Educational Isolation", - author = c(as.person("Mercedes A. Bravo"), - as.person("Man Chong Leong"), - as.person("Alan E. Gelfand"), - as.person("Marie Lynn Miranda")), - journal = "International Journal of Environmental Research and Public Health", - year = "2021", - volume = "18", - number = "17", - pages = "9384", - doi = "10.3390/ijerph18179384", +bibentry(bibtype = 'Article', + title = 'Assessing Disparity Using Measures of Racial and Educational Isolation', + author = c(as.person('Mercedes A. Bravo'), + as.person('Man Chong Leong'), + as.person('Alan E. Gelfand'), + as.person('Marie Lynn Miranda')), + journal = 'International Journal of Environmental Research and Public Health', + year = '2021', + volume = '18', + number = '17', + pages = '9384', + doi = '10.3390/ijerph18179384', textVersion = - paste("Mercedes A. Bravo, Man Chong Leong, Alan E. Gelfand, Marie Lynn Miranda (2021).", - "Assessing Disparity Using Measures of Racial and Educational Isolation.", - "International Journal of Environmental Research and Public Health, 18(17), 9384.", - "DOI:10.3390/ijerph18179384"), + paste('Mercedes A. Bravo, Man Chong Leong, Alan E. Gelfand, Marie Lynn Miranda (2021).', + 'Assessing Disparity Using Measures of Racial and Educational Isolation.', + 'International Journal of Environmental Research and Public Health, 18(17), 9384.', + 'DOI:10.3390/ijerph18179384'), - header = "If you computed EI (Bravo) values, please also cite:" + header = 'If you computed EI (Bravo) values, please also cite:' ) -bibentry(bibtype = "Article", - title = "A Methodological Analysis of Segregation Indexes", - author = c(as.person("Otis D. Duncan"), - as.person("Beverly Duncan")), - journal = "American Sociological Review", - year = "1955", - volume = "20", - number = "2", - pages = "210--217", - doi = "10.2307/2088328", +bibentry(bibtype = 'Article', + title = 'A Methodological Analysis of Segregation Indexes', + author = c(as.person('Otis D. Duncan'), + as.person('Beverly Duncan')), + journal = 'American Sociological Review', + year = '1955', + volume = '20', + number = '2', + pages = '210--217', + doi = '10.2307/2088328', textVersion = - paste("Otis D. Duncan, Beverly Duncan (1955).", - "A Methodological Analysis of Segregation Indexes.", - "American Sociological Review, 20(2), 210-217.", - "DOI:10.2307/2088328"), + paste('Otis D. Duncan, Beverly Duncan (1955).', + 'A Methodological Analysis of Segregation Indexes.', + 'American Sociological Review, 20(2), 210-217.', + 'DOI:10.2307/2088328'), - header = "If you computed DI (Duncan & Duncan) values, please also cite:" + header = 'If you computed DI (Duncan & Duncan) values, please also cite:' ) -bibentry(bibtype = "Article", - title = "Measurement of Inequality of Incomes", - author = c(as.person("Corrado Gini")), - journal = "The Economic Journal", - year = "1921", - volume = "31", - number = "121", - pages = "124--126", - doi = "10.2307/2223319", +bibentry(bibtype = 'Article', + title = 'Measurement of Inequality of Incomes', + author = c(as.person('Corrado Gini')), + journal = 'The Economic Journal', + year = '1921', + volume = '31', + number = '121', + pages = '124--126', + doi = '10.2307/2223319', textVersion = - paste("Corrado Gini (1921).", - "Measurement of Inequality of Incomes.", - "The Economic Journal, 31(121), 124-126.", - "DOI:10.2307/2223319"), + paste('Corrado Gini (1921).', + 'Measurement of Inequality of Incomes.', + 'The Economic Journal, 31(121), 124-126.', + 'DOI:10.2307/2223319'), - header = "If you retrieved Gini Index values, please also cite:" + header = 'If you retrieved Gini Index values, please also cite:' ) -bibentry(bibtype = "Article", - title = "Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension", - author = c(as.person("Justin M. Feldman"), - as.person("Pamela D. Waterman"), - as.person("Brent A. Coull"), - as.person("Nancy Krieger")), - journal = "Journal of Epidemiology and Community Health", - year = "2015", - volume = "69", - issue = "12", - pages = "1199--207", - doi = "10.1136/jech-2015-205728", +bibentry(bibtype = 'Article', + title = 'Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension', + author = c(as.person('Justin M. Feldman'), + as.person('Pamela D. Waterman'), + as.person('Brent A. Coull'), + as.person('Nancy Krieger')), + journal = 'Journal of Epidemiology and Community Health', + year = '2015', + volume = '69', + issue = '12', + pages = '1199--207', + doi = '10.1136/jech-2015-205728', textVersion = - paste("Justin M. Feldman, Pamela D. Waterman, Brent A. Coull, Nancy Krieger (2015).", - "Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension.", - "Journal of Epidemiology and Community Health, 69(12), 1199-207.", - "DOI:10.1136/jech-2015-205728"), + paste('Justin M. Feldman, Pamela D. Waterman, Brent A. Coull, Nancy Krieger (2015).', + 'Spatial social polarisation: using the Index of Concentration at the Extremes jointly for income and race/ethnicity to analyse risk of hypertension.', + 'Journal of Epidemiology and Community Health, 69(12), 1199-207.', + 'DOI:10.1136/jech-2015-205728'), - header = "If you computed ICE (Krieger) values, please also cite (1):" + header = 'If you computed ICE (Krieger) values, please also cite (1):' ) -bibentry(bibtype = "Article", - title = "Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes", - author = c(as.person("Nancy Krieger"), - as.person("Pamela D. Waterman"), - as.person("Jasmina Spasojevic"), - as.person("Wenhui Li"), - as.person("Wenhui Li"), - as.person("Gretchen Van Wye")), - journal = "American Journal of Public Health ", - year = "2016", - volume = "106", - issue = "2", - pages = "256--263", - doi = "10.2105/AJPH.2015.302955", +bibentry(bibtype = 'Article', + title = 'Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes', + author = c(as.person('Nancy Krieger'), + as.person('Pamela D. Waterman'), + as.person('Jasmina Spasojevic'), + as.person('Wenhui Li'), + as.person('Wenhui Li'), + as.person('Gretchen Van Wye')), + journal = 'American Journal of Public Health ', + year = '2016', + volume = '106', + issue = '2', + pages = '256--263', + doi = '10.2105/AJPH.2015.302955', textVersion = - paste("Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2016).", - "Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes.", - "American Journal of Public Health, 106(2), 256-263.", - "DOI:10.2105/AJPH.2015.302955"), + paste('Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2016).', + 'Public Health Monitoring of Privilege and Deprivation With the Index of Concentration at the Extremes.', + 'American Journal of Public Health, 106(2), 256-263.', + 'DOI:10.2105/AJPH.2015.302955'), - header = "And (2):" + header = 'And (2):' ) -bibentry(bibtype = "Article", - title = "The development of a standardized neighborhood deprivation index", - author = c(as.person("Lynne C. Messer"), - as.person("Barbara A. Laraia"), - as.person("Jay S. Kaufman"), - as.person("Janet Eyster"), - as.person("Claudia Holzman"), - as.person("Jennifer Culhane"), - as.person("Irma Elo"), - as.person("Jessica Burke"), +bibentry(bibtype = 'Article', + title = 'The development of a standardized neighborhood deprivation index', + author = c(as.person('Lynne C. Messer'), + as.person('Barbara A. Laraia'), + as.person('Jay S. Kaufman'), + as.person('Janet Eyster'), + as.person('Claudia Holzman'), + as.person('Jennifer Culhane'), + as.person('Irma Elo'), + as.person('Jessica Burke'), as.person("Patricia O'Campo")), - journal = "Journal of Urban Health", - year = "2006", - volume = "83", - number = "6", - pages = "1041--1062", - doi = "10.1007/s11524-006-9094-x", + journal = 'Journal of Urban Health', + year = '2006', + volume = '83', + number = '6', + pages = '1041--1062', + doi = '10.1007/s11524-006-9094-x', textVersion = paste("Lynne C. Messer, Barbara A. Laraia, Jay S. Kaufman, Janet Eyster, Claudia Holzman, Jennifer Culhane, Irma Elo, Jessica Burke, Patricia O'Campo (2006).", - "The development of a standardized neighborhood deprivation index.", - "Journal of Urban Health, 83(6), 1041-1062.", - "DOI:10.1007/s11524-006-9094-x"), + 'The development of a standardized neighborhood deprivation index.', + 'Journal of Urban Health, 83(6), 1041-1062.', + 'DOI:10.1007/s11524-006-9094-x'), - header = "If you computed NDI (Messer) values, please also cite:" + header = 'If you computed NDI (Messer) values, please also cite:' ) -bibentry(bibtype = "Article", - title = "Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county", - author = c(as.person("Marcus A. Andrews"), - as.person("Kosuke Tomura"), - as.person("Sophie E. Claudel"), - as.person("Samantha Xu"), - as.person("Joniqua N. Ceasar"), - as.person("Billy S. Collins"), - as.person("Steven Langerman"), - as.person("Valerie M. Mitchell"), - as.person("Yvonne Baumer"), - as.person("Tiffany M. Powell-Wiley")), - journal = "Journal of Maps", - year = "2020", - volume = "16", - issue = "1", - pages = "101--112", - doi = "10.1080/17445647.2020.1750066", +bibentry(bibtype = 'Article', + title = 'Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county', + author = c(as.person('Marcus A. Andrews'), + as.person('Kosuke Tomura'), + as.person('Sophie E. Claudel'), + as.person('Samantha Xu'), + as.person('Joniqua N. Ceasar'), + as.person('Billy S. Collins'), + as.person('Steven Langerman'), + as.person('Valerie M. Mitchell'), + as.person('Yvonne Baumer'), + as.person('Tiffany M. Powell-Wiley')), + journal = 'Journal of Maps', + year = '2020', + volume = '16', + issue = '1', + pages = '101--112', + doi = '10.1080/17445647.2020.1750066', textVersion = - paste("Marcus A. Andrews, Kosuke Tomura, Sophie E. Claudel, Samantha Xu, Joniqua N. Ceasar, Billy S. Collins, Steven Langerman, Valerie M. Mitchell, Yvonne Baumer, Tiffany M. Powell-Wiley (2022).", - "Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county.", - "Journal of Maps, 16(1), 101-112.", - "DOI:10.1080/17445647.2020.1750066"), + paste('Marcus A. Andrews, Kosuke Tomura, Sophie E. Claudel, Samantha Xu, Joniqua N. Ceasar, Billy S. Collins, Steven Langerman, Valerie M. Mitchell, Yvonne Baumer, Tiffany M. Powell-Wiley (2022).', + 'Geospatial analysis of neighborhood deprivation index (NDI) for the United States by county.', + 'Journal of Maps, 16(1), 101-112.', + 'DOI:10.1080/17445647.2020.1750066'), - header = "If you computed NDI (Powell-Wiley) values, please also cite (1):" + header = 'If you computed NDI (Powell-Wiley) values, please also cite (1):' ) -bibentry(bibtype = "Article", - title = "Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group", - author = c(as.person("Beth A. Slotman"), - as.person("David G Stinchcomb"), - as.person("Tiffany M. Powell-Wiley"), - as.person("Danielle M. Ostendorf"), - as.person("Brian E. Saelens"), - as.person("Amy A. Gorin"), - as.person("Shannon N. Zenk"), - as.person("David Berrigan")), - journal = "Data in Brief", - year = "2022", - volume = "41", - pages = "108002", - doi = "10.1016/j.dib.2022.108002", +bibentry(bibtype = 'Article', + title = 'Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group', + author = c(as.person('Beth A. Slotman'), + as.person('David G Stinchcomb'), + as.person('Tiffany M. Powell-Wiley'), + as.person('Danielle M. Ostendorf'), + as.person('Brian E. Saelens'), + as.person('Amy A. Gorin'), + as.person('Shannon N. Zenk'), + as.person('David Berrigan')), + journal = 'Data in Brief', + year = '2022', + volume = '41', + pages = '108002', + doi = '10.1016/j.dib.2022.108002', textVersion = - paste("Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2022).", - "Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group.", - "Data in Brief, 41, 108002.", - "DOI:10.1016/j.dib.2022.108002"), + paste('Beth A. Slotman, David G Stinchcomb, Tiffany M. Powell-Wiley, Danielle M. Ostendorf, Brian E. Saelens, Amy A. Gorin, Shannon N. Zenk, David Berrigan (2022).', + 'Environmental data and methods from the Accumulating Data to Optimally Predict Obesity Treatment (ADOPT) core measures environmental working group.', + 'Data in Brief, 41, 108002.', + 'DOI:10.1016/j.dib.2022.108002'), - header = "And (2):" + header = 'And (2):' ) -bibentry(bibtype = "Article", - title = "Social Structure and Anomie", - author = c(as.person("Robert K. Merton")), - journal = "American Sociological Review", - year = "1938", - volume = "3", - number = "5", - pages = "672--682", - doi = "10.2307/2084686 ", +bibentry(bibtype = 'Article', + title = 'Social Structure and Anomie', + author = c(as.person('Robert K. Merton')), + journal = 'American Sociological Review', + year = '1938', + volume = '3', + number = '5', + pages = '672--682', + doi = '10.2307/2084686 ', textVersion = - paste("Robert K. Merton (1938).", - "Social Structure and Anomie.", - "American Sociological Review, 3(5), 672-682.", - "DOI:10.2307/2084686 "), + paste('Robert K. Merton (1938).', + 'Social Structure and Anomie.', + 'American Sociological Review, 3(5), 672-682.', + 'DOI:10.2307/2084686 '), - header = "If you computed LQ (Sudano) values, please also cite (1):" + header = 'If you computed LQ (Sudano) values, please also cite (1):' ) -bibentry(bibtype = "Article", - title = "Neighborhood racial residential segregation and changes in health or death among older adults", - author = c(as.person("Joseph J. Sudano"), - as.person("Adam Perzynski"), - as.person("David W. Wong"), - as.person("Natalie Colabianchi"), - as.person("David Litaker")), - journal = "Health & Place", - year = "2013", - volume = "19", - pages = "80--88", - doi = "10.1016/j.healthplace.2012.09.015", +bibentry(bibtype = 'Article', + title = 'Neighborhood racial residential segregation and changes in health or death among older adults', + author = c(as.person('Joseph J. Sudano'), + as.person('Adam Perzynski'), + as.person('David W. Wong'), + as.person('Natalie Colabianchi'), + as.person('David Litaker')), + journal = 'Health & Place', + year = '2013', + volume = '19', + pages = '80--88', + doi = '10.1016/j.healthplace.2012.09.015', textVersion = - paste("Joseph J. Sudano, Adam Perzynski, David W. Wong, Natalie Colabianchi, David Litaker (2013).", - "Neighborhood racial residential segregation and changes in health or death among older adults.", - "Health & Place, 19, 80-88.", - "DOI:10.1016/j.healthplace.2012.09.015"), + paste('Joseph J. Sudano, Adam Perzynski, David W. Wong, Natalie Colabianchi, David Litaker (2013).', + 'Neighborhood racial residential segregation and changes in health or death among older adults.', + 'Health & Place, 19, 80-88.', + 'DOI:10.1016/j.healthplace.2012.09.015'), - header = "And (2):" + header = 'And (2):' ) -bibentry(bibtype = "Article", - title = "A Probability Model for the Measurement of Ecological Segregation", - author = c(as.person("Wendell Bell")), - journal = "Social Forces", - year = "1954", - volume = "32", - issue = "4", - pages = "357--364", - doi = "10.2307/2574118", +bibentry(bibtype = 'Article', + title = 'A Probability Model for the Measurement of Ecological Segregation', + author = c(as.person('Wendell Bell')), + journal = 'Social Forces', + year = '1954', + volume = '32', + issue = '4', + pages = '357--364', + doi = '10.2307/2574118', textVersion = - paste("Wendell Bell (1954).", - "A Probability Model for the Measurement of Ecological Segregation.", - "Social Forces, 32(4), 357-364.", - "DOI:10.2307/2574118"), + paste('Wendell Bell (1954).', + 'A Probability Model for the Measurement of Ecological Segregation.', + 'Social Forces, 32(4), 357-364.', + 'DOI:10.2307/2574118'), - header = "If you computed V (White) values, please also cite (1):" + header = 'If you computed V (White) values, please also cite (1):' ) -bibentry(bibtype = "Article", - title = "Segregation and Diversity Measures in Population Distribution", - author = c(as.person("Michael J. White")), - journal = "Population Index", - year = "1986", - volume = "52", - issue = "2", - pages = "198--221", - doi = "10.2307/3644339", +bibentry(bibtype = 'Article', + title = 'Segregation and Diversity Measures in Population Distribution', + author = c(as.person('Michael J. White')), + journal = 'Population Index', + year = '1986', + volume = '52', + issue = '2', + pages = '198--221', + doi = '10.2307/3644339', textVersion = - paste("Michael J. White (1986).", - "Segregation and Diversity Measures in Population Distribution.", - "Population Index, 52(2), 198-221.", - "DOI:10.2307/3644339"), + paste('Michael J. White (1986).', + 'Segregation and Diversity Measures in Population Distribution.', + 'Population Index, 52(2), 198-221.', + 'DOI:10.2307/3644339'), - header = "And (2):" + header = 'And (2):' +) + +bibentry(bibtype = 'Article', + title = 'Interstate Redistribution of Population, 1850-1940', + author = c(as.person('Edgar M. Hoover')), + journal = 'Journal of Economic History', + year = '1941', + volume = '1', + pages = '199--205', + doi = '10.2307/2223319', + + textVersion = + paste('Edgar M. Hoover (1941).', + 'Interstate Redistribution of Population, 1850-1940.', + 'Journal of Economic History, 1, 199-205.', + 'DOI:10.2307/2223319'), + + header = 'If you computed DEL (Hoover) values, please also cite (1):' +) + +bibentry(bibtype = 'Book', + title = 'Statistical Geography: Problems in Analyzing Area Data', + author = c(as.person('Otis D. Duncan'), + as.person('Ray P. Cuzzort'), + as.person('Beverly Duncan')), + year = '1961', + publisher = 'Free Press', + lc = '60007089', + + textVersion = + paste('Otis D. Duncan, Ray P. Cuzzort, & Beverly Duncan (1961).', + 'Statistical Geography: Problems in Analyzing Area Data.', + 'Free Press', + 'LC:60007089'), + + header = 'And (2):' ) diff --git a/man/anthopolos.Rd b/man/anthopolos.Rd index 26043dd..98d55e7 100644 --- a/man/anthopolos.Rd +++ b/man/anthopolos.Rd @@ -2,12 +2,12 @@ % Please edit documentation in R/anthopolos.R \name{anthopolos} \alias{anthopolos} -\title{Racial Isolation Index based on Anthopolos \emph{et al.} (2011)} +\title{Racial Isolation Index based on Anthopolos et al. (2011)} \usage{ anthopolos(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) } \arguments{ -\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}.} +\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -29,30 +29,30 @@ An object of class 'list'. This is a named list with the following components: Compute the spatial Racial Isolation Index (Anthopolos) of selected subgroup(s). } \details{ -This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos \emph{et al.} (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone\code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone\code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. @@ -62,15 +62,23 @@ A census geography (and its neighbors) that has nearly all of its population who \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Tract-level metric (2020) - anthopolos(geo = "tract", state = "GA", - year = 2020, subgroup = c("NHoLB", "HoLB")) - + anthopolos( + geo = 'tract', + state = 'GA', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + ) + # County-level metric (2020) - anthopolos(geo = "county", state = "GA", - year = 2020, subgroup = c("NHoLB", "HoLB")) - + anthopolos( + geo = 'county', + state = 'GA', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + ) + } } diff --git a/man/atkinson.Rd b/man/atkinson.Rd index 6950807..9d1f376 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -16,9 +16,9 @@ atkinson( ) } \arguments{ -\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} -\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -47,47 +47,52 @@ Compute the aspatial Atkinson Index of income or selected racial/ethnic subgroup \details{ This function will compute the aspatial Atkinson Index (AI) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of AI for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = "MedHHInc"}, the metric will be computed for median household income ("B19013_001"). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. AI is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). -The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For \code{0.5 < epsilon <= 1.0} or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques \emph{et al.} (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. +The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Atkinson Index of non-Hispanic Black populations ## of census tracts within Georgia, U.S.A., counties (2020) - atkinson(geo_large = "county", geo_small = "tract", state = "GA", - year = 2020, subgroup = "NHoLB") - + atkinson( + geo_large = 'county', + geo_small = 'tract', + state = 'GA', + year = 2020, + subgroup = 'NHoLB' + ) + } } diff --git a/man/bell.Rd b/man/bell.Rd index a0743a4..58ee254 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -16,9 +16,9 @@ bell( ) } \arguments{ -\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} -\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -49,43 +49,49 @@ This function will compute the aspatial Isolation Index (II) of selected racial/ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Isolation of non-Hispanic Black vs. non-Hispanic white populations ## of census tracts within Georgia, U.S.A., counties (2020) - bell(geo_large = "county", geo_small = "tract", state = "GA", - year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") - + bell( + geo_large = 'county', + geo_small = 'tract', + state = 'GA', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW' + ) + } } diff --git a/man/bemanian_beyer.Rd b/man/bemanian_beyer.Rd index 69bebf6..cf2a1c0 100644 --- a/man/bemanian_beyer.Rd +++ b/man/bemanian_beyer.Rd @@ -16,9 +16,9 @@ bemanian_beyer( ) } \arguments{ -\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} -\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -49,26 +49,26 @@ This function will compute the aspatial Local Exposure and Isolation (LEx/Is) me The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. @@ -77,17 +77,23 @@ LEx/Is is a measure of the probability that two individuals living within a spec LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Isolation of non-Hispanic Black vs. non-Hispanic white populations ## of census tracts within Georgia, U.S.A., counties (2020) - bemanian_beyer(geo_large = "county", geo_small = "tract", state = "GA", - year = 2020, subgroup = "NHoLB", subgroup_ixn = "NHoLW") - + bemanian_beyer( + geo_large = 'county', + geo_small = 'tract', + state = 'GA', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW' + ) + } } diff --git a/man/bravo.Rd b/man/bravo.Rd index 53727d9..396390a 100644 --- a/man/bravo.Rd +++ b/man/bravo.Rd @@ -2,12 +2,12 @@ % Please edit documentation in R/bravo.R \name{bravo} \alias{bravo} -\title{Educational Isolation Index based on Bravo \emph{et al.} (2021)} +\title{Educational Isolation Index based on Bravo et al. (2021)} \usage{ bravo(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) } \arguments{ -\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}.} +\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -29,15 +29,15 @@ An object of class 'list'. This is a named list with the following components: Compute the spatial Educational Isolation Index (Bravo) of selected educational attainment category(ies). } \details{ -This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo \emph{et al.} (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. +This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B06009_002}: Less than high school graduate \code{"LtHS"} -\item \strong{B06009_003}: High school graduate (includes equivalency) \code{"HSGiE"} -\item \strong{B06009_004}: Some college or associate's degree \code{"SCoAD"} -\item \strong{B06009_005}: Bachelor's degree \code{"BD"} -\item \strong{B06009_006}: Graduate or professional degree \code{"GoPD"} +\item \strong{B06009_002}: Less than high school graduate \code{'LtHS'} +\item \strong{B06009_003}: High school graduate (includes equivalency) \code{'HSGiE'} +\item \strong{B06009_004}: Some college or associate's degree \code{'SCoAD'} +\item \strong{B06009_005}: Bachelor's degree \code{'BD'} +\item \strong{B06009_006}: Graduate or professional degree \code{'GoPD'} } Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the \strong{B15002} question. @@ -48,15 +48,23 @@ A census geography (and its neighbors) that has nearly all of its population wit \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Tract-level metric (2020) - bravo(geo = "tract", state = "GA", - year = 2020, subgroup = c("LtHS", "HSGiE")) - + bravo( + geo = 'tract', + state = 'GA', + year = 2020, + subgroup = c('LtHS', 'HSGiE') + ) + # County-level metric (2020) - bravo(geo = "county", state = "GA", - year = 2020, subgroup = c("LtHS", "HSGiE")) - + bravo( + geo = 'county', + state = 'GA', + year = 2020, + subgroup = c('LtHS', 'HSGiE') + ) + } } diff --git a/man/duncan.Rd b/man/duncan.Rd index b626abd..0c19fc5 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -16,9 +16,9 @@ duncan( ) } \arguments{ -\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} -\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -49,43 +49,49 @@ This function will compute the aspatial Dissimilarity Index (DI) of selected rac The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. DI can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Dissimilarity Index of non-Hispanic Black vs. non-Hispanic white populations ## of census tracts within Georgia, U.S.A., counties (2020) - duncan(geo_large = "county", geo_small = "tract", state = "GA", - year = 2020, subgroup = "NHoLB", subgroup_ref = "NHoLW") - + duncan( + geo_large = 'county', + geo_small = 'tract', + state = 'GA', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW' + ) + } } diff --git a/man/figures/del.png b/man/figures/del.png new file mode 100644 index 0000000000000000000000000000000000000000..02ef68370cc72af31d3b6986313967fee519b238 GIT binary patch literal 378401 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

tdKmaT485G>b{8(d@fggk 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�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�HZrS?(8Ha-qOElsi^en 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

f8|d#2s4^&553jtvhmb<{cep6RgyCST z8uS~{Pv4BYHz__IA{$3hacQBZyA&{-tWG#5C*?0HGk?bUi`ohLXh55uKaa@G%}q{D zZftCf4Ih{e`>zl6~QBu5p-AQl-HzE`s3aM70_9>w6y$j z68Kw1z+b-4{vhZnjQOXhwHPDrPL0@DE}ZAyI2x@~z%#wY-IxHxf8T?>s8rK^!>S_ z4J|AR<9?{L;-Dacj`ZO8m>dA{*DRqQLNL)VuM(AC6ne=Un(^B%$Uv(J3k@85!C-uM ze;+b7>{;2*=KAM%u*l-H)oRZj*4Gl=PTJz}gv>hWe@ymg5|eJr@E7#xH85n_T4A&X zJ@x0$cq53m{OJdpotGc6$4*(W?8`W2{v3WP3v9EGS1?&p&7(!Q@BN{K+1bTKA%+!9 z%LphxM@KsX4Qk!&MV;8=`08rjkj29hjGIl34Od)B9&-cxV}pxvWJzH{1UUc4MO^E`E7rc!;!%L%WwL;Q`s|{CsK%5W=t} zm2cQu%*;sw&SjC2Lsz`zm>HSH{Eo^K$z@M=nz<#Fm;PQ*mfC~!H9R-i)k;gWgdLjl zlnt$3e6~_lkb9J!ddwJ-9$PwJEJv2nx=7)puw*({^jOWEu&>Fm{GQmuhYt-(PfFvZ zBjljS`l$>hfq!Asqd>7Sm3>?*0tqRn`l|&!e&WUC2ItI_9FrbLx}dXRm1vFRT}~T9 z$x@hX+;~zO7XXZ&xu{-Oh90J(dPe8D|! z(G3r7pQ3VRrV7H8TO|D7Bh&`YAuBI$>Bd=M?EHuA?d@o0?KJ+VS#xk>u6K1*S0C>P zr`E;9BwAizckR2XIdWLCP<98K{Q#Pu020Cl=ctpD)5-aHZA}g4S4YCvI}~BkIDtVP z&+2rBbJEbFvOl56T`yp3TabyZK9l)@#a+BSJeFrNH1kC0PQRG8KkvQhcfs{&gU!KW=suWEBKYS1cHObt^k#A- zPQ2typ3ERWN1HEmEU7Q{vm*M51h+#43|w>EM3!!h(lS`MS=_w4DKAbu`Ps19_fCBI zSBgv&h#v5`u2WbkZq!fB$u+9gxGVwS``x2~RkC>vFx&iFwDo18oud@Ul` z^2tKPV2mF?umiPOpIhy@h2ZV2VcBDcLc!_iLljNlMi2X6zl&sxSv=oKZ@zCOS9D&h zSUpVMmTinJ&QXf>Q_jSzsBi{0Hx6pJn!30nWB1-zc>G(;jbJrDF%PkN5%ISO2&chFwt0%iCGE-SYtz^A8!qhjqQw=E`k*e3BLJa#yDr`;%7U|fnp(h zG~Xten}U4Z9UkQkRX0DMV_-Ci6wk)u$AZfKYzzTWTbt_ztK-V9Z3)*?6bt$KE6wTu zOiXC8#iVSupQFI|e}EK4Y;}#ir4?u4*Uw=B0;}t-@0_X9IKOwS|Ab2BH^yXTckTQL zyibrWrgWLx>l$j70nxvu>IFBf@7X$DPRF&t5j+f4f^IN0eA?oqXtmprZW!2y*ypJTEQ5NXC%CPeZ^Y=%d`9O~(ik%Ie zhSQ%E395j@U7`9v@*LXQzE*dn&}#x!j6sZ3tX=yJPFt|9qobw0i+IabJRQpqy|(_K z{x*m1gRSj}A&zg`0v;G*qQzb>!W{xKB!~53_tDc6F(kw?0e<8M%y6T=`4$2Ki#b~! zWvYi%Ozcqve-WN^H;G`d81BRmNJDvfzzO#N9zM`M0p!6H#csflB5rTb zs=J)+Q^`8l&>SF5e+CK)Y7@C6irP5Eep>8HhhLMjvfq;HBYrmRPH-UQ(z5!d>vhaO zU}R#tCl)t+ekKFJndI>UzW8++{L!b$770Q6?5{+cru(suEqR_v ze}wuygtqW&kh+aiR4Y5gIBYM5lzsIWDQnXP)lK%U}X zBWnnAc{~4p-|2Ne{Gg?U1=z_0hsVcr>Tnd*8-X`N7(oNxydfmKds~%rSNna!H@Oc9 zoZ|y)ebJ_L%r34=Ii>i|V#=GIAh|V!R^Jip=nuOxdptu@W@UD7TM&||ZN759uoUSW z4Yl=AG&VAV2MUFhj~L}lDSfyAZz}WUeQU0U)9>f-8n3dfFq74#)?ozrEX-_R_L2UX zpSV8S__CuWCPTtH%VT_4j$UkPCU_3+w(& zeM&EJ&4_G#k)1-xg&>mp?+gm&jU$>MTpuEB-6v7(dm1T8yvvJ z&%l5xI9y;Ae`>1>u`8db6{l%jI=gmb$5^XVtZ6tP`vI#Sf>=&TN!Yf?XIUZs-)Fus zp&ev0_tbc8lolNxbKVv0nWtw96IBr1N9|Eb$I_(Nc7D%>j4Bhw~I&!ohi>nA#ARH%f zf%4?)@AcBpF9=DJnUL^ZV}s>N;b)Zz4MCo|n9J44HDa6Dq!Hfc~D$z|aeM!2-$s|fm6ud5iu zRu7z)lLpw3B~#_6dTqxGN~tf`LhcA)J*E6KVX9T1{=dg=rL@{pIyxFe<%wxCLnA#y zLzR~=pE~jc(y{D50skIglm|!B(c<54-0xGqCwk!GOBh+aVtS*yhe){A_V%f%Dah-A zUCb#iwwRd1qqT!Acggq_PVo?_o^CZ!JZS=#f4d22!N`Q%)M-^NO47lBqM<=ZQkf=z zM~jOd}51`Cnzd8fgHEdAL|I2mzNAE*g0ezK)Mi$2o6l9%)X`CJWPD}>zRF8B8+juX9QSzo-A9`S zfIPo2LQb^ydX5PvaM3}Fr*wZXg-w*&L;{m=erG{{Yk}?E)p;rB3wcz6?W_888$<2< z_1h}CjQC_vzDv?lO-L%JeSW`s>5HH%&3+&Vv3~rAsZC2q=oEwNgHCD3{qTCF z!r#?pZq^vzSyPJ`nS-CsR*E}61ts*m=yp7kd;jbtj#1-$G<8+ z(mV=GqmQ7HIaP~*A3+C0B@_5LoJKO7Jpz7{`AOy`-iZ>?zCz&xasqII2*6IG&)ff! zz3&>B1_K;x5*B)TinA~WVha zUD&Pu&|F8|hJ-~#{PvBZz~#t1u+6P3EF0~qkAD?)`F1DWZ^2Fy`ZhUPx7SG<9B+^( zK_gQ*=N8!0mhR^S#Cj)MIqE5nzmt{K+y5r6^6_05B^5OMYlt$oL0m6X7WFCE!*MFM4{ih@ZEzMCm=v;g#K6c++a)A3nrT6|l0x>bM zPrqW9uI1Z%I`z(;W8p1+%SY|ol7gFjse4YzrYVKZEQ_Wk)&jh|r@+DKlvNUZO)Vs-Bi&P2F1)Mj z=2F2}WPyt5LEwYu(t9&}g zwjt8q+Xmq@r*B>MCJy9xuIKMB;IJ{%7-*Fg=D#>N30vKzq)O%CsOQ-h5!)Mi+mpYY zLk~zAx78b`R|LM1KRY<*67|Z}#i^bYRz84A^Xm4$;$c>gTZ)#BF7MT(Ccgyu(t*UY zr^if*Eqx4RK*HA-k>TNN`b|Cv<{J#M1Rj4!8QZhi(9pv! z0vG(CK=y#=5p79owV)82>2Ya>r_@yJ@oI>*&D;|+oRCG(q}BpSTUEi+~6DhAVV}0lAj%mlIriS)YasmZ--(6DKcF|DzG)xQhO;4_R zxD13|PqlupL=DU+d%joxe9!azjD?>&|KmGK?=~b?-x?nYC-{Z^Tx0&Svs}t5>55LH z+;sjx>~FvHXZIB_n>-*hp_FoaLy=a>r+N?;vsV^Z=;&X@4)VV*K?fK+%V?h%DvH}z zf_L``m$!dgSfsYEQ2Ia*2uSH_i0m4~8pu9-1_h~@xVSL!eGY2+UxkfVx#pf13zw!p z9ystePUeD)59AqN7}UUa4Xo?I6+=GwlMW#PpZi;B3-Kvm;)(MG%R$n`McSJ4f&j8m z{c#w0KxE+OdRWz{&)-nT8=$`9JiY3-b|ed(S<<2)X}?nEfXqyjo}-~|8D#(Q_v9n*s|1`40Bq=qQ}N_l^2 zP326F5tP{X6h^v*{59+4x%!m7Ko%y;4yUUis#ZZjAQJsM;GW$7_KkIPz!DE-4dZru zcyjOvp>C)W-792VY76G<{TtQ|%F$*PUXtt_98jx2LPtjjJ&>WGtt*e~8E@U`08L=V%f^PxZ*?EGtzA+|zbzdk zb!8uGjSkNHOPpd75eQh@g(XIwLK_u@KkBx>)^M&7H~qSv-%CuJ6`g@TFOwgellDtz zgO;sPPxO%YZIacHI~N3XFnkkH`&V4zN>uSBR7Dn^ZN;svh3wjfTEF{K@`Ph#r0reZ zeio?jpnm|^2mT9Nf(OsInwC}_v`;xXIilW3Ob_^+A{uv^8m}I`SzoA;HbIXu#|%t+ z3_%7A3}9wu1*R!*EiR_#=Lcb*@z}JW&Hi`3J$psRpIF4Vy6=r#kIRKfX$Sn@g9Eac z2pdeseF;vF*XITmt}WFbf4OvDAKgWBG%&nHmPN1A!%(EXkJg>07Zvo58=e~&ZE$k( zQWmeNYJTs3g9~GljcfH!izmgpq|&u{MT(;SBA>0PIOioE2lWKT@%RwlzMt=R%->;U+hgrKPjUW4vHVQktch2`WV!9qoNA?bM|0${emID2V;gB<8 zJ+b+kC3>E$*W+7M6q1X;QR7YqRd@~uF${z$Az=&~s~NP+H$(*!6OdK^?41_a?ioAE zm_FMcTv|c*HAFE{puZ!j4CGX}09dQ2tOS2ofWhB!aGjf-toHeb)TyYPZfp^cJquEO zFnE63zmW`2A>uc5_laLJYxEyw_4MA8{dk>0pTKyfzQ2CCFj--jK~MHu?ZN&p)|QE8 z?r0BQ2+hH0e;2&@hEY+$&Vkl6PTsSjYivPB&|!ZkSz(AY=vD{Hgs=A)3%NYmap#{2 za)qNm71x(1?Q7io@L)pU-04w8XfEluRtrp1NH(==#9a$0#gfuFa8>{&%xUL7113D*Fe@Y9~sCZ)s%k32v@rA@@n3)X&Y$H8)eY zbaEM8e8LoSNiSH<{_Jy(@r)ez+GaI}z}*YQ>&EqEZ%X zq@-McQu27E;-^)J%i0X8==`>)j+V#b^R`M|GVE{WCgzdZWwxxG9Ne$p;&g0ac+Ea| z^4++VPR05Ye4QPGo8vee{!t%?0b20bgu({D-4r#8zO8sanXKC$!aTUf|PsER7wnfV~V zY+|tbalAjoVL+|;?Kbx7Ut#sq^g<SgalmZIbyx?EiAZDS;V�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

T9c#Lf{vC#%aEMRCG z?$+Z)Iz{n1+@6bvPRUnQ#hxOJ6SLcz#YP+}?KknNn%Wd7KX#hnZC$+c7uRaf)oSu;kf_y9meMPeRvM{ z(e4(5gI1kCDTP+E1>0fj(3t6B2d9XDr!8rq@cXxlsDZ*XapJ#GBgJVjgZ$oCh!bH3 z2?MrY?>jgs!56x}w-Ii+U$n{G<$dizlS5~rZ?1|hfrD%`QwDN7P>|CJwM0oSA5HJS z3!fb89)waLRGWq)_Qiqxw;3NaI_xUQ$q{+=#M``}atr4tVh7FIzrMYCe0T`+4NZ34 z5|+{ltNflB@F9;JHdBHYZFog0jfakXbSf}nSKG-{`p_?L2VX@{Tw>>I#D>+&yr7U+&rVooA0%hsAkiEecs!4zXIMCd8iJ)nSae zHl!c?TmXW1zKfktyWZbu1oB!=PNCsh3{&i+P9~~tZ<}D)w zn;Id<#PpaJO{7JuGX*2@(UPQa#m95_!Ve{u(iZqbx|^Oy$sGB*$;T>T#`L`l*At)D z7-ucWle_e)5-l*JFR#9~8$Uj$j=QUkbLCt=*e78sUg;ow)QJ_r4{LD!D4l6lrrf+( zJfm+6rpTa-3;%B|nwXn&c|Sck9|JV$WgtBGeDVcF1<*C{f!actt3nOXleLwVr@)qA z`Q4xP@%}6@udg2|2>Qb^N)y%U6r8Y8EK8i|9i4HmI$7nhV}4-~*Ax5g&AK73(03HV z;}=884GD>e*t5nbU#DM}Q4ecNa(Z#Z);+5UXUe8^RS z5C;pB{jfQABFb!LN48xss$G9u*(6xV1~BKVlaw z^h#5}7QCElZq5p1K9eB!je-5Q_E1vAqrfP$uDfsqTrjSI15ZXuD#RdD5FVs4fJ+O! zb@-^LmD%pr)Sll`lgO2)Fq37iwP<2rs(- zF)|%%bFK0kYOyE@ZA+WA?7u0+Rxb-r32Ab?Zh+QeToE>q^kCt;QqdRGz5hi_x8(VV zhfI)+@6PslA�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 literal 0 HcmV?d00001 diff --git a/man/gini.Rd b/man/gini.Rd index d9b1976..0a83558 100644 --- a/man/gini.Rd +++ b/man/gini.Rd @@ -7,7 +7,7 @@ gini(geo = "tract", year = 2020, quiet = FALSE, ...) } \arguments{ -\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}.} +\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -33,18 +33,18 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -According to the U.S. Census Bureau \url{https://www.census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html}: "The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution." +According to the U.S. Census Bureau \url{https://www.census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html}: 'The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution.' } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Tract-level metric (2020) - gini(geo = "tract", state = "GA", year = 2020) - + gini(geo = 'tract', state = 'GA', year = 2020) + # County-level metric (2020) - gini(geo = "county", state = "GA", year = 2020) - + gini(geo = 'county', state = 'GA', year = 2020) + } } diff --git a/man/hoover.Rd b/man/hoover.Rd new file mode 100644 index 0000000..ec9edca --- /dev/null +++ b/man/hoover.Rd @@ -0,0 +1,96 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/hoover.R +\name{hoover} +\alias{hoover} +\title{Delta based on Hoover (1941) and Duncan et al. (1961)} +\usage{ +hoover( + geo_large = "county", + geo_small = "tract", + year = 2020, + subgroup, + omit_NAs = TRUE, + quiet = FALSE, + ... +) +} +\arguments{ +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} + +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} + +\item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} + +\item{subgroup}{Character string specifying the racial/ethnic subgroup(s). See Details for available choices.} + +\item{omit_NAs}{Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE.} + +\item{quiet}{Logical. If TRUE, will display messages about potential missing census information. The default is FALSE.} + +\item{...}{Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics} +} +\value{ +An object of class 'list'. This is a named list with the following components: + +\describe{ +\item{\code{del}}{An object of class 'tbl' for the GEOID, name, and DEL at specified larger census geographies.} +\item{\code{del_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DEL.} +} +} +\description{ +Compute the aspatial Delta (Hoover) of a selected racial/ethnic subgroup(s) and U.S. geographies. +} +\details{ +This function will compute the aspatial Delta (DEL) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of DEL for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). + +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +\itemize{ +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +} + +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. + +DEL is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. DEL can range in value from 0 to 1. + +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DEL value returned is NA. +} +\examples{ +\dontrun{ +# Wrapped in \dontrun{} because these examples require a Census API key. + + # Delta (a measure of concentration) of non-Hispanic Black vs. non-Hispanic white populations + ## of census tracts within Georgia, U.S.A., counties (2020) + hoover( + geo_large = 'county', + geo_small = 'tract', + state = 'GA', + year = 2020, + subgroup = 'NHoLB' + ) + +} + +} +\seealso{ +\code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +} diff --git a/man/krieger.Rd b/man/krieger.Rd index 2a09ec4..de13069 100644 --- a/man/krieger.Rd +++ b/man/krieger.Rd @@ -2,12 +2,12 @@ % Please edit documentation in R/krieger.R \name{krieger} \alias{krieger} -\title{Index of Concentration at the Extremes based on Feldman \emph{et al.} (2015) and Krieger \emph{et al.} (2016)} +\title{Index of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016)} \usage{ krieger(geo = "tract", year = 2020, quiet = FALSE, ...) } \arguments{ -\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}.} +\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -27,7 +27,7 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Index of Concentration at the Extremes (Krieger). } \details{ -This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman \emph{et al.} (2015) \doi{10.1136/jech-2015-205728} and Krieger \emph{et al.} (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: +This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: \itemize{ \item \strong{Income}: 80th income percentile vs. 20th income percentile @@ -53,13 +53,13 @@ ICE metrics can range in value from -1 (most deprived) to 1 (most privileged). A \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Tract-level metric (2020) - krieger(geo = "tract", state = "GA", year = 2020) - + krieger(geo = 'tract', state = 'GA', year = 2020) + # County-level metric (2020) - krieger(geo = "county", state = "GA", year = 2020) - + krieger(geo = 'county', state = 'GA', year = 2020) + } } diff --git a/man/messer.Rd b/man/messer.Rd index b9c4f5e..5294391 100644 --- a/man/messer.Rd +++ b/man/messer.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/messer.R \name{messer} \alias{messer} -\title{Neighborhood Deprivation Index based on Messer \emph{et al.} (2006)} +\title{Neighborhood Deprivation Index based on Messer et al. (2006)} \usage{ messer( geo = "tract", @@ -15,7 +15,7 @@ messer( ) } \arguments{ -\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}.} +\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available.} @@ -42,7 +42,7 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Neighborhood Deprivation Index (Messer). } \details{ -This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer \emph{et al.} (2006) \doi{10.1007/s11524-006-9094-x}. +This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: \itemize{ @@ -59,11 +59,11 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. -The continuous NDI (Messer) values are z-transformed, i.e., "standardized," and the categorical NDI (Messer) values are quartiles of the standardized continuous NDI (Messer) values. +The continuous NDI (Messer) values are z-transformed, i.e., 'standardized,' and the categorical NDI (Messer) values are quartiles of the standardized continuous NDI (Messer) values. Check if the proportion of variance explained by the first principal component is high (more than 0.5). -Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer \emph{et al.} (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). +Users can bypass \code{\link[tidycensus]{get_acs}} by specifying a pre-formatted data frame or tibble using the \code{df} argument. This function will compute an index using the first component of a principal component analysis (PCA) with a Varimax rotation (the default for \code{\link[psych]{principal}}) and only one factor (note: PCA set-up not unspecified in Messer et al. (2006)). The recommended structure of the data frame or tibble is an ID (e.g., GEOID) in the first feature (column), followed by the variables of interest (in any order) and no additional information (e.g., omit state or county names from the \code{df} argument input). } \examples{ @@ -73,13 +73,13 @@ messer(df = DCtracts2020[ , c(1, 3:10)]) # Wrapped in \dontrun{} because these examples require a Census API key. # Tract-level metric (2020) - messer(geo = "tract", state = "GA", year = 2020) + messer(geo = 'tract', state = 'GA', year = 2020) # Impute NDI for tracts (2020) with missing census information (median values) - messer(state = "tract", "GA", year = 2020, imp = TRUE) + messer(state = 'tract', 'GA', year = 2020, imp = TRUE) # County-level metric (2020) - messer(geo = "county", state = "GA", year = 2020) + messer(geo = 'county', state = 'GA', year = 2020) } diff --git a/man/ndi-package.Rd b/man/ndi-package.Rd index f06f9ac..85de2d5 100644 --- a/man/ndi-package.Rd +++ b/man/ndi-package.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/package.R +% Please edit documentation in R/ndi-package.R \docType{package} \name{ndi-package} \alias{ndi-package} @@ -9,7 +9,7 @@ Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. } \details{ -The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer \emph{et al.} (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos \emph{et al.} (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo \emph{et al.} (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman \emph{et al.} (2015) \doi{10.1136/jech-2015-205728} and Krieger \emph{et al.} (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, and (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}. Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation metric based on Bemanian & Beyer (2017) \url{doi:10.1158/1055-9965.EPI-16-0926}, and (10) aspatial racial/ethnic Delta based on Hoover (1941) \url{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. Key content of the 'ndi' package include:\cr @@ -29,13 +29,15 @@ Key content of the 'ndi' package include:\cr \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. -\code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman \emph{et al.} (2015) \doi{10.1136/jech-2015-205728} and Krieger \emph{et al.} (2016) \doi{10.2105/AJPH.2015.302955}. +\code{\link{hoover}} Computes the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) \doi{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). -\code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer \emph{et al.} (2006) \doi{10.1007/s11524-006-9094-x}. +\code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. -\code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +\code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. -\code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}. +\code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. + +\code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. @@ -44,12 +46,20 @@ Key content of the 'ndi' package include:\cr \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. } \section{Dependencies}{ - The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska \emph{et al.} (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} or Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos \emph{et al.} (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo \emph{et al.} (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. + The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. +} + +\seealso{ +Useful links: +\itemize{ + \item \url{https://github.com/idblr/ndi} + \item Report bugs at \url{https://github.com/idblr/ndi/issues} } +} \author{ -Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a division of DLH Corporation, Silver Spring, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr +Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a DLH Corporation Holding Company, Bethesda, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr Maintainer: I.D.B. \email{ian.buller@alumni.emory.edu} } -\keyword{package} +\keyword{internal} diff --git a/man/powell_wiley.Rd b/man/powell_wiley.Rd index 3ca5529..1fbc20c 100644 --- a/man/powell_wiley.Rd +++ b/man/powell_wiley.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/powell_wiley.R \name{powell_wiley} \alias{powell_wiley} -\title{Neighborhood Deprivation Index based on Andrews \emph{et al.} (2020) and Slotman \emph{et al.} (2022)} +\title{Neighborhood Deprivation Index based on Andrews et al. (2020) and Slotman et al. (2022)} \usage{ powell_wiley( geo = "tract", @@ -15,7 +15,7 @@ powell_wiley( ) } \arguments{ -\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = "tract"} (the default) or counties \code{geo = "county"}.} +\item{geo}{Character string specifying the geography of the data either census tracts \code{geo = 'tract'} (the default) or counties \code{geo = 'county'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available.} @@ -43,7 +43,7 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Neighborhood Deprivation Index (Powell-Wiley). } \details{ -This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002}. +This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: \itemize{ @@ -62,7 +62,7 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. \item \strong{PctUnempl (S2301)}: percent unemployed } -Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews \emph{et al.} (2020) \doi{10.1080/17445647.2020.1750066} and Slotman \emph{et al.} (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. @@ -76,16 +76,16 @@ powell_wiley(df = DCtracts2020[ , -c(3:10)]) \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Tract-level metric (2020) - powell_wiley(geo = "tract", state = "GA", year = 2020) + powell_wiley(geo = 'tract', state = 'GA', year = 2020) # Impute NDI for tracts (2020) with missing census information (median values) - powell_wiley(state = "tract", "GA", year = 2020, imp = TRUE) - + powell_wiley(state = 'tract', 'GA', year = 2020, imp = TRUE) + # County-level metric (2020) - powell_wiley(geo = "county", state = "GA", year = 2020) - + powell_wiley(geo = 'county', state = 'GA', year = 2020) + } } diff --git a/man/sudano.Rd b/man/sudano.Rd index 4576cc3..c98c5c2 100644 --- a/man/sudano.Rd +++ b/man/sudano.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/sudano.R \name{sudano} \alias{sudano} -\title{Location Quotient (LQ) based on Merton (1938) and Sudano \emph{et al.} (2013)} +\title{Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013)} \usage{ sudano( geo_large = "county", @@ -15,9 +15,9 @@ sudano( ) } \arguments{ -\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} -\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -42,47 +42,52 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano \emph{et al.} (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. LQ is some measure of relative racial homogeneity of each smaller geography within a larger geography. LQ can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an LQ of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - + # Isolation of non-Hispanic Black populations ## of census tracts within Georgia, U.S.A., counties (2020) - sudano(geo_large = "state", geo_small = "county", state = "GA", - year = 2020, subgroup = "NHoLB") - + sudano( + geo_large = 'state', + geo_small = 'county', + state = 'GA', + year = 2020, + subgroup = 'NHoLB' + ) + } } diff --git a/man/white.Rd b/man/white.Rd index cdcafee..53d1097 100644 --- a/man/white.Rd +++ b/man/white.Rd @@ -15,9 +15,9 @@ white( ) } \arguments{ -\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = "county"}.} +\item{geo_large}{Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}.} -\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = "tract"}.} +\item{geo_small}{Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}.} \item{year}{Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available.} @@ -46,33 +46,33 @@ This function will compute the aspatial Correlation Ratio (V or \eqn{Eta^{2}}{Et The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ -\item \strong{B03002_002}: not Hispanic or Latino \code{"NHoL"} -\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{"NHoLW"} -\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{"NHoLB"} -\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{"NHoLAIAN"} -\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{"NHoLA"} -\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"NHoLNHOPI"} -\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{"NHoLSOR"} -\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{"NHoLTOMR"} -\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{"NHoLTRiSOR"} -\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"NHoLTReSOR"} -\item \strong{B03002_012}: Hispanic or Latino \code{"HoL"} -\item \strong{B03002_013}: Hispanic or Latino, white alone \code{"HoLW"} -\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{"HoLB"} -\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{"HoLAIAN"} -\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{"HoLA"} -\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{"HoLNHOPI"} -\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{"HoLSOR"} -\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{"HoLTOMR"} -\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{"HoLTRiSOR"} -\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{"HoLTReSOR"} +\item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +\item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +\item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +\item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +\item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +\item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +\item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +\item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +\item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +\item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +\item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +\item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +\item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +\item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +\item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +\item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +\item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +\item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +\item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +\item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from 0 to 1. +V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from -Inf to Inf. -Larger geographies available include state \code{geo_large = "state"}, county \code{geo_large = "county"}, and census tract \code{geo_large = "tract"} levels. Smaller geographies available include, county \code{geo_small = "county"}, census tract \code{geo_small = "tract"}, and census block group \code{geo_small = "block group"} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. } \examples{ \dontrun{ @@ -80,8 +80,13 @@ Larger geographies available include state \code{geo_large = "state"}, county \c # Isolation of non-Hispanic Black populations ## of census tracts within Georgia, U.S.A., counties (2020) - white(geo_large = "county", geo_small = "tract", state = "GA", - year = 2020, subgroup = "NHoLB") + white( + geo_large = 'county', + geo_small = 'tract', + state = 'GA', + year = 2020, + subgroup = 'NHoLB' + ) } diff --git a/tests/testthat.R b/tests/testthat.R index e78b8e8..40f13cf 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -1,4 +1,4 @@ library(testthat) library(ndi) -test_check("ndi") +test_check('ndi') diff --git a/tests/testthat/test-anthopolos.R b/tests/testthat/test-anthopolos.R index 5b368fb..41ba7ac 100644 --- a/tests/testthat/test-anthopolos.R +++ b/tests/testthat/test-anthopolos.R @@ -1,37 +1,68 @@ -context("anthopolos") +context('anthopolos') -####################### +# ------------------- # # anthopolos testthat # -####################### +# ------------------- # -test_that("anthopolos throws error with invalid arguments", { - +test_that('anthopolos throws error with invalid arguments', { # Unavailable geography - expect_error(anthopolos(geo = "zcta", state = "DC", year = 2020, subgroup = "NHoLB", quiet = TRUE)) + expect_error(anthopolos( + geo = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) # Unavailable year - expect_error(anthopolos(state = "DC", year = 2005, subgroup = "NHoLB", quiet = TRUE)) + expect_error(anthopolos( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + quiet = TRUE + )) # Unavailable subgroup - expect_error(anthopolos(state = "DC", year = 2020, subgroup = "terran", quiet = TRUE)) + expect_error(anthopolos( + state = 'DC', + year = 2020, + subgroup = 'terran', + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(anthopolos(state = "AB", year = 2020, subgroup = "NHoLB", quiet = TRUE)) + expect_error(anthopolos( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) -} -) +}) -test_that("anthopolos works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('anthopolos works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_output(anthopolos(state = "DC", year = 2020, subgroup = c("NHoLB", "HoLB"))) + expect_output(anthopolos( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + )) - expect_silent(anthopolos(state = "DC", year = 2020, subgroup = "NHoLB", quiet = TRUE)) + expect_silent(anthopolos( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) - expect_silent(anthopolos(state = "DC", year = 2020, subgroup = c("NHoLB", "HoLB"), quiet = TRUE)) + expect_silent(anthopolos( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-atkinson.R b/tests/testthat/test-atkinson.R index 0695241..419c0a0 100644 --- a/tests/testthat/test-atkinson.R +++ b/tests/testthat/test-atkinson.R @@ -1,50 +1,86 @@ -context("atkinson") +context('atkinson') -##################### +# ----------------- # # atkinson testthat # -##################### +# ----------------- # -test_that("atkinson throws error with invalid arguments", { - +test_that('atkinson throws error with invalid arguments', { # Unavailable geography - expect_error(atkinson(geo_small = "zcta", state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) - expect_error(atkinson(geo_large = "block group", state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(atkinson( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) + expect_error( + atkinson( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + ) + ) # Unavailable year - expect_error(atkinson(state = "DC", year = 2005, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(atkinson( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + quiet = TRUE + )) # Unavailable subgroup - expect_error(atkinson(state = "DC", year = 2020, - subgroup = "terran", quiet = TRUE)) + expect_error(atkinson( + state = 'DC', + year = 2020, + subgroup = 'terran', + quiet = TRUE + )) # Incorrect epsilon - expect_error(atkinson(state = "DC", year = 2020, - subgroup = "NHoLB", epsilon = 2, quiet = TRUE)) + expect_error(atkinson( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + epsilon = 2, + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(atkinson(state = "AB", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(atkinson( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) -} -) +}) -test_that("atkinson works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('atkinson works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_silent(atkinson(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"))) + expect_silent(atkinson( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + )) - expect_silent(atkinson(state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_silent(atkinson( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) - expect_silent(atkinson(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), quiet = TRUE)) + expect_silent(atkinson( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-bell.R b/tests/testthat/test-bell.R index 2f50bcc..f7bc18f 100644 --- a/tests/testthat/test-bell.R +++ b/tests/testthat/test-bell.R @@ -1,48 +1,94 @@ -context("bell") +context('bell') -################# +# ------------- # # bell testthat # -################# +# ------------- # -test_that("bell throws error with invalid arguments", { - +test_that('bell throws error with invalid arguments', { # Unavailable geography - expect_error(bell(geo_small = "zcta", state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) - expect_error(bell(geo_large = "block group", state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error( + bell( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) + expect_error( + bell( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) # Unavailable year - expect_error(bell(state = "DC", year = 2005, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error(bell( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + )) # Unavailable subgroup - expect_error(bell(state = "DC", year = 2020, - subgroup = "terran", subgroup_ixn = "NHoLW", quiet = TRUE)) - expect_error(bell(state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "terran", quiet = TRUE)) + expect_error(bell( + state = 'DC', + year = 2020, + subgroup = 'terran', + subgroup_ixn = 'NHoLW', + quiet = TRUE + )) + expect_error(bell( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'terran', + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(bell(state = "AB", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error(bell( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + )) -} -) +}) -test_that("bell works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('bell works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_silent(bell(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), subgroup_ixn = c("NHoLW", "HoLW"))) + expect_silent(bell( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + subgroup_ixn = c('NHoLW', 'HoLW') + )) - expect_silent(bell(state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_silent(bell( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + )) - expect_silent(bell(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), subgroup_ixn = c("NHoLW", "HoLW"), quiet = TRUE)) + expect_silent(bell( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + subgroup_ixn = c('NHoLW', 'HoLW'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-bemanian_beyer.R b/tests/testthat/test-bemanian_beyer.R index 5a648ff..2cd0509 100644 --- a/tests/testthat/test-bemanian_beyer.R +++ b/tests/testthat/test-bemanian_beyer.R @@ -1,48 +1,104 @@ -context("bemanian_beyer") +context('bemanian_beyer') -########################### +# ----------------------- # # bemanian_beyer testthat # -########################### +# ----------------------- # -test_that("bemanian_beyer throws error with invalid arguments", { - +test_that('bemanian_beyer throws error with invalid arguments', { # Unavailable geography - expect_error(bemanian_beyer(geo_small = "zcta", state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) - expect_error(bemanian_beyer(geo_large = "block group", state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error( + bemanian_beyer( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) + expect_error( + bemanian_beyer( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) # Unavailable year - expect_error(bemanian_beyer(state = "DC", year = 2005, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error( + bemanian_beyer( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) # Unavailable subgroup - expect_error(bemanian_beyer(state = "DC", year = 2020, - subgroup = "terran", subgroup_ixn = "NHoLW", quiet = TRUE)) - expect_error(bemanian_beyer(state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "terran", quiet = TRUE)) + expect_error( + bemanian_beyer( + state = 'DC', + year = 2020, + subgroup = 'terran', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) + expect_error( + bemanian_beyer( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'terran', + quiet = TRUE + ) + ) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(bemanian_beyer(state = "AB", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_error( + bemanian_beyer( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) -} -) +}) -test_that("bemanian_beyer works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('bemanian_beyer works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_warning(bemanian_beyer(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), subgroup_ixn = c("NHoLW", "HoLW"))) + expect_warning(bemanian_beyer( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + subgroup_ixn = c('NHoLW', 'HoLW') + )) - expect_warning(bemanian_beyer(state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ixn = "NHoLW", quiet = TRUE)) + expect_warning( + bemanian_beyer( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW', + quiet = TRUE + ) + ) - expect_warning(bemanian_beyer(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), subgroup_ixn = c("NHoLW", "HoLW"), quiet = TRUE)) + expect_warning(bemanian_beyer( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + subgroup_ixn = c('NHoLW', 'HoLW'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-bravo.R b/tests/testthat/test-bravo.R index 662e1d0..60efbe0 100644 --- a/tests/testthat/test-bravo.R +++ b/tests/testthat/test-bravo.R @@ -1,37 +1,68 @@ -context("bravo") +context('bravo') -################## +# -------------- # # bravo testthat # -################## +# -------------- # -test_that("bravo throws error with invalid arguments", { - +test_that('bravo throws error with invalid arguments', { # Unavailable geography - expect_error(bravo(geo = "zcta", state = "DC", year = 2020, subgroup = "LtHS", quiet = TRUE)) + expect_error(bravo( + geo = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'LtHS', + quiet = TRUE + )) # Unavailable year - expect_error(bravo(state = "DC", year = 2005, subgroup = "LtHS", quiet = TRUE)) + expect_error(bravo( + state = 'DC', + year = 2005, + subgroup = 'LtHS', + quiet = TRUE + )) # Unavailable subgroup - expect_error(bravo(state = "DC", year = 2020, subgroup = "terran", quiet = TRUE)) + expect_error(bravo( + state = 'DC', + year = 2020, + subgroup = 'terran', + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(bravo(state = "AB", year = 2020, subgroup = "LtHS", quiet = TRUE)) + expect_error(bravo( + state = 'AB', + year = 2020, + subgroup = 'LtHS', + quiet = TRUE + )) -} -) +}) -test_that("bravo works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('bravo works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_output(bravo(state = "DC", year = 2009, subgroup = c("LtHS", "HSGiE"))) + expect_output(bravo( + state = 'DC', + year = 2009, + subgroup = c('LtHS', 'HSGiE') + )) - expect_silent(bravo(state = "DC", year = 2020, subgroup = "LtHS", quiet = TRUE)) + expect_silent(bravo( + state = 'DC', + year = 2020, + subgroup = 'LtHS', + quiet = TRUE + )) - expect_silent(bravo(state = "DC", year = 2020, subgroup = c("LtHS", "HSGiE"), quiet = TRUE)) + expect_silent(bravo( + state = 'DC', + year = 2020, + subgroup = c('LtHS', 'HSGiE'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-duncan.R b/tests/testthat/test-duncan.R index d895140..da49e0e 100644 --- a/tests/testthat/test-duncan.R +++ b/tests/testthat/test-duncan.R @@ -1,48 +1,104 @@ -context("duncan") +context('duncan') -################### +# --------------- # # duncan testthat # -################### +# --------------- # -test_that("duncan throws error with invalid arguments", { - +test_that('duncan throws error with invalid arguments', { # Unavailable geography - expect_error(duncan(geo_small = "zcta", state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ref = "NHoLW", quiet = TRUE)) - expect_error(duncan(geo_large = "block group", state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ref = "NHoLW", quiet = TRUE)) + expect_error( + duncan( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW', + quiet = TRUE + ) + ) + expect_error( + duncan( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW', + quiet = TRUE + ) + ) # Unavailable year - expect_error(duncan(state = "DC", year = 2005, - subgroup = "NHoLB", subgroup_ref = "NHoLW", quiet = TRUE)) + expect_error( + duncan( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW', + quiet = TRUE + ) + ) # Unavailable subgroup - expect_error(duncan(state = "DC", year = 2020, - subgroup = "terran", subgroup_ref = "NHoLW", quiet = TRUE)) - expect_error(duncan(state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ref = "terran", quiet = TRUE)) + expect_error( + duncan( + state = 'DC', + year = 2020, + subgroup = 'terran', + subgroup_ref = 'NHoLW', + quiet = TRUE + ) + ) + expect_error( + duncan( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'terran', + quiet = TRUE + ) + ) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(duncan(state = "AB", year = 2020, - subgroup = "NHoLB", subgroup_ref = "NHoLW", quiet = TRUE)) + expect_error( + duncan( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW', + quiet = TRUE + ) + ) -} -) +}) -test_that("duncan works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('duncan works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_silent(duncan(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), subgroup_ref = c("NHoLW", "HoLW"))) + expect_silent(duncan( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + subgroup_ref = c('NHoLW', 'HoLW') + )) - expect_silent(duncan(state = "DC", year = 2020, - subgroup = "NHoLB", subgroup_ref = "NHoLW", quiet = TRUE)) + expect_silent( + duncan( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW', + quiet = TRUE + ) + ) - expect_silent(duncan(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), subgroup_ref = c("NHoLW", "HoLW"), quiet = TRUE)) + expect_silent(duncan( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + subgroup_ref = c('NHoLW', 'HoLW'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-gini.R b/tests/testthat/test-gini.R index 957d982..e4b7b23 100644 --- a/tests/testthat/test-gini.R +++ b/tests/testthat/test-gini.R @@ -1,35 +1,49 @@ -context("gini") +context('gini') -################# +# ------------- # # gini testthat # -################# +# ------------- # -test_that("gini throws error with invalid arguments", { - +test_that('gini throws error with invalid arguments', { # Unavailable geography - expect_error(gini(geo = "zcta", state = "DC", year = 2020, quiet = TRUE)) + expect_error(gini( + geo = 'zcta', + state = 'DC', + year = 2020, + quiet = TRUE + )) # Unavailable year - expect_error(gini(state = "DC", year = 2005, quiet = TRUE)) + expect_error(gini( + state = 'DC', + year = 2005, + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(gini(state = "AB", year = 2020)) + expect_error(gini(state = 'AB', year = 2020)) # Unavailable geography for DC (only 1 'county' in DC so, alone, NDI cannot be computed) - expect_error(gini(geo = "county", state = "DC", year = 2009, quiet = TRUE)) - -} -) + expect_error(gini( + geo = 'county', + state = 'DC', + year = 2009, + quiet = TRUE + )) + +}) -test_that("gini works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('gini works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_message(gini(state = "DC", year = 2020)) + expect_message(gini(state = 'DC', year = 2020)) - expect_silent(gini(state = "DC", year = 2020, quiet = TRUE)) + expect_silent(gini( + state = 'DC', + year = 2020, + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-krieger.R b/tests/testthat/test-krieger.R index c2727e9..5d20b63 100644 --- a/tests/testthat/test-krieger.R +++ b/tests/testthat/test-krieger.R @@ -1,32 +1,45 @@ -context("krieger") +context('krieger') -#################### +# ---------------- # # krieger testthat # -#################### +# ---------------- # -test_that(" throws error with invalid arguments", { - +test_that(' throws error with invalid arguments', { # Unavailable geography - expect_error(krieger(geo = "zcta", state = "DC", year = 2020, quiet = TRUE)) + expect_error(krieger( + geo = 'zcta', + state = 'DC', + year = 2020, + quiet = TRUE + )) # Unavailable year - expect_error(krieger(state = "DC", year = 2005, quiet = TRUE)) + expect_error(krieger( + state = 'DC', + year = 2005, + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(krieger(state = "AB", year = 2020, quiet = TRUE)) + expect_error(krieger( + state = 'AB', + year = 2020, + quiet = TRUE + )) -} -) +}) -test_that("krieger works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('krieger works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_silent(krieger(state = "DC", year = 2020)) + expect_silent(krieger(state = 'DC', year = 2020)) - expect_silent(krieger(state = "DC", year = 2020, quiet = TRUE)) + expect_silent(krieger( + state = 'DC', + year = 2020, + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-messer.R b/tests/testthat/test-messer.R index 2193965..698100a 100644 --- a/tests/testthat/test-messer.R +++ b/tests/testthat/test-messer.R @@ -1,46 +1,77 @@ -context("messer") +context('messer') -################### +# --------------- # # messer testthat # -################### +# --------------- # -test_that("messer throws error with invalid arguments", { - +test_that('messer throws error with invalid arguments', { # Not a data.frame or tibble for `df` - expect_error(messer(df = c("a", "b", "c"))) + expect_error(messer(df = c('a', 'b', 'c'))) # Unavailable geography - expect_error(messer(geo = "zcta", state = "DC", year = 2020, quiet = TRUE)) + expect_error(messer( + geo = 'zcta', + state = 'DC', + year = 2020, + quiet = TRUE + )) # Unavailable year - expect_error(messer(state = "DC", year = 2005, quiet = TRUE)) + expect_error(messer( + state = 'DC', + year = 2005, + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(messer(state = "AB", year = 2020, quiet = TRUE)) + expect_error(messer( + state = 'AB', + year = 2020, + quiet = TRUE + )) # Unavailable geography for DC (only 1 'county' in DC so, alone, NDI cannot be computed) - expect_error(messer(geo = "county", state = "DC", year = 2009, quiet = TRUE)) + expect_error(messer( + geo = 'county', + state = 'DC', + year = 2009, + quiet = TRUE + )) -} -) +}) -test_that("messer works", { +test_that('messer works', { + expect_message(messer(df = DCtracts2020[,-c(2, 11:ncol(DCtracts2020))])) - expect_message(messer(df = DCtracts2020[, -c(2, 11:ncol(DCtracts2020))])) + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + expect_message(messer(state = 'DC', year = 2020)) - expect_message(messer(state = "DC", year = 2020)) - - expect_message(messer(state = "DC", year = 2020, round_output = TRUE)) + expect_message(messer( + state = 'DC', + year = 2020, + round_output = TRUE + )) - expect_message(messer(state = "DC", year = 2020, imp = TRUE)) + expect_message(messer( + state = 'DC', + year = 2020, + imp = TRUE + )) - expect_silent(messer(state = "DC", year = 2020, quiet = TRUE)) + expect_silent(messer( + state = 'DC', + year = 2020, + quiet = TRUE + )) - expect_silent(messer(state = "DC", year = 2020, imp = TRUE, quiet = TRUE)) + expect_silent(messer( + state = 'DC', + year = 2020, + imp = TRUE, + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-powell_wiley.R b/tests/testthat/test-powell_wiley.R index 1ff4de4..97f509f 100644 --- a/tests/testthat/test-powell_wiley.R +++ b/tests/testthat/test-powell_wiley.R @@ -1,46 +1,77 @@ -context("powell_wiley") +context('powell_wiley') -######################### +# --------------------- # # powell_wiley testthat # -######################### +# --------------------- # -test_that("powell_wiley throws error with invalid arguments", { - +test_that('powell_wiley throws error with invalid arguments', { # Not a data.frame or tibble for `df` - expect_error(powell_wiley(df = c("a", "b", "c"))) + expect_error(powell_wiley(df = c('a', 'b', 'c'))) # Unavailable geography - expect_error(powell_wiley(geo = "zcta", state = "DC", year = 2020, quiet = TRUE)) + expect_error(powell_wiley( + geo = 'zcta', + state = 'DC', + year = 2020, + quiet = TRUE + )) # Unavailable year - expect_error(powell_wiley(state = "DC", year = 2005, quiet = TRUE)) + expect_error(powell_wiley( + state = 'DC', + year = 2005, + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(powell_wiley(state = "AB", year = 2020, quiet = TRUE)) + expect_error(powell_wiley( + state = 'AB', + year = 2020, + quiet = TRUE + )) # Unavailable geography for DC (only 1 'county' in DC so, alone, NDI cannot be computed) - expect_error(powell_wiley(geo = "county", state = "DC", year = 2009, quiet = TRUE)) - -} -) - -test_that("powell_wiley works", { + expect_error(powell_wiley( + geo = 'county', + state = 'DC', + year = 2009, + quiet = TRUE + )) - expect_message(powell_wiley(df = DCtracts2020[ , -c(3:10)])) +}) + +test_that('powell_wiley works', { + expect_message(powell_wiley(df = DCtracts2020[,-c(3:10)])) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_message(powell_wiley(state = "DC", year = 2020)) + expect_message(powell_wiley(state = 'DC', year = 2020)) - expect_message(powell_wiley(state = "DC", year = 2020, round_output = TRUE)) + expect_message(powell_wiley( + state = 'DC', + year = 2020, + round_output = TRUE + )) - expect_message(powell_wiley(state = "DC", year = 2020, imp = TRUE)) + expect_message(powell_wiley( + state = 'DC', + year = 2020, + imp = TRUE + )) - expect_silent(powell_wiley(state = "DC", year = 2020, quiet = TRUE)) + expect_silent(powell_wiley( + state = 'DC', + year = 2020, + quiet = TRUE + )) - expect_silent(powell_wiley(state = "DC", year = 2020, imp = TRUE, quiet = TRUE)) + expect_silent(powell_wiley( + state = 'DC', + year = 2020, + imp = TRUE, + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-sudano.R b/tests/testthat/test-sudano.R index 8ecc335..c929055 100644 --- a/tests/testthat/test-sudano.R +++ b/tests/testthat/test-sudano.R @@ -1,46 +1,77 @@ -context("sudano") +context('sudano') -################### +# --------------- # # sudano testthat # -################### +# --------------- # -test_that("sudano throws error with invalid arguments", { - +test_that('sudano throws error with invalid arguments', { # Unavailable geography - expect_error(sudano(geo_small = "zcta", state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) - expect_error(sudano(geo_large = "block group", state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(sudano( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) + expect_error( + sudano( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + ) + ) # Unavailable year - expect_error(sudano(state = "DC", year = 2005, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(sudano( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + quiet = TRUE + )) # Unavailable subgroup - expect_error(sudano(state = "DC", year = 2020, - subgroup = "terran", quiet = TRUE)) + expect_error(sudano( + state = 'DC', + year = 2020, + subgroup = 'terran', + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(sudano(state = "AB", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(sudano( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) -} -) +}) -test_that("sudano works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('sudano works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_silent(sudano(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"))) + expect_silent(sudano( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + )) - expect_silent(sudano(state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_silent(sudano( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) - expect_silent(sudano(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), quiet = TRUE)) + expect_silent(sudano( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + quiet = TRUE + )) -} -) +}) diff --git a/tests/testthat/test-white.R b/tests/testthat/test-white.R index 07e618d..0e85449 100644 --- a/tests/testthat/test-white.R +++ b/tests/testthat/test-white.R @@ -1,46 +1,77 @@ -context("white") +context('white') -################## +# -------------- # # white testthat # -################## +# -------------- # -test_that("white throws error with invalid arguments", { - +test_that('white throws error with invalid arguments', { # Unavailable geography - expect_error(white(geo_small = "zcta", state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) - expect_error(white(geo_large = "block group", state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(white( + geo_small = 'zcta', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) + expect_error( + white( + geo_large = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + ) + ) # Unavailable year - expect_error(white(state = "DC", year = 2005, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(white( + state = 'DC', + year = 2005, + subgroup = 'NHoLB', + quiet = TRUE + )) # Unavailable subgroup - expect_error(white(state = "DC", year = 2020, - subgroup = "terran", quiet = TRUE)) + expect_error(white( + state = 'DC', + year = 2020, + subgroup = 'terran', + quiet = TRUE + )) - skip_if(Sys.getenv("CENSUS_API_KEY") == "") + skip_if(Sys.getenv('CENSUS_API_KEY') == '') # Incorrect state - expect_error(white(state = "AB", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_error(white( + state = 'AB', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) -} -) +}) -test_that("white works", { - - skip_if(Sys.getenv("CENSUS_API_KEY") == "") +test_that('white works', { + skip_if(Sys.getenv('CENSUS_API_KEY') == '') - expect_silent(white(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"))) + expect_silent(white( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB') + )) - expect_silent(white(state = "DC", year = 2020, - subgroup = "NHoLB", quiet = TRUE)) + expect_silent(white( + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + quiet = TRUE + )) - expect_silent(white(state = "DC", year = 2020, - subgroup = c("NHoLB", "HoLB"), quiet = TRUE)) + expect_silent(white( + state = 'DC', + year = 2020, + subgroup = c('NHoLB', 'HoLB'), + quiet = TRUE + )) -} -) +}) From 036efc7d4d065b20a60e3fa5648f80621fe2e5ff Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 14:07:37 -0400 Subject: [PATCH 13/23] :memo: Updated documentation for ndi v0.1.6.9000 * Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states * Updated DESCRIPTION, NAMESPACE, & 'cran-comments.md' --- DESCRIPTION | 15 +- NAMESPACE | 1 + NEWS.md | 1 + README.md | 812 +++++++++++------ cran-comments.md | 16 +- vignettes/vignette.Rmd | 1398 +++++++++++++++++------------ vignettes/vignette.html | 1883 ++++++++++++++++++++++++--------------- 7 files changed, 2539 insertions(+), 1587 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index ca8e078..a0b6915 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ndi Title: Neighborhood Deprivation Indices -Version: 0.1.5 -Date: 2024-01-23 +Version: 0.1.6.9000 +Date: 2024-07-06 Authors@R: c(person(given = "Ian D.", family = "Buller", @@ -39,16 +39,17 @@ Description: Computes various metrics of socio-economic deprivation and disparit based on Bell (1954) and White (1986) , (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) and Sudano et al. (2013) - , and (9) aspatial racial/ethnic Local + , (9) aspatial racial/ethnic Local Exposure and Isolation metric based on Bemanian & Beyer (2017) - . Also using data from the ACS-5 (2005-2009 - onward), the package can retrieve the aspatial Gini Index based Gini (1921) - . + , and (10) aspatial racial/ethnic Delta based on + Hoover (1941) and Duncan et al. (1961; LC:60007089). + Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the + aspatial Gini Index based Gini (1921) . License: Apache License (>= 2.0) Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.2 Depends: R (>= 3.5.0) Imports: diff --git a/NAMESPACE b/NAMESPACE index c648ea6..71b1c6a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,7 @@ export(bemanian_beyer) export(bravo) export(duncan) export(gini) +export(hoover) export(krieger) export(messer) export(powell_wiley) diff --git a/NEWS.md b/NEWS.md index b2f1942..ad665cf 100644 --- a/NEWS.md +++ b/NEWS.md @@ -11,6 +11,7 @@ * 'package.R' deprecated. Replaced with 'ndi-package.R'. * Re-formatted code and documentation throughout for consistent readability * Updated documentation about value range of V (White) from `{0 to 1}` to `{-Inf to Inf}` +* Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states ## ndi v0.1.5 diff --git a/README.md b/README.md index 93f3f51..0470ef5 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ndi: Neighborhood Deprivation Indices @@ -169,7 +169,7 @@ library(tigris) ## Access Key for census data download ### Obtain one at http://api.census.gov/data/key_signup.html -tidycensus::census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API +census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API # ---------------------- # # Calculate NDI (Messer) # @@ -182,13 +182,15 @@ messer2020DC <- messer(state = 'DC', year = 2020) # Outputs from messer() function # # ------------------------------ # -# A tibble containing the identification, geographic name, NDI (Messer) values, NDI (Messer) quartiles, and raw census characteristics for each tract +# A tibble containing the identification, geographic name, NDI (Messer) values, NDI (Messer) +# quartiles, and raw census characteristics for each tract messer2020DC$ndi # The results from the principal component analysis used to compute the NDI (Messer) values messer2020DC$pca -# A tibble containing a breakdown of the missingingness of the census characteristics used to compute the NDI (Messer) values +# A tibble containing a breakdown of the missingingness of the census characteristics +# used to compute the NDI (Messer) values messer2020DC$missing # -------------------------------------- # @@ -196,43 +198,63 @@ messer2020DC$missing # -------------------------------------- # # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (Messer) values to the census tract geometry -DC2020messer <- dplyr::left_join(tract2020DC, messer2020DC$ndi, by = 'GEOID') +DC2020messer <- tract2020DC %>% + left_join(messer2020DC$ndi, by = 'GEOID') # Visualize the NDI (Messer) values (2016-2020 5-year ACS) for Washington, D.C. census tracts ## Continuous Index -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020messer, - ggplot2::aes(fill = NDI), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Neighborhood Deprivation Index\nContinuous (Messer, non-imputed)', - subtitle = 'Washington, D.C. tracts as the referent') +ggplot() + + geom_sf( + data = DC2020messer, + aes(fill = NDI), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Neighborhood Deprivation Index\nContinuous (Messer, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent' + ) ## Categorical Index (Quartiles) ### Rename '9-NDI not avail' level as NA for plotting -DC2020messer$NDIQuartNA <- factor(replace(as.character(DC2020messer$NDIQuart), - DC2020messer$NDIQuart == '9-NDI not avail', - NA), - c(levels(DC2020messer$NDIQuart)[-5], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020messer, - ggplot2::aes(fill = NDIQuartNA), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = 'grey50') + - ggplot2::labs(fill = 'Index (Categorical)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Neighborhood Deprivation Index\nQuartiles (Messer, non-imputed)', - subtitle = 'Washington, D.C. tracts as the referent') +DC2020messer$NDIQuartNA <- + factor( + replace( + as.character(DC2020messer$NDIQuart), + DC2020messer$NDIQuart == '9-NDI not avail', + NA + ), + c(levels(DC2020messer$NDIQuart)[-5], NA) + ) + +ggplot() + + geom_sf( + data = DC2020messer, + aes(fill = NDIQuartNA), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_d( + guide = guide_legend(reverse = TRUE), + na.value = 'grey50' + ) + + labs( + fill = 'Index (Categorical)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Neighborhood Deprivation Index\nQuartiles (Messer, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent' + ) ``` ![](man/figures/messer1.png) ![](man/figures/messer2.png) @@ -250,13 +272,15 @@ powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # imp # Outputs from powell_wiley() function # # ------------------------------------ # -# A tibble containing the identification, geographic name, NDI (Powell-Wiley) value, and raw census characteristics for each tract +# A tibble containing the identification, geographic name, NDI (Powell-Wiley) value, and +# raw census characteristics for each tract powell_wiley2020DC$ndi # The results from the principal component analysis used to compute the NDI (Powell-Wiley) values powell_wiley2020DC$pca -# A tibble containing a breakdown of the missingingness of the census characteristics used to compute the NDI (Powell-Wiley) values +# A tibble containing a breakdown of the missingingness of the census characteristics used to +# compute the NDI (Powell-Wiley) values powell_wiley2020DC$missing # -------------------------------------------- # @@ -264,44 +288,65 @@ powell_wiley2020DC$missing # -------------------------------------------- # # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (powell_wiley) values to the census tract geometry -DC2020powell_wiley <- dplyr::left_join(tract2020DC, powell_wiley2020DC$ndi, by = 'GEOID') -DC2020powell_wiley <- dplyr::left_join(DC2020powell_wiley, powell_wiley2020DCi$ndi, by = 'GEOID') +DC2020powell_wiley <- tract2020DC + left_join(powell_wiley2020DC$ndi, by = 'GEOID') +DC2020powell_wiley <- DC2020powell_wiley + left_join(powell_wiley2020DCi$ndi, by = 'GEOID') # Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C. census tracts ## Non-imputed missing tracts (Continuous) -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020powell_wiley, - ggplot2::aes(fill = NDI.x), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Neighborhood Deprivation Index\nContinuous (Powell-Wiley, non-imputed)', - subtitle = 'Washington, D.C. tracts as the referent') +ggplot() + + geom_sf( + data = DC2020powell_wiley, + aes(fill = NDI.x), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Neighborhood Deprivation Index\nContinuous (Powell-Wiley, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent' + ) ## Non-imputed missing tracts (Categorical quintiles) ### Rename '9-NDI not avail' level as NA for plotting -DC2020powell_wiley$NDIQuintNA.x <- factor(replace(as.character(DC2020powell_wiley$NDIQuint.x), - DC2020powell_wiley$NDIQuint.x == '9-NDI not avail', - NA), - c(levels(DC2020powell_wiley$NDIQuint.x)[-6], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020powell_wiley, - ggplot2::aes(fill = NDIQuintNA.x), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = 'grey50') + - ggplot2::labs(fill = 'Index (Categorical)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, non-imputed)', - subtitle = 'Washington, D.C. tracts as the referent') +DC2020powell_wiley$NDIQuintNA.x <- factor( + replace( + as.character(DC2020powell_wiley$NDIQuint.x), + DC2020powell_wiley$NDIQuint.x == '9-NDI not avail', + NA + ), + c(levels(DC2020powell_wiley$NDIQuint.x)[-6], NA) +) + + +ggplot() + + geom_sf( + data = DC2020powell_wiley, + aes(fill = NDIQuintNA.x), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_d( + guide = guide_legend(reverse = TRUE), + na.value = 'grey50' + ) + + labs( + fill = 'Index (Categorical)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, non-imputed)', + subtitle = 'Washington, D.C. tracts as the referent' + ) ``` ![](man/figures/powell_wiley1.png) @@ -309,35 +354,53 @@ ggplot2::ggplot() + ``` r ## Imputed missing tracts (Continuous) -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020powell_wiley, - ggplot2::aes(fill = NDI.y), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Neighborhood Deprivation Index\nContinuous (Powell-Wiley, imputed)', - subtitle = 'Washington, D.C. tracts as the referent') +ggplot() + + geom_sf( + data = DC2020powell_wiley, + aes(fill = NDI.y), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Neighborhood Deprivation Index\nContinuous (Powell-Wiley, imputed)', + subtitle = 'Washington, D.C. tracts as the referent' + ) ## Imputed missing tracts (Categorical quintiles) ### Rename '9-NDI not avail' level as NA for plotting -DC2020powell_wiley$NDIQuintNA.y <- factor(replace(as.character(DC2020powell_wiley$NDIQuint.y), - DC2020powell_wiley$NDIQuint.y == '9-NDI not avail', - NA), - c(levels(DC2020powell_wiley$NDIQuint.y)[-6], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020powell_wiley, - ggplot2::aes(fill = NDIQuintNA.y), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = 'grey50') + - ggplot2::labs(fill = 'Index (Categorical)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, imputed)', - subtitle = 'Washington, D.C. tracts as the referent') +DC2020powell_wiley$NDIQuintNA.y <- factor( + replace( + as.character(DC2020powell_wiley$NDIQuint.y), + DC2020powell_wiley$NDIQuint.y == '9-NDI not avail', + NA + ), + c(levels(DC2020powell_wiley$NDIQuint.y)[-6], NA) +) + +ggplot() + + geom_sf( + data = DC2020powell_wiley, + aes(fill = NDIQuintNA.y), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_d( + guide = guide_legend(reverse = TRUE), + na.value = 'grey50' + ) + + labs( + fill = 'Index (Categorical)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, imputed)', + subtitle = 'Washington, D.C. tracts as the referent' + ) ``` ![](man/figures/powell_wiley3.png) @@ -349,7 +412,12 @@ ggplot2::ggplot() + # --------------------------- # # Merge the two NDI metrics (Messer and Powell-Wiley, imputed) -ndi2020DC <- dplyr::left_join(messer2020DC$ndi, powell_wiley2020DCi$ndi, by = 'GEOID', suffix = c('.messer', '.powell_wiley')) +ndi2020DC <- messer2020DC$ndi %>% + left_join( + powell_wiley2020DCi$ndi, + by = 'GEOID', + suffix = c('.messer', '.powell_wiley') + ) # Check the correlation the two NDI metrics (Messer and Powell-Wiley, imputed) as continuous values cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = 'complete.obs') # Pearsons r = 0.975 @@ -367,21 +435,28 @@ table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) gini2020DC <- gini(state = 'DC', year = 2020) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the Gini Index values to the census tract geometry -gini2020DC <- dplyr::left_join(tract2020DC, gini2020DC$gini, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = gini2020DC, - ggplot2::aes(fill = gini), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Gini Index\nGrey color denotes no data', - subtitle = 'Washington, D.C. tracts') +gini2020DC <- tract2020DC %>% + left_join(gini2020DC$gini, by = 'GEOID') + +ggplot() + + geom_sf( + data = gini2020DC, + aes(fill = gini), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Gini Index\nGrey color denotes no data', + subtitle = 'Washington, D.C. tracts' + ) ``` ![](man/figures/gini.png) @@ -396,21 +471,28 @@ ggplot2::ggplot() + ri2020DC <- anthopolos(state = 'DC', year = 2020, subgroup = 'NHoLB') # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the RI (Anthopolos) values to the census tract geometry -ri2020DC <- dplyr::left_join(tract2020DC, ri2020DC$ri, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = ri2020DC, - ggplot2::aes(fill = RI), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Racial Isolation Index\nNot Hispanic or Latino, Black or African American alone (Anthopolos)', - subtitle = 'Washington, D.C. tracts (not corrected for edge effects)') +ri2020DC <- tract2020DC %>% + left_join(ri2020DC$ri, by = 'GEOID') + +ggplot() + + geom_sf( + data = ri2020DC, + aes(fill = RI), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Racial Isolation Index\nNot Hispanic or Latino, Black or African American alone (Anthopolos)', + subtitle = 'Washington, D.C. tracts (not corrected for edge effects)' + ) ``` ![](man/figures/ri.png) @@ -425,21 +507,28 @@ ggplot2::ggplot() + ei2020DC <- bravo(state = 'DC', year = 2020, subgroup = c('LtHS', 'HSGiE', 'SCoAD')) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the EI (Bravo) values to the census tract geometry -ei2020DC <- dplyr::left_join(tract2020DC, ei2020DC$ei, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = ei2020DC, - ggplot2::aes(fill = EI), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Educational Isolation Index\nWithout a four-year college degree (Bravo)', - subtitle = 'Washington, D.C. tracts (not corrected for edge effects)') +ei2020DC <- tract2020DC %>% + left_join(ei2020DC$ei, by = 'GEOID') + +ggplot() + + geom_sf( + data = ei2020DC, + aes(fill = EI), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + )+ + ggtitle( + 'Educational Isolation Index\nWithout a four-year college degree (Bravo)', + subtitle = 'Washington, D.C. tracts (not corrected for edge effects)' + ) ``` ![](man/figures/ei.png) @@ -449,76 +538,124 @@ ggplot2::ggplot() + # Compute aspatial Index of Concentration at the Extremes (Krieger) # # ----------------------------------------------------------------- # -# Five Indices of Concentration at the Extremes based on Feldman et al. (2015) and Krieger et al. (2016) +# Five Indices of Concentration at the Extremes based on Feldman et al. (2015) and +# Krieger et al. (2016) ice2020DC <- krieger(state = 'DC', year = 2020) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the ICEs (Krieger) values to the census tract geometry -ice2020DC <- dplyr::left_join(tract2020DC, ice2020DC$ice, by = 'GEOID') +ice2020DC <- tract2020DC %>% + left_join(ice2020DC$ice, by = 'GEOID') # Plot ICE for Income -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020DC, - ggplot2::aes(fill = ICE_inc), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1,1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Index of Concentration at the Extremes\nIncome (Krieger)', - subtitle = '80th income percentile vs. 20th income percentile') +ggplot() + + geom_sf( + data = ice2020DC, + aes(fill = ICE_inc), + color = 'white' + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Index of Concentration at the Extremes\nIncome (Krieger)', + subtitle = '80th income percentile vs. 20th income percentile' + ) ``` ![](man/figures/ice1.png) ```r # Plot ICE for Education -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020DC, - ggplot2::aes(fill = ICE_edu), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1,1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Index of Concentration at the Extremes\nEducation (Krieger)', - subtitle = 'less than high school vs. four-year college degree or more') +ggplot() + + geom_sf( + data = ice2020DC, + aes(fill = ICE_edu), + color = 'white' + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Index of Concentration at the Extremes\nEducation (Krieger)', + subtitle = 'less than high school vs. four-year college degree or more' + ) ``` ![](man/figures/ice2.png) ```r # Plot ICE for Race/Ethnicity -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020DC, - ggplot2::aes(fill = ICE_rewb), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)', - subtitle = 'white non-Hispanic vs. black non-Hispanic') +ggplot() + + geom_sf( + data = ice2020DC, + aes(fill = ICE_rewb), + color = 'white' + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)', + subtitle = 'white non-Hispanic vs. black non-Hispanic' + ) ``` ![](man/figures/ice3.png) ``` # Plot ICE for Income and Race/Ethnicity Combined -## white non-Hispanic in 80th income percentile vs. black (including Hispanic) in 20th income percentile -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020DC, - ggplot2::aes(fill = ICE_wbinc), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)', - subtitle = 'white non-Hispanic in 80th income percentile vs. black (incl. Hispanic) in 20th inc. percentile') +## white non-Hispanic in 80th income percentile vs. +## black (including Hispanic) in 20th income percentile +ggplot() + + geom_sf( + data = ice2020DC, + aes(fill = ICE_wbinc), + color = 'white' + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)', + subtitle = 'white non-Hispanic in 80th income percentile vs. + black (incl. Hispanic) in 20th inc. percentile' + ) ``` ![](man/figures/ice4.png) @@ -526,16 +663,28 @@ ggplot2::ggplot() + ```r # Plot ICE for Income and Race/Ethnicity Combined ## white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020DC, - ggplot2::aes(fill = ICE_wpcinc), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = '#998ec3', mid = '#f7f7f7', high = '#f1a340', limits = c(-1, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)', - subtitle = 'white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile') +ggplot() + + geom_sf( + data = ice2020DC, + aes(fill = ICE_wpcinc), + color = 'white' + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Index of Concentration at the Extremes\nIncome and race/ethnicity combined (Krieger)', + subtitle = 'white non-Hispanic in 80th income percentile vs. + white non-Hispanic in 20th income percentile' + ) ``` ![](man/figures/ice5.png) @@ -550,25 +699,38 @@ ggplot2::ggplot() + ## Selected subgroup reference: Not Hispanic or Latino, white alone ## Selected large geography: census tract ## Selected small geography: census block group -di2020DC <- duncan(geo_large = 'tract', geo_small = 'block group', state = 'DC', - year = 2020, subgroup = 'NHoLB', subgroup_ref = 'NHoLW') +di2020DC <- duncan( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the DI (Duncan & Duncan) values to the census tract geometry -di2020DC <- dplyr::left_join(tract2020DC, di2020DC$di, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = di2020DC, - ggplot2::aes(fill = DI), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates')+ - ggplot2::ggtitle('Dissimilarity Index (Duncan & Duncan)\nWashington, D.C. census block groups to tracts', - subtitle = 'Black non-Hispanic vs. white non-Hispanic') +di2020DC <- tract2020DC %>% + left_join(di2020DC$di, by = 'GEOID') + +ggplot() + + geom_sf( + data = di2020DC, + aes(fill = DI), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Dissimilarity Index (Duncan & Duncan)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) ``` ![](man/figures/di.png) @@ -583,25 +745,37 @@ ggplot2::ggplot() + ## Selected large geography: census tract ## Selected small geography: census block group ## Default epsilon (0.5 or over- and under-representation contribute equally) -ai2020DC <- atkinson(geo_large = 'tract', geo_small = 'block group', state = 'DC', - year = 2020, subgroup = 'NHoLB') +ai2020DC <- atkinson( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the AI (Atkinson) values to the census tract geometry -ai2020DC <- dplyr::left_join(tract2020DC, ai2020DC$ai, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = ai2020DC, - ggplot2::aes(fill = AI), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Atkinson Index (Atkinson)\nWashington, D.C. census block groups to tracts', - subtitle = expression(paste('Black non-Hispanic (', epsilon, ' = 0.5)'))) +ai2020DC <- tract2020DC %>% + left_join(ai2020DC$ai, by = 'GEOID') + +ggplot() + + geom_sf( + data = ai2020DC, + aes(fill = AI), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Atkinson Index (Atkinson)\nWashington, D.C. census block groups to tracts', + subtitle = expression(paste('Black non-Hispanic (', epsilon, ' = 0.5)')) + ) ``` ![](man/figures/ai.png) @@ -616,25 +790,38 @@ ggplot2::ggplot() + ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -ii2020DC <- bell(geo_large = 'tract', geo_small = 'block group', state = 'DC', - year = 2020, subgroup = 'NHoLB', subgroup_ixn = 'NHoLW') +ii2020DC <- bell( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the II (Bell) values to the census tract geometry -ii2020DC <- dplyr::left_join(tract2020DC, ii2020DC$ii, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = ii2020DC, - ggplot2::aes(fill = II), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Isolation Index (Bell)\nWashington, D.C. census block groups to tracts', - subtitle = 'Black non-Hispanic vs. white non-Hispanic') +ii2020DC <- tract2020DC %>% + left_join(ii2020DC$ii, by = 'GEOID') + +ggplot() + + geom_sf( + data = ii2020DC, + aes(fill = II), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Isolation Index (Bell)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) ``` ![](man/figures/ii.png) @@ -648,25 +835,37 @@ ggplot2::ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -v2020DC <- white(geo_large = 'tract', geo_small = 'block group', state = 'DC', - year = 2020, subgroup = 'NHoLB') +v2020DC <- white( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the V (White) values to the census tract geometry -v2020DC <- dplyr::left_join(tract2020DC, v2020DC$v, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = v2020DC, - ggplot2::aes(fill = V), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Correlation Ratio (White)\nWashington, D.C. census block groups to tracts', - subtitle = 'Black non-Hispanic') +v2020DC <- tract2020DC %>% + left_join(v2020DC$v, by = 'GEOID') + +ggplot() + + geom_sf( + data = v2020DC, + aes(fill = V), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Correlation Ratio (White)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic' + ) ``` ![](man/figures/v.png) @@ -680,25 +879,37 @@ ggplot2::ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: state ## Selected small geography: census tract -lq2020DC <- sudano(geo_large = 'state', geo_small = 'tract', state = 'DC', - year = 2020, subgroup = 'NHoLB') +lq2020DC <- sudano( + geo_large = 'state', + geo_small = 'tract', + state = 'DC', + year = 2020, + subgroup = 'NHoLB' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the LQ (Sudano) values to the census tract geometry -lq2020DC <- dplyr::left_join(tract2020DC, lq2020DC$lq, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = lq2020DC, - ggplot2::aes(fill = LQ), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Location Quotient (Sudano)\nWashington, D.C. census tracts vs. 'state'', - subtitle = 'Black non-Hispanic') +lq2020DC <- tract2020DC %>% + left_join(lq2020DC$lq, by = 'GEOID') + +ggplot() + + geom_sf( + data = lq2020DC, + aes(fill = LQ), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Location Quotient (Sudano)\nWashington, D.C. census tracts vs. 'state'', + subtitle = 'Black non-Hispanic' + ) ``` ![](man/figures/lq.png) @@ -713,25 +924,38 @@ ggplot2::ggplot() + ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: state ## Selected small geography: census tract -lexis2020DC <- bemanian_beyer(geo_large = 'state', geo_small = 'tract', state = 'DC', - year = 2020, subgroup = 'NHoLB', subgroup_ixn = 'NHoLW') +lexis2020DC <- bemanian_beyer( + geo_large = 'state', + geo_small = 'tract', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the LEx/Is (Bemanian & Beyer) values to the census tract geometry -lexis2020DC <- dplyr::left_join(tract2020DC, lexis2020DC$lexis, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = lexis2020DC, - ggplot2::aes(fill = LExIs), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Local Exposure and Isolation (Bemanian & Beyer) metric\nWashington, D.C. census block groups to tracts', - subtitle = 'Black non-Hispanic vs. white non-Hispanic') +lexis2020DC <- tract2020DC %>% + left_join(lexis2020DC$lexis, by = 'GEOID') + +ggplot() + + geom_sf( + data = lexis2020DC, + aes(fill = LExIs), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c() + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Local Exposure and Isolation (Bemanian & Beyer) metric\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) ``` ![](man/figures/lexis.png) @@ -745,25 +969,37 @@ ggplot2::ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -del2020DC <- hoover(geo_large = 'tract', geo_small = 'block group', state = 'DC', - year = 2020, subgroup = 'NHoLB') +del2020DC <- hoover( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB' +) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tigris::tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the DEL (Hoover) values to the census tract geometry -del2020DC <- dplyr::left_join(tract2020DC, del2020DC$del, by = 'GEOID') - -ggplot2::ggplot() + - ggplot2::geom_sf(data = del2020DC, - ggplot2::aes(fill = DEL), - color = 'white') + - ggplot2::theme_bw() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = 'Index (Continuous)', - caption = 'Source: U.S. Census ACS 2016-2020 estimates') + - ggplot2::ggtitle('Delta (Hoover)\nWashington, D.C. census block groups to tracts', - subtitle = 'Black non-Hispanic') +del2020DC <- tract2020DC %>% + left_join(del2020DC$del, by = 'GEOID') + +ggplot() + + geom_sf( + data = del2020DC, + aes(fill = DEL), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Delta (Hoover)\nWashington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic' + ) ``` ![](man/figures/del.png) diff --git a/cran-comments.md b/cran-comments.md index e8c6374..a80e2cc 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,10 +1,12 @@ -## This is the sixth resubmission +## This is the seventh resubmission * Actions taken since previous submission: - * 'DescTools' is now Suggests to fix Rd cross-references NOTE - * Fixed 'lost braces in \itemize' NOTE for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions - * Fixed 'Moved Permanently' content by replacing the old URL with the new URL - * Fixed citation for Slotman _et al._ (2022) in CITATION + * Added `hoover()` function to compute the aspatial racial/ethnic Delta (DEL) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) + * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA + * 'package.R' deprecated. Replaced with 'ndi-package.R'. + * Re-formatted code and documentation throughout for consistent readability + * Updated documentation about value range of V (White) from `{0 to 1}` to `{-Inf to Inf}` + * Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states * Documentation for DESCRIPTION, README, NEWS, and vignette references the following DOIs, which throws a NOTE but are a valid URL: * @@ -15,10 +17,10 @@ * * -* Some tests and examples for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions require a Census API key so they are skipped if NULL or not run +* Some tests and examples for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `hoover()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions require a Census API key so they are skipped if NULL or not run ## Test environments -* local Windows install, R 4.2.1 +* local Windows install, R 4.4.0 * win-builder, (devel, release, oldrelease) * Rhub * Fedora Linux, R-devel, clang, gfortran diff --git a/vignettes/vignette.Rmd b/vignettes/vignette.Rmd index 1cdfcc0..71315e2 100644 --- a/vignettes/vignette.Rmd +++ b/vignettes/vignette.Rmd @@ -1,7 +1,7 @@ --- -title: "ndi: Neighborhood Deprivation Indices" +title: 'ndi: Neighborhood Deprivation Indices' author: 'Ian D. Buller (GitHub: @idblr)' -date: "`r Sys.Date()`" +date: '`r Sys.Date()`' output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{ndi: Neighborhood Deprivation Indices} @@ -11,13 +11,13 @@ vignette: > ```{r setup, include = FALSE} library(knitr) -knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, cache = FALSE, fig.show = "hold") +knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, cache = FALSE, fig.show = 'hold') ``` Start with the necessary packages for the vignette. ```{r packages, results = 'hide'} -loadedPackages <- c("dplyr", "ggplot2", "ndi", "tidycensus", "tigris") +loadedPackages <- c('dplyr', 'ggplot2', 'ndi', 'tidycensus', 'tigris') invisible(lapply(loadedPackages, library, character.only = TRUE)) options(tigris_use_cache = TRUE) ``` @@ -25,12 +25,12 @@ options(tigris_use_cache = TRUE) Set your U.S. Census Bureau access key. Follow [this link](http://api.census.gov/data/key_signup.html) to obtain one. Specify your access key in the `messer()` or `powell_wiley()` functions using the `key` argument of the `get_acs()` function from the `tidycensus` package called within each or by using the `census_api_key()` function from the `tidycensus` package before running the `messer()` or `powell_wiley()` functions (see an example of the latter below). ```{r access_key_private, echo = FALSE} -source("../dev/private_key.R") -tidycensus::census_api_key(private_key) +source(file.path('..', 'dev', 'private_key.R')) +census_api_key(private_key) ``` ```{r access_key_public, eval = FALSE} -tidycensus::census_api_key("...") # INSERT YOUR OWN KEY FROM U.S. CENSUS API +census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API ``` ### Compute NDI (Messer) @@ -49,7 +49,7 @@ Compute the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., cens | EMP | Employment | B23001 (2010 only); B23025 (2011 onward) | Percent unemployed | ```{r messer, results = 'hide'} -messer2010GA <- ndi::messer(state = "GA", year = 2010, round_output = TRUE) +messer2010GA <- messer(state = 'GA', year = 2010, round_output = TRUE) ``` One output from the `messer()` function is a tibble containing the identification, geographic name, NDI (Messer) values, and raw census characteristics for each tract. @@ -73,106 +73,134 @@ messer2010GA$missing We can visualize the NDI (Messer) values geographically by linking them to spatial information from the `tigris` package and plotting with the `ggplot2` package suite. ```{r messer_prep, results = 'hide'} -# Obtain the 2010 counties from the "tigris" package -county2010GA <- tigris::counties(state = "GA", year = 2010, cb = TRUE) +# Obtain the 2010 counties from the 'tigris' package +county2010GA <- counties(state = 'GA', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information county2010GA$GEOID <- substring(county2010GA$GEO_ID, 10) -# Obtain the 2010 census tracts from the "tigris" package -tract2010GA <- tigris::tracts(state = "GA", year = 2010, cb = TRUE) +# Obtain the 2010 census tracts from the 'tigris' package +tract2010GA <- tracts(state = 'GA', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information tract2010GA$GEOID <- substring(tract2010GA$GEO_ID, 10) # Join the NDI (Messer) values to the census tract geometry -GA2010messer <- dplyr::left_join(tract2010GA, messer2010GA$ndi, by = "GEOID") +GA2010messer <- tract2010GA %>% + left_join(messer2010GA$ndi, by = 'GEOID') ``` ```{r messer_plot, fig.height = 7, fig.width = 7} # Visualize the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., census tracts ## Continuous Index -ggplot2::ggplot() + - ggplot2::geom_sf(data = GA2010messer, - ggplot2::aes(fill = NDI), - size = 0.05, - color = "transparent") + - ggplot2::geom_sf(data = county2010GA, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Messer)", - subtitle = "GA census tracts as the referent") +ggplot() + + geom_sf( + data = GA2010messer, + aes(fill = NDI), + size = 0.05, + color = 'transparent' + ) + + geom_sf( + data = county2010GA, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Messer)', + subtitle = 'GA census tracts as the referent' + ) ## Categorical Index -### Rename "9-NDI not avail" level as NA for plotting -GA2010messer$NDIQuartNA <- factor(replace(as.character(GA2010messer$NDIQuart), - GA2010messer$NDIQuart == "9-NDI not avail", NA), - c(levels(GA2010messer$NDIQuart)[-5], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = GA2010messer, - ggplot2::aes(fill = NDIQuartNA), - size = 0.05, - color = "transparent") + - ggplot2::geom_sf(data = county2010GA, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey80") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Messer) Quartiles", - subtitle = "GA census tracts as the referent") +### Rename '9-NDI not avail' level as NA for plotting +GA2010messer$NDIQuartNA <- + factor( + replace( + as.character(GA2010messer$NDIQuart), + GA2010messer$NDIQuart == '9-NDI not avail', + NA + ), + c(levels(GA2010messer$NDIQuart)[-5], NA) + ) + +ggplot() + + geom_sf( + data = GA2010messer, + aes(fill = NDIQuartNA), + size = 0.05, + color = 'transparent' + ) + + geom_sf( + data = county2010GA, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') + + labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Messer) Quartiles', + subtitle = 'GA census tracts as the referent' + ) ``` The results above are at the tract level. The NDI (Messer) values can also be calculated at the county level. ```{r messer_county_prep, results = 'hide'} -messer2010GA_county <- ndi::messer(geo = "county", state = "GA", year = 2010) +messer2010GA_county <- messer(geo = 'county', state = 'GA', year = 2010) # Join the NDI (Messer) values to the county geometry -GA2010messer_county <- dplyr::left_join(county2010GA, messer2010GA_county$ndi, by = "GEOID") +GA2010messer_county <- county2010GA %>% + left_join(messer2010GA_county$ndi, by = 'GEOID') ``` ```{r messer_county_plot, fig.height = 7, fig.width = 7} # Visualize the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., counties ## Continuous Index -ggplot2::ggplot() + - ggplot2::geom_sf(data = GA2010messer_county, - ggplot2::aes(fill = NDI), - size = 0.20, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Messer)", - subtitle = "GA counties as the referent") +ggplot() + + geom_sf( + data = GA2010messer_county, + aes(fill = NDI), + size = 0.20, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Messer)', + subtitle = 'GA counties as the referent' + ) ## Categorical Index -### Rename "9-NDI not avail" level as NA for plotting -GA2010messer_county$NDIQuartNA <- factor(replace(as.character(GA2010messer_county$NDIQuart), - GA2010messer_county$NDIQuart == "9-NDI not avail", NA), - c(levels(GA2010messer_county$NDIQuart)[-5], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = GA2010messer_county, - ggplot2::aes(fill = NDIQuartNA), - size = 0.20, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey80") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Messer) Quartiles", - subtitle = "GA counties as the referent") +### Rename '9-NDI not avail' level as NA for plotting +GA2010messer_county$NDIQuartNA <- + factor( + replace( + as.character(GA2010messer_county$NDIQuart), + GA2010messer_county$NDIQuart == '9-NDI not avail', + NA + ), + c(levels(GA2010messer_county$NDIQuart)[-5], NA) + ) + +ggplot() + + geom_sf( + data = GA2010messer_county, + aes(fill = NDIQuartNA), + size = 0.20, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') + + labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Messer) Quartiles', + subtitle = 'GA counties as the referent' + ) ``` ### Compute NDI (Powell-Wiley) @@ -198,7 +226,11 @@ Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Maryland, Virgi More information about the [codebook](https://gis.cancer.gov/research/NeighDeprvIndex_Methods.pdf) and [computation](https://gis.cancer.gov/research/NeighDeprvIndex_Methods.pdf) of the NDI (Powell-Wiley) can be found on a [GIS Portal for Cancer Research](https://gis.cancer.gov/research/files.html#soc-dep) website. ```{r powell_wiley, results = 'hide'} -powell_wiley2020DMVW <- ndi::powell_wiley(state = c("DC", "MD", "VA", "WV"), year = 2020, round_output = TRUE) +powell_wiley2020DMVW <- powell_wiley( + state = c('DC', 'MD', 'VA', 'WV'), + year = 2020, + round_output = TRUE +) ``` One output from the `powell_wiley()` function is a tibble containing the identification, geographic name, NDI (Powell-Wiley) values, and raw census characteristics for each tract. @@ -228,197 +260,242 @@ powell_wiley2020DMVW$cronbach We can visualize the NDI (Powell-Wiley) values geographically by linking them to spatial information from the `tigris` package and plotting with the `ggplot2` package suite. ```{r powell_wiley_prep, results = 'hide'} -# Obtain the 2020 counties from the "tigris" package -county2020 <- tigris::counties(cb = TRUE) -county2020DMVW <- county2020[county2020$STUSPS %in% c("DC", "MD", "VA", "WV"), ] - -# Obtain the 2020 census tracts from the "tigris" package -tract2020D <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) -tract2020M <- tigris::tracts(state = "MD", year = 2020, cb = TRUE) -tract2020V <- tigris::tracts(state = "VA", year = 2020, cb = TRUE) -tract2020W <- tigris::tracts(state = "WV", year = 2020, cb = TRUE) +# Obtain the 2020 counties from the 'tigris' package +county2020 <- counties(cb = TRUE) +county2020DMVW <- county2020[county2020$STUSPS %in% c('DC', 'MD', 'VA', 'WV'), ] + +# Obtain the 2020 census tracts from the 'tigris' package +tract2020D <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract2020M <- tracts(state = 'MD', year = 2020, cb = TRUE) +tract2020V <- tracts(state = 'VA', year = 2020, cb = TRUE) +tract2020W <- tracts(state = 'WV', year = 2020, cb = TRUE) tracts2020DMVW <- rbind(tract2020D, tract2020M, tract2020V, tract2020W) # Join the NDI (Powell-Wiley) values to the census tract geometry -DMVW2020pw <- dplyr::left_join(tracts2020DMVW, powell_wiley2020DMVW$ndi, by = "GEOID") +DMVW2020pw <- tracts2020DMVW %>% + left_join(powell_wiley2020DMVW$ndi, by = 'GEOID') ``` ```{r powell_wiley_plot, fig.height = 4, fig.width = 7} # Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) ## Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., census tracts ## Continuous Index -ggplot2::ggplot() + - ggplot2::geom_sf(data = DMVW2020pw, - ggplot2::aes(fill = NDI), - color = NA) + - ggplot2::geom_sf(data = county2020DMVW, - fill = "transparent", - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c(na.value = "grey80") + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley)", - subtitle = "DC, MD, VA, and WV tracts as the referent") +ggplot() + + geom_sf( + data = DMVW2020pw, + aes(fill = NDI), + color = NA + ) + + geom_sf( + data = county2020DMVW, + fill = 'transparent', + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_c(na.value = 'grey80') + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley)', + subtitle = 'DC, MD, VA, and WV tracts as the referent' + ) ## Categorical Index (Population-weighted quintiles) -### Rename "9-NDI not avail" level as NA for plotting -DMVW2020pw$NDIQuintNA <- factor(replace(as.character(DMVW2020pw$NDIQuint), - DMVW2020pw$NDIQuint == "9-NDI not avail", NA), - c(levels(DMVW2020pw$NDIQuint)[-6], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DMVW2020pw, - ggplot2::aes(fill = NDIQuintNA), - color = NA) + - ggplot2::geom_sf(data = county2020DMVW, - fill = "transparent", - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey80") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates")+ - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles", - subtitle = "DC, MD, VA, and WV tracts as the referent") +### Rename '9-NDI not avail' level as NA for plotting +DMVW2020pw$NDIQuintNA <- + factor(replace( + as.character(DMVW2020pw$NDIQuint), + DMVW2020pw$NDIQuint == '9-NDI not avail', + NA + ), + c(levels(DMVW2020pw$NDIQuint)[-6], NA)) + +ggplot() + + geom_sf(data = DMVW2020pw, aes(fill = NDIQuintNA), color = NA) + + geom_sf(data = county2020DMVW, fill = 'transparent', color = 'white') + + theme_minimal() + + scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') + + labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles', + subtitle = 'DC, MD, VA, and WV tracts as the referent' + ) ``` Like the NDI (Messer), we also compute county-level NDI (Powell-Wiley). ```{r powell_wiley_county_prep, results = 'hide'} -# Obtain the 2020 counties from the "tigris" package -county2020DMVW <- tigris::counties(state = c("DC", "MD", "VA", "WV"), year = 2020, cb = TRUE) +# Obtain the 2020 counties from the 'tigris' package +county2020DMVW <- counties(state = c('DC', 'MD', 'VA', 'WV'), year = 2020, cb = TRUE) # NDI (Powell-Wiley) at the county level (2016-2020) -powell_wiley2020DMVW_county <- ndi::powell_wiley(geo = "county", - state = c("DC", "MD", "VA", "WV"), - year = 2020) +powell_wiley2020DMVW_county <- powell_wiley( + geo = 'county', + state = c('DC', 'MD', 'VA', 'WV'), + year = 2020 +) # Join the NDI (Powell-Wiley) values to the county geometry -DMVW2020pw_county <- dplyr::left_join(county2020DMVW, powell_wiley2020DMVW_county$ndi, by = "GEOID") +DMVW2020pw_county <- county2020DMVW %>% + left_join(powell_wiley2020DMVW_county$ndi, by = 'GEOID') ``` ```{r powell_wiley_county_plot, fig.height = 4, fig.width = 7} # Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) ## Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., counties ## Continuous Index -ggplot2::ggplot() + - ggplot2::geom_sf(data = DMVW2020pw_county, - ggplot2::aes(fill = NDI), - size = 0.20, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley)", - subtitle = "DC, MD, VA, and WV counties as the referent") +ggplot() + + geom_sf( + data = DMVW2020pw_county, + aes(fill = NDI), + size = 0.20, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley)', + subtitle = 'DC, MD, VA, and WV counties as the referent' + ) ## Categorical Index -### Rename "9-NDI not avail" level as NA for plotting -DMVW2020pw_county$NDIQuintNA <- factor(replace(as.character(DMVW2020pw_county$NDIQuint), - DMVW2020pw_county$NDIQuint == "9-NDI not avail", NA), - c(levels(DMVW2020pw_county$NDIQuint)[-6], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DMVW2020pw_county, - ggplot2::aes(fill = NDIQuint), - size = 0.20, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey80") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles", - subtitle = "DC, MD, VA, and WV counties as the referent") +### Rename '9-NDI not avail' level as NA for plotting +DMVW2020pw_county$NDIQuintNA <- + factor( + replace( + as.character(DMVW2020pw_county$NDIQuint), + DMVW2020pw_county$NDIQuint == '9-NDI not avail', + NA + ), + c(levels(DMVW2020pw_county$NDIQuint)[-6], NA) + ) + +ggplot() + + geom_sf( + data = DMVW2020pw_county, + aes(fill = NDIQuint), + size = 0.20, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') + + labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles', + subtitle = 'DC, MD, VA, and WV counties as the referent' + ) ``` ### Advanced Features #### Imputing missing census variables -In the `messer()` and `powell_wiley()` functions, missing census characteristics can be imputed using the `missing` and `impute` arguments of the `pca()` function in the `psych` package called within the `messer()` and `powell_wiley()` functions. Impute values using the logical `imp` argument (currently only calls `impute = "median"` by default, which assigns the median values of each missing census variable for a geography). +In the `messer()` and `powell_wiley()` functions, missing census characteristics can be imputed using the `missing` and `impute` arguments of the `pca()` function in the `psych` package called within the `messer()` and `powell_wiley()` functions. Impute values using the logical `imp` argument (currently only calls `impute = 'median'` by default, which assigns the median values of each missing census variable for a geography). ```{r powell_wiley_imp, results = 'hide'} -powell_wiley2020DC <- ndi::powell_wiley(state = "DC", year = 2020) # without imputation -powell_wiley2020DCi <- ndi::powell_wiley(state = "DC", year = 2020, imp = TRUE) # with imputation +powell_wiley2020DC <- powell_wiley(state = 'DC', year = 2020) # without imputation +powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # with imputation table(is.na(powell_wiley2020DC$ndi$NDI)) # n=13 tracts without NDI (Powell-Wiley) values table(is.na(powell_wiley2020DCi$ndi$NDI)) # n=0 tracts without NDI (Powell-Wiley) values -# Obtain the 2020 census tracts from the "tigris" package -tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE) +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (Powell-Wiley) values to the census tract geometry -DC2020pw <- dplyr::left_join(tract2020DC, powell_wiley2020DC$ndi, by = "GEOID") -DC2020pw <- dplyr::left_join(DC2020pw, powell_wiley2020DCi$ndi, by = "GEOID", suffix = c("_nonimp", "_imp")) +DC2020pw <- tract2020DC %>% + left_join(powell_wiley2020DC$ndi, by = 'GEOID') +DC2020pw <- DC2020pw %>% + left_join(powell_wiley2020DCi$ndi, by = 'GEOID', suffix = c('_nonimp', '_imp')) ``` ```{r powell_wiley_imp_plot, fig.height = 7, fig.width = 7} -# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C., census tracts +# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for +## Washington, D.C., census tracts ## Continuous Index -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020pw, - ggplot2::aes(fill = NDI_nonimp), - size = 0.2, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley), Non-Imputed", - subtitle = "DC census tracts as the referent") - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020pw, - ggplot2::aes(fill = NDI_imp), - size = 0.2, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley), Imputed", - subtitle = "DC census tracts as the referent") +ggplot() + + geom_sf( + data = DC2020pw, + aes(fill = NDI_nonimp), + size = 0.2, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley), Non-Imputed', + subtitle = 'DC census tracts as the referent' + ) + +ggplot() + + geom_sf( + data = DC2020pw, + aes(fill = NDI_imp), + size = 0.2, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley), Imputed', + subtitle = 'DC census tracts as the referent' + ) ## Categorical Index -### Rename "9-NDI not avail" level as NA for plotting -DC2020pw$NDIQuintNA_nonimp <- factor(replace(as.character(DC2020pw$NDIQuint_nonimp), - DC2020pw$NDIQuint_nonimp == "9-NDI not avail", NA), - c(levels(DC2020pw$NDIQuint_nonimp)[-6], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020pw, - ggplot2::aes(fill = NDIQuintNA_nonimp), - size = 0.2, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey80") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Non-Imputed", - subtitle = "DC census tracts as the referent") - -### Rename "9-NDI not avail" level as NA for plotting -DC2020pw$NDIQuintNA_imp <- factor(replace(as.character(DC2020pw$NDIQuint_imp), - DC2020pw$NDIQuint_imp == "9-NDI not avail", NA), - c(levels(DC2020pw$NDIQuint_imp)[-6], NA)) - -ggplot2::ggplot() + - ggplot2::geom_sf(data = DC2020pw, - ggplot2::aes(fill = NDIQuintNA_imp), - size = 0.2, - color = "white") + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE), - na.value = "grey80") + - ggplot2::labs(fill = "Index (Categorical)", - caption = "Source: U.S. Census ACS 2016-2020 estimates") + - ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Imputed", - subtitle = "DC census tracts as the referent") +### Rename '9-NDI not avail' level as NA for plotting +DC2020pw$NDIQuintNA_nonimp <- + factor( + replace( + as.character(DC2020pw$NDIQuint_nonimp), + DC2020pw$NDIQuint_nonimp == '9-NDI not avail', + NA + ), + c(levels(DC2020pw$NDIQuint_nonimp)[-6], NA) + ) + +ggplot() + + geom_sf( + data = DC2020pw, + aes(fill = NDIQuintNA_nonimp), + size = 0.2, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') + + labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Non-Imputed', + subtitle = 'DC census tracts as the referent' + ) + +### Rename '9-NDI not avail' level as NA for plotting +DC2020pw$NDIQuintNA_imp <- + factor( + replace( + as.character(DC2020pw$NDIQuint_imp), + DC2020pw$NDIQuint_imp == '9-NDI not avail', + NA + ), + c(levels(DC2020pw$NDIQuint_imp)[-6], NA) + ) + +ggplot() + + geom_sf( + data = DC2020pw, + aes(fill = NDIQuintNA_imp), + size = 0.2, + color = 'white' + ) + + theme_minimal() + + scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') + + labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') + + ggtitle( + 'Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Imputed', + subtitle = 'DC census tracts as the referent' + ) ``` #### Assign the referent (U.S.-Standardized Metric) @@ -426,25 +503,30 @@ ggplot2::ggplot() + To conduct a contiguous US-standardized index, compute an NDI for all states as in the example below that replicates the nationally standardized NDI (Powell-Wiley) values (2013-2017 ACS-5) found in [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) and available from a [GIS Portal for Cancer Research](https://gis.cancer.gov/research/files.html#soc-dep) website. To replicate the nationally standardized NDI (Powell-Wiley) values (2006-2010 ACS-5) found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) change the `year` argument to `2010` (i.e., `year = 2010`). ```{r national_prep, results = 'hide'} -us <- tigris::states() -n51 <- c("Commonwealth of the Northern Mariana Islands", "Guam", "American Samoa", - "Puerto Rico", "United States Virgin Islands") +us <- states() +n51 <- c( + 'Commonwealth of the Northern Mariana Islands', + 'Guam', + 'American Samoa', + 'Puerto Rico', + 'United States Virgin Islands' +) y51 <- us$STUSPS[!(us$NAME %in% n51)] start_time <- Sys.time() # record start time -powell_wiley2017US <- ndi::powell_wiley(state = y51, year = 2017) +powell_wiley2017US <- powell_wiley(state = y51, year = 2017) end_time <- Sys.time() # record end time time_srr <- end_time - start_time # Calculate run time ``` ```{r national_hist, fig.height = 7, fig.width = 7} -ggplot2::ggplot(powell_wiley2017US$ndi, - ggplot2::aes(x = NDI)) + - ggplot2::geom_histogram(color = "black", - fill = "white") + - ggplot2::theme_minimal() + - ggplot2::ggtitle("Histogram of US-standardized NDI (Powell-Wiley) values (2013-2017)", - subtitle = "U.S. census tracts as the referent (including AK, HI, and DC)") +ggplot(powell_wiley2017US$ndi, aes(x = NDI)) + + geom_histogram(color = 'black', fill = 'white') + + theme_minimal() + + ggtitle( + 'Histogram of US-standardized NDI (Powell-Wiley) values (2013-2017)', + subtitle = 'U.S. census tracts as the referent (including AK, HI, and DC)' + ) ``` The process to compute a US-standardized NDI (Powell-Wiley) took about `r round(time_srr, digits = 1)` minutes to run on a machine with the features listed at the end of the vignette. @@ -463,6 +545,7 @@ Since version v0.1.1, the `ndi` package can compute additional metrics of socio- 8. `white()` function that computes the aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) 9. `sudano()` function that computes the aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) 10. `bemanian_beyer()` function that computes the aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) +11. `hoover()` function that computes the aspatial racial/ethnic Delta based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) #### Compute Racial Isolation Index (RI) @@ -494,83 +577,99 @@ Compute the spatial RI values (2006-2010 5-year ACS) for North Carolina, U.S.A. A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., Not Hispanic or Latino, Black or African American alone) will have an RI value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or Latino, Black or African American alone) will have an RI value close to 0. ```{r anthopolos_prep, results = 'hide'} -anthopolos2010NC <- ndi::anthopolos(state = "NC", year = 2010, subgroup = "NHoLB") +anthopolos2010NC <- anthopolos(state = 'NC', year = 2010, subgroup = 'NHoLB') -# Obtain the 2010 census tracts from the "tigris" package -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 census tracts from the 'tigris' package +tract2010NC <- tracts(state = 'NC', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) -# Obtain the 2010 counties from the "tigris" package -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 counties from the 'tigris' package +county2010NC <- counties(state = 'NC', year = 2010, cb = TRUE) # Join the RI values to the census tract geometry -NC2010anthopolos <- dplyr::left_join(tract2010NC, anthopolos2010NC$ri, by = "GEOID") +NC2010anthopolos <- tract2010NC %>% + left_join(anthopolos2010NC$ri, by = 'GEOID') ``` ```{r anthopolos_plot, fig.height = 4, fig.width = 7} # Visualize the RI values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts -ggplot2::ggplot() + - ggplot2::geom_sf(data = NC2010anthopolos, - ggplot2::aes(fill = RI), - size = 0.05, - color = "transparent") + - ggplot2::geom_sf(data = county2010NC, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Racial Isolation Index (Anthopolos), non-Hispanic Black", - subtitle = "NC census tracts (not corrected for edge effects)") +ggplot() + + geom_sf( + data = NC2010anthopolos, + aes(fill = RI), + size = 0.05, + color = 'transparent' + ) + + geom_sf( + data = county2010NC, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Racial Isolation Index (Anthopolos), non-Hispanic Black', + subtitle = 'NC census tracts (not corrected for edge effects)' + ) ``` The current version of the `ndi` package does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. ```{r anthopolos_edge_prep, results = 'hide'} # Compute RI for all census tracts in neighboring states -anthopolos2010GNSTV <- ndi::anthopolos(state = c("GA", "NC", "SC", "TN", "VA"), - year = 2010, subgroup = "NHoLB") +anthopolos2010GNSTV <- anthopolos( + state = c('GA', 'NC', 'SC', 'TN', 'VA'), + year = 2010, + subgroup = 'NHoLB' +) # Crop to only North Carolina, U.S.A. census tracts -anthopolos2010NCe <- anthopolos2010GNSTV$ri[anthopolos2010GNSTV$ri$GEOID %in% anthopolos2010NC$ri$GEOID, ] +anthopolos2010NCe <- anthopolos2010GNSTV$ri[anthopolos2010GNSTV$ri$GEOID %in% + anthopolos2010NC$ri$GEOID, ] -# Obtain the 2010 census tracts from the "tigris" package -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 census tracts from the 'tigris' package +tract2010NC <- tracts(state = 'NC', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) -# Obtain the 2010 counties from the "tigris" package -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 counties from the 'tigris' package +county2010NC <- counties(state = 'NC', year = 2010, cb = TRUE) # Join the RI values to the census tract geometry -edgeNC2010anthopolos <- dplyr::left_join(tract2010NC, anthopolos2010NCe, by = "GEOID") +edgeNC2010anthopolos <- tract2010NC %>% + left_join(anthopolos2010NCe, by = 'GEOID') ``` ```{r anthopolos_edge_plot, fig.height = 4, fig.width = 7} # Visualize the RI values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts -ggplot2::ggplot() + - ggplot2::geom_sf(data = edgeNC2010anthopolos, - ggplot2::aes(fill = RI), - size = 0.05, - color = "transparent") + - ggplot2::geom_sf(data = county2010NC, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Racial Isolation Index (Anthopolos), non-Hispanic Black", - subtitle = "NC census tracts (corrected for interstate edge effects)") +ggplot() + + geom_sf( + data = edgeNC2010anthopolos, + aes(fill = RI), + size = 0.05, + color = 'transparent' + ) + + geom_sf( + data = county2010NC, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Racial Isolation Index (Anthopolos), non-Hispanic Black', + subtitle = 'NC census tracts (corrected for interstate edge effects)' + ) ``` #### Compute Educational Isolation Index (EI) -Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) that assessed the educational isolation of the population without a four-year college degree. Multiple educational attainment categories are available in the `bravo()` function, including: +Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for Oklahoma, U.S.A., census tracts. This metric is based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) that assessed the educational isolation of the population without a four-year college degree. Multiple educational attainment categories are available in the `bravo()` function, including: | ACS table source | educational attainment category | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -579,84 +678,93 @@ Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, | B06009_004 | some college or associate's degree | SCoAD | | B06009_005 | Bachelor's degree | BD | | B06009_006 | graduate or professional degree | GoPD | -Note: The ACS-5 data (2005-2009) uses the "B15002" question. +Note: The ACS-5 data (2005-2009) uses the 'B15002' question. A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a four-year college degree or more) will have an EI (Bravo) value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., with a four-year college degree) will have an EI (Bravo) value close to 0. ```{r bravo_prep, results = 'hide'} -bravo2010NC <- ndi::bravo(state = "NC", year = 2010, subgroup = c("LtHS", "HSGiE", "SCoAD")) +bravo2010OK <- bravo(state = 'OK', year = 2010, subgroup = c('LtHS', 'HSGiE', 'SCoAD')) -# Obtain the 2010 census tracts from the "tigris" package -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 census tracts from the 'tigris' package +tract2010OK <- tracts(state = 'OK', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information -tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) +tract2010OK$GEOID <- substring(tract2010OK$GEO_ID, 10) -# Obtain the 2010 counties from the "tigris" package -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 counties from the 'tigris' package +county2010OK <- counties(state = 'OK', year = 2010, cb = TRUE) # Join the EI (Bravo) values to the census tract geometry -NC2010bravo <- dplyr::left_join(tract2010NC, bravo2010NC$ei, by = "GEOID") +OK2010bravo <- tract2010OK %>% + left_join(bravo2010OK$ei, by = 'GEOID') ``` ```{r bravo_plot, fig.height = 4, fig.width = 7} -# Visualize the EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts -ggplot2::ggplot() + - ggplot2::geom_sf(data = NC2010bravo, - ggplot2::aes(fill = EI), - size = 0.05, - color = "transparent") + - ggplot2::geom_sf(data = county2010NC, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Educational Isolation Index (Bravo), without a four-year college degree", - subtitle = "NC census tracts (not corrected for edge effects)") +# Visualize the EI (Bravo) values (2006-2010 5-year ACS) for Oklahoma, U.S.A., census tracts +ggplot() + + geom_sf( + data = OK2010bravo, + aes(fill = EI), + size = 0.05, + color = 'transparent' + ) + + geom_sf( + data = county2010OK, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Educational Isolation Index (Bravo), without a four-year college degree', + subtitle = 'OK census tracts (not corrected for edge effects)' + ) ``` Can correct one source of edge effect in the same manner as shown for the RI metric. #### Retrieve the Gini Index -Retrieve the aspatial Gini Index values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts. This metric is based on [Gini (1921)](https://doi.org/10.2307/2223319), and the `gini()` function retrieves the estimate from the ACS-5. +Retrieve the aspatial Gini Index values (2006-2010 5-year ACS) for Massachusetts, U.S.A., census tracts. This metric is based on [Gini (1921)](https://doi.org/10.2307/2223319), and the `gini()` function retrieves the estimate from the ACS-5. -According to the [U.S. Census Bureau](https://census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html): "The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution." +According to the [U.S. Census Bureau](https://census.gov/topics/income-poverty/income-inequality/about/metrics/gini-index.html): 'The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) and the notion of a perfectly equal income distribution.' ```{r gini_prep, results = 'hide'} -gini2010NC <- ndi::gini(state = "NC", year = 2010) +gini2010MA <- gini(state = 'MA', year = 2010) -# Obtain the 2010 census tracts from the "tigris" package -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 census tracts from the 'tigris' package +tract2010MA <- tracts(state = 'MA', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information -tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) +tract2010MA$GEOID <- substring(tract2010MA$GEO_ID, 10) -# Obtain the 2010 counties from the "tigris" package -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE) +# Obtain the 2010 counties from the 'tigris' package +county2010MA <- counties(state = 'MA', year = 2010, cb = TRUE) # Join the Gini Index values to the census tract geometry -NC2010gini <- dplyr::left_join(tract2010NC, gini2010NC$gini, by = "GEOID") +MA2010gini <- tract2010MA %>% + left_join(gini2010MA$gini, by = 'GEOID') ``` ```{r gini_plot, fig.height = 4, fig.width = 7} -# Visualize the Gini Index values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts -ggplot2::ggplot() + - ggplot2::geom_sf(data = NC2010gini, - ggplot2::aes(fill = gini), - size = 0.05, - color = "transparent") + - ggplot2::geom_sf(data = county2010NC, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Gini Index", - subtitle = "NC census tracts") +# Visualize the Gini Index values (2006-2010 5-year ACS) for Massachusetts, U.S.A., census tracts +ggplot() + + geom_sf( + data = MA2010gini, + aes(fill = gini), + size = 0.05, + color = 'transparent' + ) + + geom_sf( + data = county2010MA, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle('Gini Index', subtitle = 'MA census tracts') ``` ### Index of Concentration at the Extremes (ICE) @@ -665,93 +773,135 @@ Compute the aspatial Index of Concentration at the Extremes values (2006-2010 5- | ACS table group | ICE metric | Comparison | -------------- | ------------- | ---------------- | -| B19001 | Income, "ICE_inc"| 80th income percentile vs. 20th income percentile | -| B15002 | Education, "ICE_edu"| less than high school vs. four-year college degree or more | -| B03002 | Race/Ethnicity, "ICE_rewb"| 80th income percentile vs. 20th income percentile | -| B19001 & B19001B & B19001H | Income and race/ethnicity combined, "ICE_wbinc" | white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile | -| B19001 & B19001H | Income and race/ethnicity combined, "ICE_wpcinc"| white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile | +| B19001 | Income, 'ICE_inc'| 80th income percentile vs. 20th income percentile | +| B15002 | Education, 'ICE_edu'| less than high school vs. four-year college degree or more | +| B03002 | Race/Ethnicity, 'ICE_rewb'| 80th income percentile vs. 20th income percentile | +| B19001 & B19001B & B19001H | Income and race/ethnicity combined, 'ICE_wbinc' | white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile | +| B19001 & B19001H | Income and race/ethnicity combined, 'ICE_wpcinc'| white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile | ICE metrics can range in value from −1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. ```{r krieger_prep, results = 'hide'} -ice2020WC <- krieger(state = "MI", county = "Wayne", year = 2010) +ice2020WC <- krieger(state = 'MI', county = 'Wayne', year = 2010) -# Obtain the 2010 census tracts from the "tigris" package -tract2010WC <- tigris::tracts(state = "MI", county = "Wayne", year = 2010, cb = TRUE) +# Obtain the 2010 census tracts from the 'tigris' package +tract2010WC <- tracts(state = 'MI', county = 'Wayne', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information tract2010WC$GEOID <- substring(tract2010WC$GEO_ID, 10) # Join the ICE values to the census tract geometry -ice2020WC <- dplyr::left_join(tract2010WC, ice2020WC$ice, by = "GEOID") +ice2020WC <- tract2010WC %>% + left_join(ice2020WC$ice, by = 'GEOID') ``` ```{r krieger_plot, fig.height = 5.5, fig.width = 7} # Plot ICE for Income -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020WC, - ggplot2::aes(fill = ICE_inc), - color = "white", - size = 0.05) + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1,1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome (Krieger)", - subtitle = "80th income percentile vs. 20th income percentile") +ggplot() + + geom_sf( + data = ice2020WC, + aes(fill = ICE_inc), + color = 'white', + size = 0.05 + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Index of Concentration at the Extremes\nIncome (Krieger)', + subtitle = '80th income percentile vs. 20th income percentile' + ) # Plot ICE for Education -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020WC, - ggplot2::aes(fill = ICE_edu), - color = "white", - size = 0.05) + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1,1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nEducation (Krieger)", - subtitle = "less than high school vs. four-year college degree or more") +ggplot() + + geom_sf( + data = ice2020WC, + aes(fill = ICE_edu), + color = 'white', + size = 0.05 + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Index of Concentration at the Extremes\nEducation (Krieger)', + subtitle = 'less than high school vs. four-year college degree or more' + ) # Plot ICE for Race/Ethnicity -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020WC, - ggplot2::aes(fill = ICE_rewb), - color = "white", - size = 0.05) + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)", - subtitle = "white non-Hispanic vs. black non-Hispanic") +ggplot() + + geom_sf( + data = ice2020WC, + aes(fill = ICE_rewb), + color = 'white', + size = 0.05 + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)', + subtitle = 'white non-Hispanic vs. black non-Hispanic' + ) # Plot ICE for Income and Race/Ethnicity Combined -## white non-Hispanic in 80th income percentile vs. black (including Hispanic) in 20th income percentile -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020WC, - ggplot2::aes(fill = ICE_wbinc), - color = "white", - size = 0.05) + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)", - subtitle = "white non-Hispanic in 80th inc ptcl vs. black alone in 20th inc pctl") +## white non-Hispanic in 80th income percentile vs. +## black (including Hispanic) in 20th income percentile +ggplot() + + geom_sf( + data = ice2020WC, + aes(fill = ICE_wbinc), + color = 'white', + size = 0.05 + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)', + subtitle = 'white non-Hispanic in 80th inc ptcl vs. black alone in 20th inc pctl' + ) # Plot ICE for Income and Race/Ethnicity Combined ## white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile -ggplot2::ggplot() + - ggplot2::geom_sf(data = ice2020WC, - ggplot2::aes(fill = ICE_wpcinc), - color = "white", - size = 0.05) + - ggplot2::theme_bw() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates")+ - ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)", - subtitle = "white non-Hispanic (WNH) in 80th inc pctl vs. WNH in 20th inc pctl") +ggplot() + + geom_sf( + data = ice2020WC, + aes(fill = ICE_wpcinc), + color = 'white', + size = 0.05 + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + limits = c(-1, 1) + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)', + subtitle = 'white non-Hispanic (WNH) in 80th inc pctl vs. WNH in 20th inc pctl' + ) ``` #### Compute racial/ethnic Dissimilarity Index (DI) @@ -784,40 +934,52 @@ Compute the aspatial racial/ethnic DI values (2006-2010 5-year ACS) for Pennsylv DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. DI can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. ```{r duncan_prep, results = 'hide'} -duncan2010PA <- ndi::duncan(geo_large = "county", geo_small = "tract", state = "PA", - year = 2010, subgroup = "NHoLB", subgroup_ref = "NHoLW") - -# Obtain the 2010 census counties from the "tigris" package -county2010PA <- tigris::counties(state = "PA", year = 2010, cb = TRUE) +duncan2010PA <- duncan( + geo_large = 'county', + geo_small = 'tract', + state = 'PA', + year = 2010, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW' +) + +# Obtain the 2010 census counties from the 'tigris' package +county2010PA <- counties(state = 'PA', year = 2010, cb = TRUE) # Remove first 9 characters from GEOID for compatibility with tigris information county2010PA$GEOID <- substring(county2010PA$GEO_ID, 10) # Join the DI values to the county geometry -PA2010duncan <- dplyr::left_join(county2010PA, duncan2010PA$di, by = "GEOID") +PA2010duncan <- county2010PA %>% + left_join(duncan2010PA$di, by = 'GEOID') ``` ```{r duncan_plot, fig.height = 4, fig.width = 7} # Visualize the DI values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = PA2010duncan, - ggplot2::aes(fill = DI), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2010PA, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2006-2010 estimates") + - ggplot2::ggtitle("Dissimilarity Index (Duncan & Duncan)\nPennsylvania census tracts to counties", - subtitle = "Black non-Hispanic vs. white non-Hispanic") +ggplot() + + geom_sf( + data = PA2010duncan, + aes(fill = DI), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2010PA, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') + + ggtitle( + 'Dissimilarity Index (Duncan & Duncan)\nPennsylvania census tracts to counties', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) ``` #### Compute aspatial income or racial/ethnic Atkinson Index (AI) -Compute the aspatial income or racial/ethnic AI values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on [Atkinson (1970)](https://doi.org/10.2307/2088328) that assessed the distribution of income within 12 counties but has since been adapted to study racial/ethnic segregation (see [James & Taeuber 1985](https://doi.org/10.2307/270845)). To compare median household income, specify `subgroup = "MedHHInc"` which will use the ACS-5 variable "B19013_001" in the computation. Multiple racial/ethnic subgroups are available in the `atkinson()` function, including: +Compute the aspatial income or racial/ethnic AI values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on [Atkinson (1970)](https://doi.org/10.2307/2088328) that assessed the distribution of income within 12 counties but has since been adapted to study racial/ethnic segregation (see [James & Taeuber 1985](https://doi.org/10.2307/270845)). To compare median household income, specify `subgroup = 'MedHHInc'` which will use the ACS-5 variable 'B19013_001' in the computation. Multiple racial/ethnic subgroups are available in the `atkinson()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -844,41 +1006,53 @@ Compute the aspatial income or racial/ethnic AI values (2017-2021 5-year ACS) fo AI is a measure of the inequality and, in the context of residential race/ethnicity, segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. AI can range in value from 0 to 1 and smaller values of the index indicate lower levels of inequality (e.g., less segregation). -AI is sensitive to the choice of `epsilon` argument or the shape parameter that determines how to weight the increments to inequality (segregation) contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The `epsilon` argument must have values between 0 and 1.0. For `0 <= epsilon < 0.5` or less "inequality-averse," smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ("over-representation"). For `0.5 < epsilon <= 1.0` or more "inequality-averse," smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ("under-representation"). If `epsilon = 0.5` (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of [Saint-Jacques et al. (2020)](https://doi.org/10.48550/arXiv.2002.05819) for one method to select `epsilon`. We choose `epsilon = 0.67` in the example below: +AI is sensitive to the choice of `epsilon` argument or the shape parameter that determines how to weight the increments to inequality (segregation) contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The `epsilon` argument must have values between 0 and 1.0. For `0 <= epsilon < 0.5` or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For `0.5 < epsilon <= 1.0` or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If `epsilon = 0.5` (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of [Saint-Jacques et al. (2020)](https://doi.org/10.48550/arXiv.2002.05819) for one method to select `epsilon`. We choose `epsilon = 0.67` in the example below: ```{r atkinson_prep, results = 'hide'} -atkinson2021KY <- ndi::atkinson(geo_large = "county", geo_small = "block group", state = "KY", - year = 2021, subgroup = "NHoLB", epsilon = 0.67) - -# Obtain the 2021 census counties from the "tigris" package -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) +atkinson2021KY <- atkinson( + geo_large = 'county', + geo_small = 'block group', + state = 'KY', + year = 2021, + subgroup = 'NHoLB', + epsilon = 0.67 +) + +# Obtain the 2021 census counties from the 'tigris' package +county2021KY <- counties(state = 'KY', year = 2021, cb = TRUE) # Join the AI values to the county geometry -KY2021atkinson <- dplyr::left_join(county2021KY, atkinson2021KY$ai, by = "GEOID") +KY2021atkinson <- county2021KY %>% + left_join(atkinson2021KY$ai, by = 'GEOID') ``` ```{r atkinson_plot, fig.height = 4, fig.width = 7} # Visualize the AI values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = KY2021atkinson, - ggplot2::aes(fill = AI), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2021KY, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2017-2021 estimates") + - ggplot2::ggtitle("Atkinson Index (Atkinson)\nKentucky census block groups to counties", - subtitle = expression(paste("Black non-Hispanic (", epsilon, " = 0.67)"))) +ggplot() + + geom_sf( + data = KY2021atkinson, + aes(fill = AI), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021KY, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Atkinson Index (Atkinson)\nKentucky census block groups to counties', + subtitle = expression(paste('Black non-Hispanic (', epsilon, ' = 0.67)')) + ) ``` #### Compute racial/ethnic Isolation Index (II) -Compute the aspatial racial/ethnic II values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and adapted by [Bell (1954)](https://doi.org/10.2307/2574118). Multiple racial/ethnic subgroups are available in the `bell()` function, including: +Compute the aspatial racial/ethnic II values (2017-2021 5-year ACS) for Ohio, U.S.A., counties from census block groups. This metric is based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and adapted by [Bell (1954)](https://doi.org/10.2307/2574118). Multiple racial/ethnic subgroups are available in the `bell()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` or or `subgroup_ref` argument | | -------------- | ------------- | ---------------- | @@ -906,38 +1080,50 @@ Compute the aspatial racial/ethnic II values (2017-2021 5-year ACS) for Kentucky II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. II can range in value from 0 to 1. ```{r bell_prep, results = 'hide'} -bell2021KY <- ndi::bell(geo_large = "county", geo_small = "tract", state = "KY", - year = 2021, subgroup = "NHoLB", subgroup_ixn = "NHoLW") - -# Obtain the 2021 census counties from the "tigris" package -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) +bell2021OH <- bell( + geo_large = 'county', + geo_small = 'tract', + state = 'OH', + year = 2021, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW' +) + +# Obtain the 2021 census counties from the 'tigris' package +county2021OH <- counties(state = 'OH', year = 2021, cb = TRUE) # Join the II values to the county geometry -KY2021bell <- dplyr::left_join(county2021KY, bell2021KY$ii, by = "GEOID") +OH2021bell <- county2021OH %>% + left_join(bell2021OH$ii, by = 'GEOID') ``` -```{r bell_plot, fig.height = 4, fig.width = 7} -# Visualize the II values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = KY2021bell, - ggplot2::aes(fill = II), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2021KY, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2017-2021 estimates") + - ggplot2::ggtitle("Isolation Index (Bell)\nKentucky census tracts to counties", - subtitle = "Black non-Hispanic vs. white non-Hispanic") +```{r bell_plot, fig.height = 6, fig.width = 7} +# Visualize the II values (2017-2021 5-year ACS) for Ohio, U.S.A., counties +ggplot() + + geom_sf( + data = OH2021bell, + aes(fill = II), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021OH, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Isolation Index (Bell)\nOhio census tracts to counties', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) ``` #### Compute Correlation Ratio (V) -Compute the aspatial racial/ethnic V values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census tracts. This metric is based on [Bell (1954)](https://doi.org/10.2307/2574118) and adapted by [White (1986)](https://doi.org/10.2307/3644339). Multiple racial/ethnic subgroups are available in the `white()` function, including: +Compute the aspatial racial/ethnic V values (2017-2021 5-year ACS) for South Carolina, U.S.A., counties from census tracts. This metric is based on [Bell (1954)](https://doi.org/10.2307/2574118) and adapted by [White (1986)](https://doi.org/10.2307/3644339). Multiple racial/ethnic subgroups are available in the `white()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -962,41 +1148,52 @@ Compute the aspatial racial/ethnic V values (2017-2021 5-year ACS) for Kentucky, | B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | | B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | -V removes the asymmetry from the Isolation Index by controlling for the effect of population composition when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The Isolation Index is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from 0 to 1. +V removes the asymmetry from the Isolation Index by controlling for the effect of population composition when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The Isolation Index is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from -Inf to Inf. ```{r white_prep, results = 'hide'} -white2021KY <- ndi::white(geo_large = "county", geo_small = "tract", state = "KY", - year = 2021, subgroup = "NHoLB") +white2021SC <- white( + geo_large = 'county', + geo_small = 'tract', + state = 'SC', + year = 2021, + subgroup = 'NHoLB' +) -# Obtain the 2021 census counties from the "tigris" package -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) +# Obtain the 2021 census counties from the 'tigris' package +county2021SC <- counties(state = 'SC', year = 2021, cb = TRUE) # Join the V values to the county geometry -KY2021white <- dplyr::left_join(county2021KY, white2021KY$v, by = "GEOID") +SC2021white <- county2021SC %>% + left_join(white2021SC$v, by = 'GEOID') ``` -```{r white_plot, fig.height = 4, fig.width = 7} -# Visualize the V values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = KY2021white, - ggplot2::aes(fill = V), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2021KY, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2017-2021 estimates") + - ggplot2::ggtitle("Correlation Ratio (White)\nKentucky census tracts to counties", - subtitle = "Black non-Hispanic") +```{r white_plot, fig.height = 6, fig.width = 7} +# Visualize the V values (2017-2021 5-year ACS) for South Carolina, U.S.A., counties +ggplot() + + geom_sf( + data = SC2021white, + aes(fill = V), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021SC, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Correlation Ratio (White)\nSouth Carolina census tracts to counties', + subtitle = 'Black non-Hispanic' + ) ``` #### Compute Location Quotient (LQ) -Compute the aspatial racial/ethnic LQ values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties vs. the state. This metric is based on [Merton (1939)](https://doi.org/10.2307/2084686) and adapted by [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015). Multiple racial/ethnic subgroups are available in the `sudano()` function, including: +Compute the aspatial racial/ethnic LQ values (2017-2021 5-year ACS) for Tennessee, U.S.A., counties vs. the state. This metric is based on [Merton (1939)](https://doi.org/10.2307/2084686) and adapted by [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015). Multiple racial/ethnic subgroups are available in the `sudano()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -1024,37 +1221,49 @@ Compute the aspatial racial/ethnic LQ values (2017-2021 5-year ACS) for Kentucky LQ is some measure of relative racial homogeneity of each smaller geography within a larger geography. LQ can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an LQ of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. Unlike the previous metrics that aggregate to the larger geography, LQ computes values for each smaller geography relative to the larger geography. ```{r sudano_prep, results = 'hide'} -sudano2021KY <- ndi::sudano(geo_large = "state", geo_small = "county", state = "KY", - year = 2021, subgroup = "NHoLB") +sudano2021TN <- sudano( + geo_large = 'state', + geo_small = 'county', + state = 'TN', + year = 2021, + subgroup = 'NHoLB' +) -# Obtain the 2021 census counties from the "tigris" package -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) +# Obtain the 2021 census counties from the 'tigris' package +county2021TN <- counties(state = 'TN', year = 2021, cb = TRUE) # Join the LQ values to the county geometry -KY2021sudano <- dplyr::left_join(county2021KY, sudano2021KY$lq, by = "GEOID") +TN2021sudano <- county2021TN %>% + left_join(sudano2021TN$lq, by = 'GEOID') ``` -```{r sudano_plot, fig.height = 4, fig.width = 7} -# Visualize the LQ values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = KY2021sudano, - ggplot2::aes(fill = LQ), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2021KY, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c(limits = c(0, 1)) + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2017-2021 estimates") + - ggplot2::ggtitle("Location Quotient (Sudano)\nKentucky counties vs. state", - subtitle = "Black non-Hispanic") +```{r sudano_plot, fig.height = 3, fig.width = 7} +# Visualize the LQ values (2017-2021 5-year ACS) for Tennessee, U.S.A., counties +ggplot() + + geom_sf( + data = TN2021sudano, + aes(fill = LQ), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021TN, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Location Quotient (Sudano)\nTennessee counties vs. state', + subtitle = 'Black non-Hispanic' + ) ``` + #### Compute Local Exposure and Isolation (LEx/Is) -Compute the aspatial racial/ethnic Local Exposure and Isolation metric (2017-2021 5-year ACS) for Kentucky, U.S.A., counties vs. the state. This metric is based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926). Multiple racial/ethnic subgroups are available in the `bemanian_beyer()` function, including: +Compute the aspatial racial/ethnic Local Exposure and Isolation metric (2017-2021 5-year ACS) for Mississippi, U.S.A., counties vs. the state. This metric is based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926). Multiple racial/ethnic subgroups are available in the `bemanian_beyer()` function, including: | ACS table source | racial/ethnic subgroup | character for `subgroup` argument | | -------------- | ------------- | ---------------- | @@ -1082,51 +1291,144 @@ Compute the aspatial racial/ethnic Local Exposure and Isolation metric (2017-202 LEx/Is is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. LEx/Is is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. Similar to LQ (Sudano), LEx/Is computes values for each smaller geography relative to the larger geography. ```{r bemanian_beyer_prep, results = 'hide'} -bemanian_beyer2021KY <- ndi::bemanian_beyer(geo_large = "state", geo_small = "county", state = "KY", - year = 2021, subgroup = "NHoLB", subgroup_ixn = "NHoLW") - -# Obtain the 2021 census counties from the "tigris" package -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE) +bemanian_beyer2021MS <- bemanian_beyer( + geo_large = 'state', + geo_small = 'county', + state = 'MS', + year = 2021, + subgroup = 'NHoLB', + subgroup_ixn = 'NHoLW' +) + +# Obtain the 2021 census counties from the 'tigris' package +county2021MS <- counties(state = 'MS', year = 2021, cb = TRUE) # Join the LEx/Is values to the county geometry -KY2021bemanian_beyer <- dplyr::left_join(county2021KY, bemanian_beyer2021KY$lexis, by = "GEOID") +MS2021bemanian_beyer <- county2021MS %>% + left_join(bemanian_beyer2021MS$lexis, by = 'GEOID') ``` -```{r bemanian_beyer_plot, fig.height = 4, fig.width = 7} -# Visualize the LEx/Is values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = KY2021bemanian_beyer, - ggplot2::aes(fill = LExIs), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2021KY, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340") + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2017-2021 estimates") + - ggplot2::ggtitle("Local Exposure and Isolation (Bemanian & Beyer) metric\nKentucky counties vs. state", - subtitle = "Black non-Hispanic vs. White non-Hispanic") +```{r bemanian_beyer_plot, fig.height = 7, fig.width = 6.5} +# Visualize the LEx/Is values (2017-2021 5-year ACS) for Mississippi, U.S.A., counties +ggplot() + + geom_sf( + data = MS2021bemanian_beyer, + aes(fill = LExIs), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021MS, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340' + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Local Exposure and Isolation (Bemanian & Beyer)\nMississippi counties vs. state', + subtitle = 'Black non-Hispanic vs. White non-Hispanic' + ) +``` +```{r bemanian_beyer_odds, fig.height = 7, fig.width = 6.5} +# Visualize the exponentiated LEx/Is values (2017-2021 5-year ACS) for +## Mississippi, U.S.A., counties +ggplot() + + geom_sf( + data = MS2021bemanian_beyer, + aes(fill = exp(LExIs)), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021MS, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c() + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Odds ratio of Local Exposure and Isolation (Bemanian & Beyer)\n + Mississippi counties vs. state', + subtitle = 'Black non-Hispanic vs. White non-Hispanic' + ) ``` -```{r bemanian_beyer_odds, fig.height = 4, fig.width = 7} -# Visualize the exponentiated LEx/Is values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties -ggplot2::ggplot() + - ggplot2::geom_sf(data = KY2021bemanian_beyer, - ggplot2::aes(fill = exp(LExIs)), - size = 0.05, - color = "white") + - ggplot2::geom_sf(data = county2021KY, - fill = "transparent", - color = "white", - size = 0.2) + - ggplot2::theme_minimal() + - ggplot2::scale_fill_viridis_c() + - ggplot2::labs(fill = "Index (Continuous)", - caption = "Source: U.S. Census ACS 2017-2021 estimates") + - ggplot2::ggtitle("Odds ratio of Local Exposure and Isolation (Bemanian & Beyer) metric\nKentucky counties vs. state", - subtitle = "Black non-Hispanic vs. White non-Hispanic") + +#### Compute Delta (DEL) + +Compute the aspatial racial/ethnic DEL values (2017-2021 5-year ACS) for Alabama, U.S.A., counties from census tracts. This metric is based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Multiple racial/ethnic subgroups are available in the `hoover()` function, including: + +| ACS table source | racial/ethnic subgroup | character for `subgroup` argument | +| -------------- | ------------- | ---------------- | +| B03002_002 | not Hispanic or Latino | NHoL | +| B03002_003 | not Hispanic or Latino, white alone | NHoLW | +| B03002_004 | not Hispanic or Latino, Black or African American alone | NHoLB | +| B03002_005 | not Hispanic or Latino, American Indian and Alaska Native alone | NHoLAIAN | +| B03002_006 | not Hispanic or Latino, Asian alone | NHoLA | +| B03002_007 | not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone | NHoLNHOPI | +| B03002_008 | not Hispanic or Latino, some other race alone | NHoLSOR | +| B03002_009 | not Hispanic or Latino, two or more races | NHoLTOMR | +| B03002_010 | not Hispanic or Latino, two races including some other race | NHoLTRiSOR | +| B03002_011 | not Hispanic or Latino, two races excluding some other race, and three or more races | NHoLTReSOR | +| B03002_012 | Hispanic or Latino | HoL | +| B03002_013 | Hispanic or Latino, white alone | HoLW | +| B03002_014 | Hispanic or Latino, Black or African American alone | HoLB | +| B03002_015 | Hispanic or Latino, American Indian and Alaska Native alone | HoLAIAN | +| B03002_016 | Hispanic or Latino, Asian alone | HoLA | +| B03002_017 | Hispanic or Latino, Native Hawaiian and other Pacific Islander alone | HoLNHOPI | +| B03002_018 | Hispanic or Latino, some other race alone | HoLSOR | +| B03002_019 | Hispanic or Latino, two or more races | HoLTOMR | +| B03002_020 | Hispanic or Latino, two races including some other race | HoLTRiSOR | +| B03002_021 | Hispanic or Latino, two races excluding some other race, and three or more races | HoLTReSOR | + +DEL is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. DEL can range in value from 0 to 1. + +```{r hoover_prep, results = 'hide'} +hoover2021AL <- hoover( + geo_large = 'county', + geo_small = 'tract', + state = 'AL', + year = 2021, + subgroup = 'NHoLB' +) + +# Obtain the 2021 census counties from the 'tigris' package +county2021AL <- counties(state = 'AL', year = 2021, cb = TRUE) + +# Join the DEL values to the county geometry +AL2021hoover <- county2021AL %>% + left_join(hoover2021AL$del, by = 'GEOID') +``` + +```{r hoover_plot, fig.height = 7, fig.width = 6} +# Visualize the DEL values (2017-2021 5-year ACS) for Alabama, U.S.A., counties +ggplot() + + geom_sf( + data = AL2021hoover, + aes(fill = DEL), + size = 0.05, + color = 'white' + ) + + geom_sf( + data = county2021AL, + fill = 'transparent', + color = 'white', + size = 0.2 + ) + + theme_minimal() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Delta (Hoover)\nAlabama census tracts to counties', + subtitle = 'Black non-Hispanic' + ) ``` ```{r system} diff --git a/vignettes/vignette.html b/vignettes/vignette.html index ac5c2d8..6d60e41 100644 --- a/vignettes/vignette.html +++ b/vignettes/vignette.html @@ -12,7 +12,7 @@ - + ndi: Neighborhood Deprivation Indices @@ -340,14 +340,14 @@

ndi: Neighborhood Deprivation Indices

Ian D. Buller (GitHub: @idblr)

-

2023-02-01

+

2024-07-06

Start with the necessary packages for the vignette.

-
loadedPackages <- c("dplyr", "ggplot2", "ndi", "tidycensus", "tigris")
-invisible(lapply(loadedPackages, library, character.only = TRUE))
-options(tigris_use_cache = TRUE)
+
loadedPackages <- c('dplyr', 'ggplot2', 'ndi', 'tidycensus', 'tigris')
+invisible(lapply(loadedPackages, library, character.only = TRUE))
+options(tigris_use_cache = TRUE)

Set your U.S. Census Bureau access key. Follow this link to obtain one. Specify your access key in the messer() or powell_wiley() functions using the key @@ -357,7 +357,7 @@

2023-02-01

package before running the messer() or powell_wiley() functions (see an example of the latter below).

-
tidycensus::census_api_key("...") # INSERT YOUR OWN KEY FROM U.S. CENSUS API
+
census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API

Compute NDI (Messer)

Compute the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, @@ -430,30 +430,30 @@

Compute NDI (Messer)

-
messer2010GA <- ndi::messer(state = "GA", year = 2010, round_output = TRUE)
+
messer2010GA <- messer(state = 'GA', year = 2010, round_output = TRUE)

One output from the messer() function is a tibble containing the identification, geographic name, NDI (Messer) values, and raw census characteristics for each tract.

-
messer2010GA$ndi
+
messer2010GA$ndi
## # A tibble: 1,969 × 14
-##    GEOID  state county tract     NDI NDIQu…¹   OCC   CWD   POV   FHH   PUB   U30
-##    <chr>  <chr> <chr>  <chr>   <dbl> <fct>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
-##  1 13001… Geor… Appli… 9501  -0.0075 2-Belo…     0   0     0.1   0.1   0.1   0.3
-##  2 13001… Geor… Appli… 9502   0.0458 4-Most…     0   0     0.3   0.1   0.2   0.5
-##  3 13001… Geor… Appli… 9503   0.0269 3-Abov…     0   0     0.2   0     0.2   0.4
-##  4 13001… Geor… Appli… 9504  -0.0083 2-Belo…     0   0     0.1   0     0.1   0.3
-##  5 13001… Geor… Appli… 9505   0.0231 3-Abov…     0   0     0.2   0     0.2   0.4
-##  6 13003… Geor… Atkin… 9601   0.0619 4-Most…     0   0.1   0.2   0.2   0.2   0.5
-##  7 13003… Geor… Atkin… 9602   0.0593 4-Most…     0   0.1   0.3   0.1   0.2   0.4
-##  8 13003… Geor… Atkin… 9603   0.0252 3-Abov…     0   0     0.3   0.1   0.2   0.4
-##  9 13005… Geor… Bacon… 9701   0.0061 3-Abov…     0   0     0.2   0     0.2   0.4
-## 10 13005… Geor… Bacon… 9702…  0.0121 3-Abov…     0   0     0.2   0.1   0.1   0.5
-## # … with 1,959 more rows, 2 more variables: EDU <dbl>, EMP <dbl>, and
-## #   abbreviated variable name ¹​NDIQuart
+## GEOID state county tract NDI NDIQuart OCC CWD POV FHH PUB U30 +## <chr> <chr> <chr> <chr> <dbl> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> +## 1 1300… Geor… Appli… 9501 -0.0075 2-Below… 0 0 0.1 0.1 0.1 0.3 +## 2 1300… Geor… Appli… 9502 0.0458 4-Most … 0 0 0.3 0.1 0.2 0.5 +## 3 1300… Geor… Appli… 9503 0.0269 3-Above… 0 0 0.2 0 0.2 0.4 +## 4 1300… Geor… Appli… 9504 -0.0083 2-Below… 0 0 0.1 0 0.1 0.3 +## 5 1300… Geor… Appli… 9505 0.0231 3-Above… 0 0 0.2 0 0.2 0.4 +## 6 1300… Geor… Atkin… 9601 0.0619 4-Most … 0 0.1 0.2 0.2 0.2 0.5 +## 7 1300… Geor… Atkin… 9602 0.0593 4-Most … 0 0.1 0.3 0.1 0.2 0.4 +## 8 1300… Geor… Atkin… 9603 0.0252 3-Above… 0 0 0.3 0.1 0.2 0.4 +## 9 1300… Geor… Bacon… 9701 0.0061 3-Above… 0 0 0.2 0 0.2 0.4 +## 10 1300… Geor… Bacon… 9702… 0.0121 3-Above… 0 0 0.2 0.1 0.1 0.5 +## # ℹ 1,959 more rows +## # ℹ 2 more variables: EDU <dbl>, EMP <dbl>

A second output from the messer() function is the results from the principal component analysis used to compute the NDI (Messer) values.

-
messer2010GA$pca
+
messer2010GA$pca
## Principal Components Analysis
 ## Call: psych::principal(r = ndi_data_pca, nfactors = 1, n.obs = nrow(ndi_data_pca), 
 ##     covar = FALSE, scores = TRUE, missing = imp)
@@ -482,7 +482,7 @@ 

Compute NDI (Messer)

A third output from the messer() function is a tibble containing a breakdown of the missingness of the census characteristics used to compute the NDI (Messer) values.

-
messer2010GA$missing
+
messer2010GA$missing
## # A tibble: 8 × 4
 ##   variable total n_missing percent_missing
 ##   <chr>    <int>     <int> <chr>          
@@ -497,99 +497,127 @@ 

Compute NDI (Messer)

We can visualize the NDI (Messer) values geographically by linking them to spatial information from the tigris package and plotting with the ggplot2 package suite.

-
# Obtain the 2010 counties from the "tigris" package
-county2010GA <- tigris::counties(state = "GA", year = 2010, cb = TRUE)
-# Remove first 9 characters from GEOID for compatibility with tigris information
-county2010GA$GEOID <- substring(county2010GA$GEO_ID, 10) 
-
-# Obtain the 2010 census tracts from the "tigris" package
-tract2010GA <- tigris::tracts(state = "GA", year = 2010, cb = TRUE)
-# Remove first 9 characters from GEOID for compatibility with tigris information
-tract2010GA$GEOID <- substring(tract2010GA$GEO_ID, 10) 
-
-# Join the NDI (Messer) values to the census tract geometry
-GA2010messer <- dplyr::left_join(tract2010GA, messer2010GA$ndi, by = "GEOID")
-
# Visualize the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., census tracts 
-## Continuous Index
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = GA2010messer, 
-                   ggplot2::aes(fill = NDI),
-                   size = 0.05,
-                   color = "transparent") +
-   ggplot2::geom_sf(data = county2010GA,
-                   fill = "transparent", 
-                   color = "white",
-                   size = 0.2) +
-  ggplot2::theme_minimal() +
-  ggplot2::scale_fill_viridis_c() +
-  ggplot2::labs(fill = "Index (Continuous)",
-                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Messer)",
-                   subtitle = "GA census tracts as the referent")
-
-## Categorical Index
-### Rename "9-NDI not avail" level as NA for plotting
-GA2010messer$NDIQuartNA <- factor(replace(as.character(GA2010messer$NDIQuart), 
-                                            GA2010messer$NDIQuart == "9-NDI not avail", NA),
-                                  c(levels(GA2010messer$NDIQuart)[-5], NA))
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = GA2010messer, 
-                   ggplot2::aes(fill = NDIQuartNA),
-                   size = 0.05,
-                   color = "transparent") +
-   ggplot2::geom_sf(data = county2010GA,
-                   fill = "transparent", 
-                   color = "white",
-                   size = 0.2) +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE),
-                                na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Categorical)",
-                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Messer) Quartiles",
-                   subtitle = "GA census tracts as the referent")
-

+
# Obtain the 2010 counties from the 'tigris' package
+county2010GA <- counties(state = 'GA', year = 2010, cb = TRUE)
+# Remove first 9 characters from GEOID for compatibility with tigris information
+county2010GA$GEOID <- substring(county2010GA$GEO_ID, 10) 
+
+# Obtain the 2010 census tracts from the 'tigris' package
+tract2010GA <- tracts(state = 'GA', year = 2010, cb = TRUE)
+# Remove first 9 characters from GEOID for compatibility with tigris information
+tract2010GA$GEOID <- substring(tract2010GA$GEO_ID, 10) 
+
+# Join the NDI (Messer) values to the census tract geometry
+GA2010messer <- tract2010GA %>%
+  left_join(messer2010GA$ndi, by = 'GEOID')
+
# Visualize the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., census tracts 
+## Continuous Index
+ggplot() +
+  geom_sf(
+    data = GA2010messer,
+    aes(fill = NDI),
+    size = 0.05,
+    color = 'transparent'
+  ) +
+  geom_sf(
+    data = county2010GA,
+    fill = 'transparent',
+    color = 'white',
+    size = 0.2
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_c() +
+  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Messer)',
+    subtitle = 'GA census tracts as the referent'
+  )
+
+## Categorical Index
+### Rename '9-NDI not avail' level as NA for plotting
+GA2010messer$NDIQuartNA <-
+  factor(
+    replace(
+      as.character(GA2010messer$NDIQuart),
+      GA2010messer$NDIQuart == '9-NDI not avail',
+      NA
+    ),
+    c(levels(GA2010messer$NDIQuart)[-5], NA)
+  )
+
+ggplot() +
+  geom_sf(
+    data = GA2010messer,
+    aes(fill = NDIQuartNA),
+    size = 0.05,
+    color = 'transparent'
+  ) +
+  geom_sf(
+    data = county2010GA,
+    fill = 'transparent',
+    color = 'white',
+    size = 0.2
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') +
+  labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Messer) Quartiles',
+    subtitle = 'GA census tracts as the referent'
+  )
+

The results above are at the tract level. The NDI (Messer) values can also be calculated at the county level.

-
messer2010GA_county <- ndi::messer(geo = "county", state = "GA", year = 2010)
-
-# Join the NDI (Messer) values to the county geometry
-GA2010messer_county <- dplyr::left_join(county2010GA, messer2010GA_county$ndi, by = "GEOID")
-
# Visualize the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., counties
-## Continuous Index
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = GA2010messer_county, 
-                   ggplot2::aes(fill = NDI),
-                   size = 0.20,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_c() +
-  ggplot2::labs(fill = "Index (Continuous)",
-                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Messer)",
-                   subtitle = "GA counties as the referent")
-
-## Categorical Index
-
-### Rename "9-NDI not avail" level as NA for plotting
-GA2010messer_county$NDIQuartNA <- factor(replace(as.character(GA2010messer_county$NDIQuart), 
-                                            GA2010messer_county$NDIQuart == "9-NDI not avail", NA),
-                                         c(levels(GA2010messer_county$NDIQuart)[-5], NA))
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = GA2010messer_county, 
-                   ggplot2::aes(fill = NDIQuartNA),
-                   size = 0.20,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE),
-                                na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Categorical)",
-                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Messer) Quartiles",
-                   subtitle = "GA counties as the referent")
-

+
messer2010GA_county <- messer(geo = 'county', state = 'GA', year = 2010)
+
+# Join the NDI (Messer) values to the county geometry
+GA2010messer_county <- county2010GA %>%
+  left_join(messer2010GA_county$ndi, by = 'GEOID')
+
# Visualize the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, U.S.A., counties
+## Continuous Index
+ggplot() +
+  geom_sf(
+    data = GA2010messer_county,
+    aes(fill = NDI),
+    size = 0.20,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_c() +
+  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Messer)',
+    subtitle = 'GA counties as the referent'
+  )
+
+## Categorical Index
+
+### Rename '9-NDI not avail' level as NA for plotting
+GA2010messer_county$NDIQuartNA <-
+  factor(
+    replace(
+      as.character(GA2010messer_county$NDIQuart),
+      GA2010messer_county$NDIQuart == '9-NDI not avail',
+      NA
+    ),
+    c(levels(GA2010messer_county$NDIQuart)[-5], NA)
+  )
+
+ggplot() +
+  geom_sf(
+    data = GA2010messer_county,
+    aes(fill = NDIQuartNA),
+    size = 0.20,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') +
+  labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Messer) Quartiles',
+    subtitle = 'GA counties as the referent'
+  )
+

Compute NDI (Powell-Wiley)

@@ -703,33 +731,37 @@

Compute NDI (Powell-Wiley)

and computation of the NDI (Powell-Wiley) can be found on a GIS Portal for Cancer Research website.

-
powell_wiley2020DMVW <- ndi::powell_wiley(state = c("DC", "MD", "VA", "WV"), year = 2020, round_output = TRUE)
+
powell_wiley2020DMVW <- powell_wiley(
+  state = c('DC', 'MD', 'VA', 'WV'),
+  year = 2020,
+  round_output = TRUE
+)

One output from the powell_wiley() function is a tibble containing the identification, geographic name, NDI (Powell-Wiley) values, and raw census characteristics for each tract.

-
powell_wiley2020DMVW$ndi
+
powell_wiley2020DMVW$ndi
## # A tibble: 4,425 × 20
-##    GEOID       state  county tract   NDI NDIQu…¹ MedHH…² PctRe…³ PctPu…⁴ MedHo…⁵
-##    <chr>       <chr>  <chr>  <chr> <dbl> <fct>     <dbl>   <dbl>   <dbl>   <dbl>
-##  1 11001000101 Distr… Distr… 1.01  -2.13 1-Leas…  187839    50.9     0.8  699100
-##  2 11001000102 Distr… Distr… 1.02  -2.46 1-Leas…  184167    52.2     0.6 1556000
-##  3 11001000201 Distr… Distr… 2.01  NA    9-NDI …      NA   NaN     NaN        NA
-##  4 11001000202 Distr… Distr… 2.02  -2.30 1-Leas…  164261    49.6     0.9 1309100
-##  5 11001000300 Distr… Distr… 3     -2.06 1-Leas…  156483    46       0.6  976500
-##  6 11001000400 Distr… Distr… 4     -2.09 1-Leas…  153397    47.8     0   1164200
-##  7 11001000501 Distr… Distr… 5.01  -2.11 1-Leas…  119911    44.5     0.8  674600
-##  8 11001000502 Distr… Distr… 5.02  -2.21 1-Leas…  153264    46.8     0.5 1012500
-##  9 11001000600 Distr… Distr… 6     -2.16 1-Leas…  154266    60.8     7.4 1109800
-## 10 11001000702 Distr… Distr… 7.02  -1.20 1-Leas…   71747    22.9     0    289900
-## # … with 4,415 more rows, 10 more variables: PctMgmtBusScArti <dbl>,
+##    GEOID       state  county tract   NDI NDIQuint MedHHInc PctRecvIDR PctPubAsst
+##    <chr>       <chr>  <chr>  <chr> <dbl> <fct>       <dbl>      <dbl>      <dbl>
+##  1 11001000101 Distr… Distr… 1.01  -2.13 1-Least…   187839       50.9        0.8
+##  2 11001000102 Distr… Distr… 1.02  -2.46 1-Least…   184167       52.2        0.6
+##  3 11001000201 Distr… Distr… 2.01  NA    9-NDI n…       NA      NaN        NaN  
+##  4 11001000202 Distr… Distr… 2.02  -2.30 1-Least…   164261       49.6        0.9
+##  5 11001000300 Distr… Distr… 3     -2.06 1-Least…   156483       46          0.6
+##  6 11001000400 Distr… Distr… 4     -2.09 1-Least…   153397       47.8        0  
+##  7 11001000501 Distr… Distr… 5.01  -2.11 1-Least…   119911       44.5        0.8
+##  8 11001000502 Distr… Distr… 5.02  -2.21 1-Least…   153264       46.8        0.5
+##  9 11001000600 Distr… Distr… 6     -2.16 1-Least…   154266       60.8        7.4
+## 10 11001000702 Distr… Distr… 7.02  -1.20 1-Least…    71747       22.9        0  
+## # ℹ 4,415 more rows
+## # ℹ 11 more variables: MedHomeVal <dbl>, PctMgmtBusScArti <dbl>,
 ## #   PctFemHeadKids <dbl>, PctOwnerOcc <dbl>, PctNoPhone <dbl>,
 ## #   PctNComPlmb <dbl>, PctEducHSPlus <dbl>, PctEducBchPlus <dbl>,
-## #   PctFamBelowPov <dbl>, PctUnempl <dbl>, TotalPop <dbl>, and abbreviated
-## #   variable names ¹​NDIQuint, ²​MedHHInc, ³​PctRecvIDR, ⁴​PctPubAsst, ⁵​MedHomeVal
+## # PctFamBelowPov <dbl>, PctUnempl <dbl>, TotalPop <dbl>

A second output from the powell_wiley() function is the results from the principal component analysis used to compute the NDI (Powell-Wiley) values.

-
powell_wiley2020DMVW$pca
+
powell_wiley2020DMVW$pca
## $loadings
 ## 
 ## Loadings:
@@ -806,7 +838,7 @@ 

Compute NDI (Powell-Wiley)

A third output from the powell_wiley() function is a tibble containing a breakdown of the missingness of the census characteristics used to compute the NDI (Powell-Wiley) values.

-
powell_wiley2020DMVW$missing
+
powell_wiley2020DMVW$missing
## # A tibble: 13 × 4
 ##    variable        total n_missing percent_missing
 ##    <chr>           <int>     <int> <chr>          
@@ -826,109 +858,129 @@ 

Compute NDI (Powell-Wiley)

A fourth output from the powell_wiley() function is a character string or numeric value of a standardized Cronbach’s alpha. A value greater than 0.7 is desired.

-
powell_wiley2020DMVW$cronbach
-
## [1] 0.931138
+
powell_wiley2020DMVW$cronbach
+
## [1] 0.9321693

We can visualize the NDI (Powell-Wiley) values geographically by linking them to spatial information from the tigris package and plotting with the ggplot2 package suite.

-
# Obtain the 2020 counties from the "tigris" package
-county2020 <- tigris::counties(cb = TRUE)
-county2020DMVW <- county2020[county2020$STUSPS %in% c("DC", "MD", "VA", "WV"), ]
-
-# Obtain the 2020 census tracts from the "tigris" package
-tract2020D <- tigris::tracts(state = "DC", year = 2020, cb = TRUE)
-tract2020M <- tigris::tracts(state = "MD", year = 2020, cb = TRUE)
-tract2020V <- tigris::tracts(state = "VA", year = 2020, cb = TRUE)
-tract2020W <- tigris::tracts(state = "WV", year = 2020, cb = TRUE)
-tracts2020DMVW <- rbind(tract2020D, tract2020M, tract2020V, tract2020W)
-
-# Join the NDI (Powell-Wiley) values to the census tract geometry
-DMVW2020pw <- dplyr::left_join(tracts2020DMVW, powell_wiley2020DMVW$ndi, by = "GEOID")
-
# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) 
-## Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., census tracts 
-## Continuous Index
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DMVW2020pw, 
-                   ggplot2::aes(fill = NDI), 
-                   color = NA) +
-  ggplot2::geom_sf(data = county2020DMVW,
-                   fill = "transparent", 
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_c(na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Continuous)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates")+
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley)",
-                   subtitle = "DC, MD, VA, and WV tracts as the referent")
-
-## Categorical Index (Population-weighted quintiles)
-### Rename "9-NDI not avail" level as NA for plotting
-DMVW2020pw$NDIQuintNA <- factor(replace(as.character(DMVW2020pw$NDIQuint), 
-                                        DMVW2020pw$NDIQuint == "9-NDI not avail", NA),
-                                c(levels(DMVW2020pw$NDIQuint)[-6], NA))
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DMVW2020pw, 
-                   ggplot2::aes(fill = NDIQuintNA), 
-                   color = NA) +
-  ggplot2::geom_sf(data = county2020DMVW,
-                   fill = "transparent", 
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE),
-                                na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Categorical)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates")+
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles",
-                   subtitle = "DC, MD, VA, and WV tracts as the referent")
-

+
# Obtain the 2020 counties from the 'tigris' package
+county2020 <- counties(cb = TRUE)
+county2020DMVW <- county2020[county2020$STUSPS %in% c('DC', 'MD', 'VA', 'WV'), ]
+
+# Obtain the 2020 census tracts from the 'tigris' package
+tract2020D <- tracts(state = 'DC', year = 2020, cb = TRUE)
+tract2020M <- tracts(state = 'MD', year = 2020, cb = TRUE)
+tract2020V <- tracts(state = 'VA', year = 2020, cb = TRUE)
+tract2020W <- tracts(state = 'WV', year = 2020, cb = TRUE)
+tracts2020DMVW <- rbind(tract2020D, tract2020M, tract2020V, tract2020W)
+
+# Join the NDI (Powell-Wiley) values to the census tract geometry
+DMVW2020pw <- tracts2020DMVW %>%
+  left_join(powell_wiley2020DMVW$ndi, by = 'GEOID')
+
# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) 
+## Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., census tracts 
+## Continuous Index
+ggplot() +
+  geom_sf(
+    data = DMVW2020pw,
+    aes(fill = NDI),
+    color = NA
+  ) +
+  geom_sf(
+    data = county2020DMVW,
+    fill = 'transparent',
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_c(na.value = 'grey80') +
+  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley)',
+    subtitle = 'DC, MD, VA, and WV tracts as the referent'
+  )
+
+## Categorical Index (Population-weighted quintiles)
+### Rename '9-NDI not avail' level as NA for plotting
+DMVW2020pw$NDIQuintNA <-
+  factor(replace(
+    as.character(DMVW2020pw$NDIQuint),
+    DMVW2020pw$NDIQuint == '9-NDI not avail',
+    NA
+  ),
+  c(levels(DMVW2020pw$NDIQuint)[-6], NA))
+
+ggplot() +
+  geom_sf(data = DMVW2020pw, aes(fill = NDIQuintNA), color = NA) +
+  geom_sf(data = county2020DMVW, fill = 'transparent', color = 'white') +
+  theme_minimal() +
+  scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') +
+  labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles',
+    subtitle = 'DC, MD, VA, and WV tracts as the referent'
+  )
+

Like the NDI (Messer), we also compute county-level NDI (Powell-Wiley).

-
# Obtain the 2020 counties from the "tigris" package
-county2020DMVW <- tigris::counties(state = c("DC", "MD", "VA", "WV"), year = 2020, cb = TRUE)
-
-# NDI (Powell-Wiley) at the county level (2016-2020)
-powell_wiley2020DMVW_county <- ndi::powell_wiley(geo = "county",
-                                                 state = c("DC", "MD", "VA", "WV"),
-                                                 year = 2020)
-
-# Join the NDI (Powell-Wiley) values to the county geometry
-DMVW2020pw_county <- dplyr::left_join(county2020DMVW, powell_wiley2020DMVW_county$ndi, by = "GEOID")
-
# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS)
-## Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., counties
-## Continuous Index
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DMVW2020pw_county, 
-                   ggplot2::aes(fill = NDI),
-                   size = 0.20,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_c() +
-  ggplot2::labs(fill = "Index (Continuous)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley)",
-                   subtitle = "DC, MD, VA, and WV counties as the referent")
-
-## Categorical Index
-
-### Rename "9-NDI not avail" level as NA for plotting
-DMVW2020pw_county$NDIQuintNA <- factor(replace(as.character(DMVW2020pw_county$NDIQuint), 
-                                            DMVW2020pw_county$NDIQuint == "9-NDI not avail", NA),
-                                         c(levels(DMVW2020pw_county$NDIQuint)[-6], NA))
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DMVW2020pw_county, 
-                   ggplot2::aes(fill = NDIQuint),
-                   size = 0.20,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE),
-                                na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Categorical)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles",
-                   subtitle = "DC, MD, VA, and WV counties as the referent")
-

+
# Obtain the 2020 counties from the 'tigris' package
+county2020DMVW <- counties(state = c('DC', 'MD', 'VA', 'WV'), year = 2020, cb = TRUE)
+
+# NDI (Powell-Wiley) at the county level (2016-2020)
+powell_wiley2020DMVW_county <- powell_wiley(
+  geo = 'county',
+  state = c('DC', 'MD', 'VA', 'WV'),
+  year = 2020
+)
+
+# Join the NDI (Powell-Wiley) values to the county geometry
+DMVW2020pw_county <- county2020DMVW %>%
+  left_join(powell_wiley2020DMVW_county$ndi, by = 'GEOID')
+
# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS)
+## Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., counties
+## Continuous Index
+ggplot() +
+  geom_sf(
+    data = DMVW2020pw_county,
+    aes(fill = NDI),
+    size = 0.20,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_c() +
+  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley)',
+    subtitle = 'DC, MD, VA, and WV counties as the referent'
+  )
+
+## Categorical Index
+
+### Rename '9-NDI not avail' level as NA for plotting
+DMVW2020pw_county$NDIQuintNA <-
+  factor(
+    replace(
+      as.character(DMVW2020pw_county$NDIQuint),
+      DMVW2020pw_county$NDIQuint == '9-NDI not avail',
+      NA
+    ),
+    c(levels(DMVW2020pw_county$NDIQuint)[-6], NA)
+  )
+
+ggplot() +
+  geom_sf(
+    data = DMVW2020pw_county,
+    aes(fill = NDIQuint),
+    size = 0.20,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') +
+  labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley) Population-weighted Quintiles',
+    subtitle = 'DC, MD, VA, and WV counties as the referent'
+  )
+

Advanced Features

@@ -940,84 +992,109 @@

Imputing missing census variables

pca() function in the psych package called within the messer() and powell_wiley() functions. Impute values using the logical imp argument -(currently only calls impute = "median" by default, which +(currently only calls impute = 'median' by default, which assigns the median values of each missing census variable for a geography).

-
powell_wiley2020DC <- ndi::powell_wiley(state = "DC", year = 2020) # without imputation
-powell_wiley2020DCi <- ndi::powell_wiley(state = "DC", year = 2020, imp = TRUE) # with imputation
-
-table(is.na(powell_wiley2020DC$ndi$NDI)) # n=13 tracts without NDI (Powell-Wiley) values
-table(is.na(powell_wiley2020DCi$ndi$NDI)) # n=0 tracts without NDI (Powell-Wiley) values
-
-# Obtain the 2020 census tracts from the "tigris" package
-tract2020DC <- tigris::tracts(state = "DC", year = 2020, cb = TRUE)
-
-# Join the NDI (Powell-Wiley) values to the census tract geometry
-DC2020pw <- dplyr::left_join(tract2020DC, powell_wiley2020DC$ndi, by = "GEOID")
-DC2020pw <- dplyr::left_join(DC2020pw, powell_wiley2020DCi$ndi, by = "GEOID", suffix = c("_nonimp", "_imp"))
-
# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C., census tracts
-## Continuous Index
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DC2020pw, 
-                   ggplot2::aes(fill = NDI_nonimp),
-                   size = 0.2,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_c() +
-  ggplot2::labs(fill = "Index (Continuous)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley), Non-Imputed",
-                   subtitle = "DC census tracts as the referent")
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DC2020pw, 
-                   ggplot2::aes(fill = NDI_imp),
-                   size = 0.2,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_c() +
-  ggplot2::labs(fill = "Index (Continuous)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley), Imputed",
-                   subtitle = "DC census tracts as the referent")
-
-## Categorical Index
-### Rename "9-NDI not avail" level as NA for plotting
-DC2020pw$NDIQuintNA_nonimp <- factor(replace(as.character(DC2020pw$NDIQuint_nonimp), 
-                                            DC2020pw$NDIQuint_nonimp == "9-NDI not avail", NA),
-                                         c(levels(DC2020pw$NDIQuint_nonimp)[-6], NA))
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DC2020pw, 
-                   ggplot2::aes(fill = NDIQuintNA_nonimp),
-                   size = 0.2,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE),
-                                na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Categorical)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Non-Imputed",
-                   subtitle = "DC census tracts as the referent")
-
-### Rename "9-NDI not avail" level as NA for plotting
-DC2020pw$NDIQuintNA_imp <- factor(replace(as.character(DC2020pw$NDIQuint_imp), 
-                                            DC2020pw$NDIQuint_imp == "9-NDI not avail", NA),
-                                      c(levels(DC2020pw$NDIQuint_imp)[-6], NA))
-
-ggplot2::ggplot() + 
-  ggplot2::geom_sf(data = DC2020pw, 
-                   ggplot2::aes(fill = NDIQuintNA_imp),
-                   size = 0.2,
-                   color = "white") +
-  ggplot2::theme_minimal() + 
-  ggplot2::scale_fill_viridis_d(guide = ggplot2::guide_legend(reverse = TRUE),
-                                na.value = "grey80") +
-  ggplot2::labs(fill = "Index (Categorical)",
-                caption = "Source: U.S. Census ACS 2016-2020 estimates") +
-  ggplot2::ggtitle("Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Imputed",
-                   subtitle = "DC census tracts as the referent")
-

+
powell_wiley2020DC <- powell_wiley(state = 'DC', year = 2020) # without imputation
+powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # with imputation
+
+table(is.na(powell_wiley2020DC$ndi$NDI)) # n=13 tracts without NDI (Powell-Wiley) values
+table(is.na(powell_wiley2020DCi$ndi$NDI)) # n=0 tracts without NDI (Powell-Wiley) values
+
+# Obtain the 2020 census tracts from the 'tigris' package
+tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE)
+
+# Join the NDI (Powell-Wiley) values to the census tract geometry
+DC2020pw <- tract2020DC %>%
+  left_join(powell_wiley2020DC$ndi, by = 'GEOID')
+DC2020pw <- DC2020pw %>%
+  left_join(powell_wiley2020DCi$ndi, by = 'GEOID', suffix = c('_nonimp', '_imp'))
+
# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for 
+## Washington, D.C., census tracts
+## Continuous Index
+ggplot() +
+  geom_sf(
+    data = DC2020pw,
+    aes(fill = NDI_nonimp),
+    size = 0.2,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_c() +
+  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley), Non-Imputed',
+    subtitle = 'DC census tracts as the referent'
+  )
+
+ggplot() +
+  geom_sf(
+    data = DC2020pw,
+    aes(fill = NDI_imp),
+    size = 0.2,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_c() +
+  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley), Imputed',
+    subtitle = 'DC census tracts as the referent'
+  )
+
+## Categorical Index
+### Rename '9-NDI not avail' level as NA for plotting
+DC2020pw$NDIQuintNA_nonimp <-
+  factor(
+    replace(
+      as.character(DC2020pw$NDIQuint_nonimp),
+      DC2020pw$NDIQuint_nonimp == '9-NDI not avail',
+      NA
+    ),
+    c(levels(DC2020pw$NDIQuint_nonimp)[-6], NA)
+  )
+
+ggplot() +
+  geom_sf(
+    data = DC2020pw,
+    aes(fill = NDIQuintNA_nonimp),
+    size = 0.2,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') +
+  labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Non-Imputed',
+    subtitle = 'DC census tracts as the referent'
+  )
+
+### Rename '9-NDI not avail' level as NA for plotting
+DC2020pw$NDIQuintNA_imp <-
+  factor(
+    replace(
+      as.character(DC2020pw$NDIQuint_imp),
+      DC2020pw$NDIQuint_imp == '9-NDI not avail',
+      NA
+    ),
+    c(levels(DC2020pw$NDIQuint_imp)[-6], NA)
+  )
+
+ggplot() +
+  geom_sf(
+    data = DC2020pw,
+    aes(fill = NDIQuintNA_imp),
+    size = 0.2,
+    color = 'white'
+  ) +
+  theme_minimal() +
+  scale_fill_viridis_d(guide = guide_legend(reverse = TRUE), na.value = 'grey80') +
+  labs(fill = 'Index (Categorical)', caption = 'Source: U.S. Census ACS 2016-2020 estimates') +
+  ggtitle(
+    'Neighborhood Deprivation Index (Powell-Wiley) Quintiles, Imputed',
+    subtitle = 'DC census tracts as the referent'
+  )
+

Assign the referent (U.S.-Standardized Metric)

@@ -1029,25 +1106,30 @@

Assign the referent (U.S.-Standardized Metric)

NDI (Powell-Wiley) values (2006-2010 ACS-5) found in Andrews et al. (2020) change the year argument to 2010 (i.e., year = 2010).

-
us <- tigris::states()
-n51 <- c("Commonwealth of the Northern Mariana Islands", "Guam", "American Samoa",
-         "Puerto Rico", "United States Virgin Islands")
-y51 <- us$STUSPS[!(us$NAME %in% n51)]
-
-start_time <- Sys.time() # record start time
-powell_wiley2017US <- ndi::powell_wiley(state = y51, year = 2017)
-end_time <- Sys.time() # record end time
-time_srr <- end_time - start_time # Calculate run time
-
ggplot2::ggplot(powell_wiley2017US$ndi, 
-                ggplot2::aes(x = NDI)) +
-  ggplot2::geom_histogram(color = "black",
-                          fill = "white") + 
-  ggplot2::theme_minimal() +
-  ggplot2::ggtitle("Histogram of US-standardized NDI (Powell-Wiley) values (2013-2017)",
-                   subtitle = "U.S. census tracts as the referent (including AK, HI, and DC)")
+
us <- states()
+n51 <- c(
+  'Commonwealth of the Northern Mariana Islands',
+  'Guam',
+  'American Samoa',
+  'Puerto Rico',
+  'United States Virgin Islands'
+)
+y51 <- us$STUSPS[!(us$NAME %in% n51)]
+
+start_time <- Sys.time() # record start time
+powell_wiley2017US <- powell_wiley(state = y51, year = 2017)
+end_time <- Sys.time() # record end time
+time_srr <- end_time - start_time # Calculate run time
+
ggplot(powell_wiley2017US$ndi, aes(x = NDI)) +
+  geom_histogram(color = 'black', fill = 'white') +
+  theme_minimal() +
+  ggtitle(
+    'Histogram of US-standardized NDI (Powell-Wiley) values (2013-2017)',
+    subtitle = 'U.S. census tracts as the referent (including AK, HI, and DC)'
+  )

The process to compute a US-standardized NDI (Powell-Wiley) took -about 2.5 minutes to run on a machine with the features listed at the +about 2.7 minutes to run on a machine with the features listed at the end of the vignette.

@@ -1087,6 +1169,9 @@

Additional metrics socio-economic deprivation and disparity

  • bemanian_beyer() function that computes the aspatial racial/ethnic Local Exposure and Isolation metric based on Bemanian & Beyer (2017)
  • +
  • hoover() function that computes the aspatial +racial/ethnic Delta based on Hoover (1941) and +Duncan et al. (1961; LC:60007089)
  • Compute Racial Isolation Index (RI)

    @@ -1223,34 +1308,40 @@

    Compute Racial Isolation Index (RI)

    neighbors) that is nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or Latino, Black or African American alone) will have an RI value close to 0.

    -
    anthopolos2010NC <- ndi::anthopolos(state = "NC", year = 2010, subgroup = "NHoLB")
    -
    -# Obtain the 2010 census tracts from the "tigris" package
    -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE)
    -# Remove first 9 characters from GEOID for compatibility with tigris information
    -tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) 
    -
    -# Obtain the 2010 counties from the "tigris" package
    -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE)
    -
    -# Join the RI values to the census tract geometry
    -NC2010anthopolos <- dplyr::left_join(tract2010NC, anthopolos2010NC$ri, by = "GEOID")
    -
    # Visualize the RI values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = NC2010anthopolos, 
    -                   ggplot2::aes(fill = RI),
    -                   size = 0.05,
    -                   color = "transparent") +
    -   ggplot2::geom_sf(data = county2010NC,
    -                   fill = "transparent", 
    -                   color = "white",
    -                   size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c() +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
    -  ggplot2::ggtitle("Racial Isolation Index (Anthopolos), non-Hispanic Black",
    -                   subtitle = "NC census tracts (not corrected for edge effects)")
    +
    anthopolos2010NC <- anthopolos(state = 'NC', year = 2010, subgroup = 'NHoLB')
    +
    +# Obtain the 2010 census tracts from the 'tigris' package
    +tract2010NC <- tracts(state = 'NC', year = 2010, cb = TRUE)
    +# Remove first 9 characters from GEOID for compatibility with tigris information
    +tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) 
    +
    +# Obtain the 2010 counties from the 'tigris' package
    +county2010NC <- counties(state = 'NC', year = 2010, cb = TRUE)
    +
    +# Join the RI values to the census tract geometry
    +NC2010anthopolos <- tract2010NC %>%
    +  left_join(anthopolos2010NC$ri, by = 'GEOID')
    +
    # Visualize the RI values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
    +ggplot() +
    +  geom_sf(
    +    data = NC2010anthopolos,
    +    aes(fill = RI),
    +    size = 0.05,
    +    color = 'transparent'
    +  ) +
    +  geom_sf(
    +    data = county2010NC,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c() +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Racial Isolation Index (Anthopolos), non-Hispanic Black',
    +    subtitle = 'NC census tracts (not corrected for edge effects)'
    +  )

    The current version of the ndi package does not correct for edge effects (e.g., census geographies along the specified spatial @@ -1260,45 +1351,55 @@

    Compute Racial Isolation Index (RI)

    of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest.

    -
    # Compute RI for all census tracts in neighboring states
    -anthopolos2010GNSTV <- ndi::anthopolos(state = c("GA", "NC", "SC", "TN", "VA"),
    -                                     year = 2010, subgroup = "NHoLB")
    -
    -# Crop to only North Carolina, U.S.A. census tracts
    -anthopolos2010NCe <- anthopolos2010GNSTV$ri[anthopolos2010GNSTV$ri$GEOID %in% anthopolos2010NC$ri$GEOID, ]
    -
    -# Obtain the 2010 census tracts from the "tigris" package
    -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE)
    -# Remove first 9 characters from GEOID for compatibility with tigris information
    -tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) 
    -
    -# Obtain the 2010 counties from the "tigris" package
    -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE)
    -
    -# Join the RI values to the census tract geometry
    -edgeNC2010anthopolos <- dplyr::left_join(tract2010NC, anthopolos2010NCe, by = "GEOID")
    -
    # Visualize the RI values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = edgeNC2010anthopolos, 
    -                   ggplot2::aes(fill = RI),
    -                   size = 0.05,
    -                   color = "transparent") +
    -   ggplot2::geom_sf(data = county2010NC,
    -                   fill = "transparent", 
    -                   color = "white",
    -                   size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c() +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
    -  ggplot2::ggtitle("Racial Isolation Index (Anthopolos), non-Hispanic Black",
    -                   subtitle = "NC census tracts (corrected for interstate edge effects)")
    +
    # Compute RI for all census tracts in neighboring states
    +anthopolos2010GNSTV <- anthopolos(
    +  state = c('GA', 'NC', 'SC', 'TN', 'VA'),
    +  year = 2010,
    +  subgroup = 'NHoLB'
    +)
    +
    +# Crop to only North Carolina, U.S.A. census tracts
    +anthopolos2010NCe <- anthopolos2010GNSTV$ri[anthopolos2010GNSTV$ri$GEOID %in% 
    +                                              anthopolos2010NC$ri$GEOID, ]
    +
    +# Obtain the 2010 census tracts from the 'tigris' package
    +tract2010NC <- tracts(state = 'NC', year = 2010, cb = TRUE)
    +# Remove first 9 characters from GEOID for compatibility with tigris information
    +tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) 
    +
    +# Obtain the 2010 counties from the 'tigris' package
    +county2010NC <- counties(state = 'NC', year = 2010, cb = TRUE)
    +
    +# Join the RI values to the census tract geometry
    +edgeNC2010anthopolos <- tract2010NC %>% 
    +  left_join(anthopolos2010NCe, by = 'GEOID')
    +
    # Visualize the RI values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
    +ggplot() +
    +  geom_sf(
    +    data = edgeNC2010anthopolos,
    +    aes(fill = RI),
    +    size = 0.05,
    +    color = 'transparent'
    +  ) +
    +  geom_sf(
    +    data = county2010NC,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c() +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Racial Isolation Index (Anthopolos), non-Hispanic Black',
    +    subtitle = 'NC census tracts (corrected for interstate edge effects)'
    +  )

    Compute Educational Isolation Index (EI)

    Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for -North Carolina, U.S.A., census tracts. This metric is based on Bravo et al. (2021) +Oklahoma, U.S.A., census tracts. This metric is based on Bravo et al. (2021) that assessed the educational isolation of the population without a four-year college degree. Multiple educational attainment categories are available in the bravo() function, including:

    @@ -1343,7 +1444,7 @@

    Compute Educational Isolation Index (EI)

    -

    Note: The ACS-5 data (2005-2009) uses the “B15002” question.

    +

    Note: The ACS-5 data (2005-2009) uses the ‘B15002’ question.

    A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a four-year college degree or more) will have an EI (Bravo) value close to @@ -1351,45 +1452,51 @@

    Compute Educational Isolation Index (EI)

    none of its population with the specified educational attainment category (e.g., with a four-year college degree) will have an EI (Bravo) value close to 0.

    -
    bravo2010NC <- ndi::bravo(state = "NC", year = 2010, subgroup = c("LtHS", "HSGiE", "SCoAD"))
    -
    -# Obtain the 2010 census tracts from the "tigris" package
    -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE)
    -# Remove first 9 characters from GEOID for compatibility with tigris information
    -tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) 
    -
    -# Obtain the 2010 counties from the "tigris" package
    -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE)
    -
    -# Join the EI (Bravo) values to the census tract geometry
    -NC2010bravo <- dplyr::left_join(tract2010NC, bravo2010NC$ei, by = "GEOID")
    -
    # Visualize the EI (Bravo) values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = NC2010bravo, 
    -                   ggplot2::aes(fill = EI),
    -                   size = 0.05,
    -                   color = "transparent") +
    -   ggplot2::geom_sf(data = county2010NC,
    -                   fill = "transparent", 
    -                   color = "white",
    -                   size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c() +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
    -  ggplot2::ggtitle("Educational Isolation Index (Bravo), without a four-year college degree",
    -                   subtitle = "NC census tracts (not corrected for edge effects)")
    -

    +
    bravo2010OK <- bravo(state = 'OK', year = 2010, subgroup = c('LtHS', 'HSGiE', 'SCoAD'))
    +
    +# Obtain the 2010 census tracts from the 'tigris' package
    +tract2010OK <- tracts(state = 'OK', year = 2010, cb = TRUE)
    +# Remove first 9 characters from GEOID for compatibility with tigris information
    +tract2010OK$GEOID <- substring(tract2010OK$GEO_ID, 10) 
    +
    +# Obtain the 2010 counties from the 'tigris' package
    +county2010OK <- counties(state = 'OK', year = 2010, cb = TRUE)
    +
    +# Join the EI (Bravo) values to the census tract geometry
    +OK2010bravo <- tract2010OK %>%
    +  left_join(bravo2010OK$ei, by = 'GEOID')
    +
    # Visualize the EI (Bravo) values (2006-2010 5-year ACS) for Oklahoma, U.S.A., census tracts 
    +ggplot() +
    +  geom_sf(
    +    data = OK2010bravo,
    +    aes(fill = EI),
    +    size = 0.05,
    +    color = 'transparent'
    +  ) +
    +  geom_sf(
    +    data = county2010OK,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c(limits = c(0, 1)) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Educational Isolation Index (Bravo), without a four-year college degree',
    +    subtitle = 'OK census tracts (not corrected for edge effects)'
    +  )
    +

    Can correct one source of edge effect in the same manner as shown for the RI metric.

    Retrieve the Gini Index

    Retrieve the aspatial Gini Index values (2006-2010 5-year ACS) for -North Carolina, U.S.A., census tracts. This metric is based on Gini (1921), and the +Massachusetts, U.S.A., census tracts. This metric is based on Gini (1921), and the gini() function retrieves the estimate from the ACS-5.

    According to the U.S. -Census Bureau: “The Gini Index is a summary measure of income +Census Bureau: ‘The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data into a single statistic, which summarizes the dispersion of income across the entire income distribution. The Gini coefficient ranges from @@ -1397,36 +1504,39 @@

    Retrieve the Gini Index

    to 1, perfect inequality (where only one recipient or group of recipients receives all the income). The Gini is based on the difference between the Lorenz curve (the observed cumulative income distribution) -and the notion of a perfectly equal income distribution.”

    -
    gini2010NC <- ndi::gini(state = "NC", year = 2010)
    -
    -# Obtain the 2010 census tracts from the "tigris" package
    -tract2010NC <- tigris::tracts(state = "NC", year = 2010, cb = TRUE)
    -# Remove first 9 characters from GEOID for compatibility with tigris information
    -tract2010NC$GEOID <- substring(tract2010NC$GEO_ID, 10) 
    -
    -# Obtain the 2010 counties from the "tigris" package
    -county2010NC <- tigris::counties(state = "NC", year = 2010, cb = TRUE)
    -
    -# Join the Gini Index values to the census tract geometry
    -NC2010gini <- dplyr::left_join(tract2010NC, gini2010NC$gini, by = "GEOID")
    -
    # Visualize the Gini Index values (2006-2010 5-year ACS) for North Carolina, U.S.A., census tracts 
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = NC2010gini, 
    -                   ggplot2::aes(fill = gini),
    -                   size = 0.05,
    -                   color = "transparent") +
    -   ggplot2::geom_sf(data = county2010NC,
    -                   fill = "transparent", 
    -                   color = "white",
    -                   size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c() +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
    -  ggplot2::ggtitle("Gini Index",
    -                   subtitle = "NC census tracts")
    -

    +and the notion of a perfectly equal income distribution.’

    +
    gini2010MA <- gini(state = 'MA', year = 2010)
    +
    +# Obtain the 2010 census tracts from the 'tigris' package
    +tract2010MA <- tracts(state = 'MA', year = 2010, cb = TRUE)
    +# Remove first 9 characters from GEOID for compatibility with tigris information
    +tract2010MA$GEOID <- substring(tract2010MA$GEO_ID, 10) 
    +
    +# Obtain the 2010 counties from the 'tigris' package
    +county2010MA <- counties(state = 'MA', year = 2010, cb = TRUE)
    +
    +# Join the Gini Index values to the census tract geometry
    +MA2010gini <- tract2010MA %>%
    +  left_join(gini2010MA$gini, by = 'GEOID')
    +
    # Visualize the Gini Index values (2006-2010 5-year ACS) for Massachusetts, U.S.A., census tracts 
    +ggplot() +
    +  geom_sf(
    +    data = MA2010gini,
    +    aes(fill = gini),
    +    size = 0.05,
    +    color = 'transparent'
    +  ) +
    +  geom_sf(
    +    data = county2010MA,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c() +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle('Gini Index', subtitle = 'MA census tracts')
    +

    @@ -1457,28 +1567,28 @@

    Index of Concentration at the Extremes (ICE)

    B19001 -Income, “ICE_inc” +Income, ‘ICE_inc’ 80th income percentile vs. 20th income percentile B15002 -Education, “ICE_edu” +Education, ‘ICE_edu’ less than high school vs. four-year college degree or more B03002 -Race/Ethnicity, “ICE_rewb” +Race/Ethnicity, ‘ICE_rewb’ 80th income percentile vs. 20th income percentile B19001 & B19001B & B19001H -Income and race/ethnicity combined, “ICE_wbinc” +Income and race/ethnicity combined, ‘ICE_wbinc’ white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile B19001 & B19001H -Income and race/ethnicity combined, “ICE_wpcinc” +Income and race/ethnicity combined, ‘ICE_wpcinc’ white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile @@ -1490,81 +1600,123 @@

    Index of Concentration at the Extremes (ICE)

    or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups.

    -
    ice2020WC <- krieger(state = "MI", county = "Wayne", year = 2010)
    -
    -# Obtain the 2010 census tracts from the "tigris" package
    -tract2010WC <- tigris::tracts(state = "MI", county = "Wayne", year = 2010, cb = TRUE)
    -# Remove first 9 characters from GEOID for compatibility with tigris information
    -tract2010WC$GEOID <- substring(tract2010WC$GEO_ID, 10) 
    -
    -# Join the ICE values to the census tract geometry
    -ice2020WC <- dplyr::left_join(tract2010WC, ice2020WC$ice, by = "GEOID")
    -
    # Plot ICE for Income
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = ice2020WC, 
    -                   ggplot2::aes(fill = ICE_inc),
    -                   color = "white",
    -                   size = 0.05) +
    -  ggplot2::theme_bw() + 
    -  ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1,1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates")+
    -  ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome (Krieger)",
    -                   subtitle = "80th income percentile vs. 20th income percentile")
    -
    -# Plot ICE for Education
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = ice2020WC, 
    -                   ggplot2::aes(fill = ICE_edu),
    -                   color = "white",
    -                   size = 0.05) +
    -  ggplot2::theme_bw() + 
    -  ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1,1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates")+
    -  ggplot2::ggtitle("Index of Concentration at the Extremes\nEducation (Krieger)",
    -                   subtitle = "less than high school vs. four-year college degree or more")
    -
    -# Plot ICE for Race/Ethnicity
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = ice2020WC, 
    -                   ggplot2::aes(fill = ICE_rewb),
    -                   color = "white",
    -                   size = 0.05) +
    -  ggplot2::theme_bw() + 
    -  ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates")+
    -  ggplot2::ggtitle("Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)",
    -                   subtitle = "white non-Hispanic vs. black non-Hispanic")
    -
    -# Plot ICE for Income and Race/Ethnicity Combined
    -## white non-Hispanic in 80th income percentile vs. black (including Hispanic) in 20th income percentile
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = ice2020WC, 
    -                   ggplot2::aes(fill = ICE_wbinc),
    -                   color = "white",
    -                   size = 0.05) +
    -  ggplot2::theme_bw() + 
    -  ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates")+
    -  ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)",
    -                   subtitle = "white non-Hispanic in 80th inc ptcl vs. black alone in 20th inc pctl")
    -
    -# Plot ICE for Income and Race/Ethnicity Combined
    -## white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = ice2020WC, 
    -                   ggplot2::aes(fill = ICE_wpcinc),
    -                   color = "white",
    -                   size = 0.05) +
    -  ggplot2::theme_bw() + 
    -  ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340", limits = c(-1, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates")+
    -  ggplot2::ggtitle("Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)",
    -                   subtitle = "white non-Hispanic (WNH) in 80th inc pctl vs. WNH in 20th inc pctl")
    +
    ice2020WC <- krieger(state = 'MI', county = 'Wayne', year = 2010)
    +
    +# Obtain the 2010 census tracts from the 'tigris' package
    +tract2010WC <- tracts(state = 'MI', county = 'Wayne', year = 2010, cb = TRUE)
    +# Remove first 9 characters from GEOID for compatibility with tigris information
    +tract2010WC$GEOID <- substring(tract2010WC$GEO_ID, 10) 
    +
    +# Join the ICE values to the census tract geometry
    +ice2020WC <- tract2010WC %>%
    +  left_join(ice2020WC$ice, by = 'GEOID')
    +
    # Plot ICE for Income
    +ggplot() +
    +  geom_sf(
    +    data = ice2020WC,
    +    aes(fill = ICE_inc),
    +    color = 'white',
    +    size = 0.05
    +  ) +
    +  theme_bw() +
    +  scale_fill_gradient2(
    +    low = '#998ec3',
    +    mid = '#f7f7f7',
    +    high = '#f1a340',
    +    limits = c(-1, 1)
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Index of Concentration at the Extremes\nIncome (Krieger)',
    +    subtitle = '80th income percentile vs. 20th income percentile'
    +  )
    +
    +# Plot ICE for Education
    +ggplot() +
    +  geom_sf(
    +    data = ice2020WC,
    +    aes(fill = ICE_edu),
    +    color = 'white',
    +    size = 0.05
    +  ) +
    +  theme_bw() +
    +  scale_fill_gradient2(
    +    low = '#998ec3',
    +    mid = '#f7f7f7',
    +    high = '#f1a340',
    +    limits = c(-1, 1)
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Index of Concentration at the Extremes\nEducation (Krieger)',
    +    subtitle = 'less than high school vs. four-year college degree or more'
    +  )
    +
    +# Plot ICE for Race/Ethnicity
    +ggplot() +
    +  geom_sf(
    +    data = ice2020WC,
    +    aes(fill = ICE_rewb),
    +    color = 'white',
    +    size = 0.05
    +  ) +
    +  theme_bw() +
    +  scale_fill_gradient2(
    +    low = '#998ec3',
    +    mid = '#f7f7f7',
    +    high = '#f1a340',
    +    limits = c(-1, 1)
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Index of Concentration at the Extremes\nRace/Ethnicity (Krieger)',
    +    subtitle = 'white non-Hispanic vs. black non-Hispanic'
    +  )
    +
    +# Plot ICE for Income and Race/Ethnicity Combined
    +## white non-Hispanic in 80th income percentile vs. 
    +## black (including Hispanic) in 20th income percentile
    +ggplot() +
    +  geom_sf(
    +    data = ice2020WC,
    +    aes(fill = ICE_wbinc),
    +    color = 'white',
    +    size = 0.05
    +  ) +
    +  theme_bw() +
    +  scale_fill_gradient2(
    +    low = '#998ec3',
    +    mid = '#f7f7f7',
    +    high = '#f1a340',
    +    limits = c(-1, 1)
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)',
    +    subtitle = 'white non-Hispanic in 80th inc ptcl vs. black alone in 20th inc pctl'
    +  )
    +
    +# Plot ICE for Income and Race/Ethnicity Combined
    +## white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile
    +ggplot() +
    +  geom_sf(
    +    data = ice2020WC,
    +    aes(fill = ICE_wpcinc),
    +    color = 'white',
    +    size = 0.05
    +  ) +
    +  theme_bw() +
    +  scale_fill_gradient2(
    +    low = '#998ec3',
    +    mid = '#f7f7f7',
    +    high = '#f1a340',
    +    limits = c(-1, 1)
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Index of Concentration at the Extremes\nIncome & race/ethnicity combined (Krieger)',
    +    subtitle = 'white non-Hispanic (WNH) in 80th inc pctl vs. WNH in 20th inc pctl'
    +  )

    Compute racial/ethnic Dissimilarity Index (DI)

    @@ -1705,32 +1857,44 @@

    Compute racial/ethnic Dissimilarity Index (DI)

    subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation.

    -
    duncan2010PA <- ndi::duncan(geo_large = "county", geo_small = "tract", state = "PA",
    -                            year = 2010, subgroup = "NHoLB", subgroup_ref = "NHoLW")
    -
    -# Obtain the 2010 census counties from the "tigris" package
    -county2010PA <- tigris::counties(state = "PA", year = 2010, cb = TRUE)
    -# Remove first 9 characters from GEOID for compatibility with tigris information
    -county2010PA$GEOID <- substring(county2010PA$GEO_ID, 10) 
    -
    -# Join the DI values to the county geometry
    -PA2010duncan <- dplyr::left_join(county2010PA, duncan2010PA$di, by = "GEOID")
    -
    # Visualize the DI values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties 
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = PA2010duncan, 
    -                   ggplot2::aes(fill = DI),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2010PA,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2006-2010 estimates") +
    -  ggplot2::ggtitle("Dissimilarity Index (Duncan & Duncan)\nPennsylvania census tracts to counties",
    -                   subtitle = "Black non-Hispanic vs. white non-Hispanic")
    +
    duncan2010PA <- duncan(
    +  geo_large = 'county',
    +  geo_small = 'tract',
    +  state = 'PA',
    +  year = 2010,
    +  subgroup = 'NHoLB',
    +  subgroup_ref = 'NHoLW'
    +)
    +
    +# Obtain the 2010 census counties from the 'tigris' package
    +county2010PA <- counties(state = 'PA', year = 2010, cb = TRUE)
    +# Remove first 9 characters from GEOID for compatibility with tigris information
    +county2010PA$GEOID <- substring(county2010PA$GEO_ID, 10) 
    +
    +# Join the DI values to the county geometry
    +PA2010duncan <- county2010PA %>%
    +  left_join(duncan2010PA$di, by = 'GEOID')
    +
    # Visualize the DI values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties 
    +ggplot() +
    +  geom_sf(
    +    data = PA2010duncan,
    +    aes(fill = DI),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2010PA,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c(limits = c(0, 1)) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2006-2010 estimates') +
    +  ggtitle(
    +    'Dissimilarity Index (Duncan & Duncan)\nPennsylvania census tracts to counties',
    +    subtitle = 'Black non-Hispanic vs. white non-Hispanic'
    +  )

    @@ -1741,8 +1905,8 @@

    Compute aspatial income or racial/ethnic Atkinson Index (AI)

    the distribution of income within 12 counties but has since been adapted to study racial/ethnic segregation (see James & Taeuber 1985). To compare median household income, specify -subgroup = "MedHHInc" which will use the ACS-5 variable -“B19013_001” in the computation. Multiple racial/ethnic subgroups are +subgroup = 'MedHHInc' which will use the ACS-5 variable +‘B19013_001’ in the computation. Multiple racial/ethnic subgroups are available in the atkinson() function, including:

    @@ -1877,48 +2041,60 @@

    Compute aspatial income or racial/ethnic Atkinson Index (AI)

    (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The epsilon argument must have values between 0 and 1.0. For -0 <= epsilon < 0.5 or less “inequality-averse,” +0 <= epsilon < 0.5 or less ‘inequality-averse,’ smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to -inequality (“over-representation”). For -0.5 < epsilon <= 1.0 or more “inequality-averse,” +inequality (‘over-representation’). For +0.5 < epsilon <= 1.0 or more ‘inequality-averse,’ smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to -inequality (“under-representation”). If epsilon = 0.5 (the +inequality (‘under-representation’). If epsilon = 0.5 (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) for one method to select epsilon. We choose epsilon = 0.67 in the example below:

    -
    atkinson2021KY <- ndi::atkinson(geo_large = "county", geo_small = "block group", state = "KY",
    -                                year = 2021, subgroup = "NHoLB", epsilon = 0.67)
    -
    -# Obtain the 2021 census counties from the "tigris" package
    -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
    -
    -# Join the AI values to the county geometry
    -KY2021atkinson <- dplyr::left_join(county2021KY, atkinson2021KY$ai, by = "GEOID")
    -
    # Visualize the AI values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = KY2021atkinson, 
    -                   ggplot2::aes(fill = AI),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2021KY,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
    -  ggplot2::ggtitle("Atkinson Index (Atkinson)\nKentucky census block groups to counties",
    -                   subtitle = expression(paste("Black non-Hispanic (", epsilon, " = 0.67)")))
    +
    atkinson2021KY <- atkinson(
    +  geo_large = 'county',
    +  geo_small = 'block group',
    +  state = 'KY',
    +  year = 2021,
    +  subgroup = 'NHoLB',
    +  epsilon = 0.67
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +county2021KY <- counties(state = 'KY', year = 2021, cb = TRUE)
    +
    +# Join the AI values to the county geometry
    +KY2021atkinson <- county2021KY %>% 
    +  left_join(atkinson2021KY$ai, by = 'GEOID')
    +
    # Visualize the AI values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = KY2021atkinson,
    +    aes(fill = AI),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021KY,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c(limits = c(0, 1)) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Atkinson Index (Atkinson)\nKentucky census block groups to counties',
    +    subtitle = expression(paste('Black non-Hispanic (', epsilon, ' = 0.67)'))
    +  )

    Compute racial/ethnic Isolation Index (II)

    Compute the aspatial racial/ethnic II values (2017-2021 5-year ACS) -for Kentucky, U.S.A., counties from census block groups. This metric is +for Ohio, U.S.A., counties from census block groups. This metric is based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and adapted by Bell (1954). Multiple racial/ethnic subgroups are available in the @@ -2050,40 +2226,52 @@

    Compute racial/ethnic Isolation Index (II)

    isolation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. II can range in value from 0 to 1.

    -
    bell2021KY <- ndi::bell(geo_large = "county", geo_small = "tract", state = "KY",
    -                                year = 2021, subgroup = "NHoLB", subgroup_ixn = "NHoLW")
    -
    -# Obtain the 2021 census counties from the "tigris" package
    -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
    -
    -# Join the II values to the county geometry
    -KY2021bell <- dplyr::left_join(county2021KY, bell2021KY$ii, by = "GEOID")
    -
    # Visualize the II values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = KY2021bell, 
    -                   ggplot2::aes(fill = II),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2021KY,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
    -  ggplot2::ggtitle("Isolation Index (Bell)\nKentucky census tracts to counties",
    -                   subtitle = "Black non-Hispanic vs. white non-Hispanic")
    -

    +
    bell2021OH <- bell(
    +  geo_large = 'county',
    +  geo_small = 'tract',
    +  state = 'OH',
    +  year = 2021,
    +  subgroup = 'NHoLB',
    +  subgroup_ixn = 'NHoLW'
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +county2021OH <- counties(state = 'OH', year = 2021, cb = TRUE)
    +
    +# Join the II values to the county geometry
    +OH2021bell <- county2021OH %>%
    +  left_join(bell2021OH$ii, by = 'GEOID')
    +
    # Visualize the II values (2017-2021 5-year ACS) for Ohio, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = OH2021bell,
    +    aes(fill = II),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021OH,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c(limits = c(0, 1)) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Isolation Index (Bell)\nOhio census tracts to counties',
    +    subtitle = 'Black non-Hispanic vs. white non-Hispanic'
    +  )
    +

    Compute Correlation Ratio (V)

    Compute the aspatial racial/ethnic V values (2017-2021 5-year ACS) -for Kentucky, U.S.A., counties from census tracts. This metric is based -on Bell (1954) and adapted -by White (1986). Multiple -racial/ethnic subgroups are available in the white() -function, including:

    +for South Carolina, U.S.A., counties from census tracts. This metric is +based on Bell (1954) and +adapted by White (1986). +Multiple racial/ethnic subgroups are available in the +white() function, including:

    @@ -2210,38 +2398,50 @@

    Compute Correlation Ratio (V)

    located. The Isolation Index is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of -interaction (less isolation). V can range in value from 0 to 1.

    -
    white2021KY <- ndi::white(geo_large = "county", geo_small = "tract", state = "KY",
    -                                year = 2021, subgroup = "NHoLB")
    -
    -# Obtain the 2021 census counties from the "tigris" package
    -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
    -
    -# Join the V values to the county geometry
    -KY2021white <- dplyr::left_join(county2021KY, white2021KY$v, by = "GEOID")
    -
    # Visualize the V values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = KY2021white, 
    -                   ggplot2::aes(fill = V),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2021KY,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
    -  ggplot2::ggtitle("Correlation Ratio (White)\nKentucky census tracts to counties",
    -                   subtitle = "Black non-Hispanic")
    -

    +interaction (less isolation). V can range in value from -Inf to Inf.

    +
    white2021SC <- white(
    +  geo_large = 'county',
    +  geo_small = 'tract',
    +  state = 'SC',
    +  year = 2021,
    +  subgroup = 'NHoLB'
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +county2021SC <- counties(state = 'SC', year = 2021, cb = TRUE)
    +
    +# Join the V values to the county geometry
    +SC2021white <- county2021SC %>%
    +  left_join(white2021SC$v, by = 'GEOID')
    +
    # Visualize the V values (2017-2021 5-year ACS) for South Carolina, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = SC2021white,
    +    aes(fill = V),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021SC,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c() +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Correlation Ratio (White)\nSouth Carolina census tracts to counties',
    +    subtitle = 'Black non-Hispanic'
    +  )
    +

    Compute Location Quotient (LQ)

    Compute the aspatial racial/ethnic LQ values (2017-2021 5-year ACS) -for Kentucky, U.S.A., counties vs. the state. This metric is based on Merton (1939) and adapted by -Sudano et +for Tennessee, U.S.A., counties vs. the state. This metric is based on +Merton (1939) and adapted +by Sudano et al. (2013). Multiple racial/ethnic subgroups are available in the sudano() function, including:

    @@ -2375,34 +2575,47 @@

    Compute Location Quotient (LQ)

    larger geography. Unlike the previous metrics that aggregate to the larger geography, LQ computes values for each smaller geography relative to the larger geography.

    -
    sudano2021KY <- ndi::sudano(geo_large = "state", geo_small = "county", state = "KY",
    -                                year = 2021, subgroup = "NHoLB")
    -
    -# Obtain the 2021 census counties from the "tigris" package
    -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
    -
    -# Join the LQ values to the county geometry
    -KY2021sudano <- dplyr::left_join(county2021KY, sudano2021KY$lq, by = "GEOID")
    -
    # Visualize the LQ values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = KY2021sudano, 
    -                   ggplot2::aes(fill = LQ),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2021KY,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c(limits = c(0, 1)) +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
    -  ggplot2::ggtitle("Location Quotient (Sudano)\nKentucky counties vs. state",
    -                   subtitle = "Black non-Hispanic")
    -

    -#### Compute Local Exposure and Isolation (LEx/Is)

    +
    sudano2021TN <- sudano(
    +  geo_large = 'state',
    +  geo_small = 'county',
    +  state = 'TN',
    +  year = 2021,
    +  subgroup = 'NHoLB'
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +county2021TN <- counties(state = 'TN', year = 2021, cb = TRUE)
    +
    +# Join the LQ values to the county geometry
    +TN2021sudano <- county2021TN %>% 
    +                   left_join(sudano2021TN$lq, by = 'GEOID')
    +
    # Visualize the LQ values (2017-2021 5-year ACS) for Tennessee, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = TN2021sudano,
    +    aes(fill = LQ),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021TN,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c() +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Location Quotient (Sudano)\nTennessee counties vs. state',
    +    subtitle = 'Black non-Hispanic'
    +  )
    +

    + +
    +

    Compute Local Exposure and Isolation (LEx/Is)

    Compute the aspatial racial/ethnic Local Exposure and Isolation -metric (2017-2021 5-year ACS) for Kentucky, U.S.A., counties vs. the +metric (2017-2021 5-year ACS) for Mississippi, U.S.A., counties vs. the state. This metric is based on Bemanian & Beyer (2017). Multiple racial/ethnic subgroups are available in the bemanian_beyer() function, including:

    @@ -2546,55 +2759,248 @@

    Compute Location Quotient (LQ)

    smaller geography relative to the larger geography. Similar to LQ (Sudano), LEx/Is computes values for each smaller geography relative to the larger geography.

    -
    bemanian_beyer2021KY <- ndi::bemanian_beyer(geo_large = "state", geo_small = "county", state = "KY",
    -                                            year = 2021, subgroup = "NHoLB", subgroup_ixn = "NHoLW")
    -
    -# Obtain the 2021 census counties from the "tigris" package
    -county2021KY <- tigris::counties(state = "KY", year = 2021, cb = TRUE)
    -
    -# Join the LEx/Is values to the county geometry
    -KY2021bemanian_beyer <- dplyr::left_join(county2021KY, bemanian_beyer2021KY$lexis, by = "GEOID")
    -
    # Visualize the LEx/Is values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = KY2021bemanian_beyer, 
    -                   ggplot2::aes(fill = LExIs),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2021KY,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -   ggplot2::scale_fill_gradient2(low = "#998ec3", mid = "#f7f7f7", high = "#f1a340") +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
    -  ggplot2::ggtitle("Local Exposure and Isolation (Bemanian & Beyer) metric\nKentucky counties vs. state",
    -                   subtitle = "Black non-Hispanic vs. White non-Hispanic")
    -

    -
    # Visualize the exponentiated LEx/Is values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    -ggplot2::ggplot() + 
    -  ggplot2::geom_sf(data = KY2021bemanian_beyer, 
    -                   ggplot2::aes(fill = exp(LExIs)),
    -                   size = 0.05,
    -                   color = "white") +
    -   ggplot2::geom_sf(data = county2021KY,
    -                    fill = "transparent", 
    -                    color = "white",
    -                    size = 0.2) +
    -  ggplot2::theme_minimal() +
    -  ggplot2::scale_fill_viridis_c() +
    -  ggplot2::labs(fill = "Index (Continuous)",
    -                caption = "Source: U.S. Census ACS 2017-2021 estimates") +
    -  ggplot2::ggtitle("Odds ratio of Local Exposure and Isolation (Bemanian & Beyer) metric\nKentucky counties vs. state",
    -                   subtitle = "Black non-Hispanic vs. White non-Hispanic")
    -

    -
    sessionInfo()
    -
    ## R version 4.2.1 (2022-06-23 ucrt)
    -## Platform: x86_64-w64-mingw32/x64 (64-bit)
    +
    bemanian_beyer2021MS <- bemanian_beyer(
    +  geo_large = 'state',
    +  geo_small = 'county',
    +  state = 'MS',
    +  year = 2021,
    +  subgroup = 'NHoLB',
    +  subgroup_ixn = 'NHoLW'
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +county2021MS <- counties(state = 'MS', year = 2021, cb = TRUE)
    +
    +# Join the LEx/Is values to the county geometry
    +MS2021bemanian_beyer <- county2021MS %>%
    +  left_join(bemanian_beyer2021MS$lexis, by = 'GEOID')
    +
    # Visualize the LEx/Is values (2017-2021 5-year ACS) for Mississippi, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = MS2021bemanian_beyer,
    +    aes(fill = LExIs),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021MS,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_gradient2(
    +    low = '#998ec3',
    +    mid = '#f7f7f7',
    +    high = '#f1a340'
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Local Exposure and Isolation (Bemanian & Beyer)\nMississippi counties vs. state',
    +    subtitle = 'Black non-Hispanic vs. White non-Hispanic'
    +  )
    +

    +
    # Visualize the exponentiated LEx/Is values (2017-2021 5-year ACS) for 
    +## Mississippi, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = MS2021bemanian_beyer,
    +    aes(fill = exp(LExIs)),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021MS,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c() +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Odds ratio of Local Exposure and Isolation (Bemanian & Beyer)\n
    +    Mississippi counties vs. state',
    +    subtitle = 'Black non-Hispanic vs. White non-Hispanic'
    +  )
    +

    +
    +
    +

    Compute Delta (DEL)

    +

    Compute the aspatial racial/ethnic DEL values (2017-2021 5-year ACS) +for Alabama, U.S.A., counties from census tracts. This metric is based +on Hoover (1941) +and Duncan et al. (1961; LC:60007089). Multiple racial/ethnic subgroups +are available in the hoover() function, including:

    +
    +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ACS table sourceracial/ethnic subgroupcharacter for subgroup argument
    B03002_002not Hispanic or LatinoNHoL
    B03002_003not Hispanic or Latino, white aloneNHoLW
    B03002_004not Hispanic or Latino, Black or African American aloneNHoLB
    B03002_005not Hispanic or Latino, American Indian and Alaska Native aloneNHoLAIAN
    B03002_006not Hispanic or Latino, Asian aloneNHoLA
    B03002_007not Hispanic or Latino, Native Hawaiian and Other Pacific Islander +aloneNHoLNHOPI
    B03002_008not Hispanic or Latino, some other race aloneNHoLSOR
    B03002_009not Hispanic or Latino, two or more racesNHoLTOMR
    B03002_010not Hispanic or Latino, two races including some other raceNHoLTRiSOR
    B03002_011not Hispanic or Latino, two races excluding some other race, and +three or more racesNHoLTReSOR
    B03002_012Hispanic or LatinoHoL
    B03002_013Hispanic or Latino, white aloneHoLW
    B03002_014Hispanic or Latino, Black or African American aloneHoLB
    B03002_015Hispanic or Latino, American Indian and Alaska Native aloneHoLAIAN
    B03002_016Hispanic or Latino, Asian aloneHoLA
    B03002_017Hispanic or Latino, Native Hawaiian and other Pacific Islander +aloneHoLNHOPI
    B03002_018Hispanic or Latino, some other race aloneHoLSOR
    B03002_019Hispanic or Latino, two or more racesHoLTOMR
    B03002_020Hispanic or Latino, two races including some other raceHoLTRiSOR
    B03002_021Hispanic or Latino, two races excluding some other race, and three +or more racesHoLTReSOR
    +

    DEL is a measure of the proportion of members of one subgroup(s) +residing in geographic units with above average density of members of +the subgroup(s). The index provides the proportion of a subgroup +population that would have to move across geographic units to achieve a +uniform density. DEL can range in value from 0 to 1.

    +
    hoover2021AL <- hoover(
    +  geo_large = 'county',
    +  geo_small = 'tract',
    +  state = 'AL',
    +  year = 2021,
    +  subgroup = 'NHoLB'
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +county2021AL <- counties(state = 'AL', year = 2021, cb = TRUE)
    +
    +# Join the DEL values to the county geometry
    +AL2021hoover <- county2021AL %>%
    +  left_join(hoover2021AL$del, by = 'GEOID')
    +
    # Visualize the DEL values (2017-2021 5-year ACS) for Alabama, U.S.A., counties
    +ggplot() +
    +  geom_sf(
    +    data = AL2021hoover,
    +    aes(fill = DEL),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = county2021AL,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c(limits = c(0, 1)) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') +
    +  ggtitle(
    +    'Delta (Hoover)\nAlabama census tracts to counties',
    +    subtitle = 'Black non-Hispanic'
    +  )
    +

    +
    sessionInfo()
    +
    ## R version 4.4.0 (2024-04-24 ucrt)
    +## Platform: x86_64-w64-mingw32/x64
     ## Running under: Windows 10 x64 (build 19045)
     ## 
     ## Matrix products: default
     ## 
    +## 
     ## locale:
     ## [1] LC_COLLATE=English_United States.utf8 
     ## [2] LC_CTYPE=English_United States.utf8   
    @@ -2602,33 +3008,36 @@ 

    Compute Location Quotient (LQ)

    ## [4] LC_NUMERIC=C ## [5] LC_TIME=English_United States.utf8 ## +## time zone: America/New_York +## tzcode source: internal +## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] tigris_2.0.1 tidycensus_1.3.2 ndi_0.1.4 ggplot2_3.4.0 -## [5] dplyr_1.1.0 knitr_1.42 +## [1] tigris_2.1 tidycensus_1.6.3 ndi_0.1.6.9000 ggplot2_3.5.1 +## [5] dplyr_1.1.4 knitr_1.46 ## ## loaded via a namespace (and not attached): -## [1] Rcpp_1.0.10 lattice_0.20-45 tidyr_1.3.0 class_7.3-20 -## [5] digest_0.6.31 psych_2.2.9 utf8_1.2.2 R6_2.5.1 -## [9] evaluate_0.20 e1071_1.7-12 highr_0.10 httr_1.4.4 -## [13] pillar_1.8.1 rlang_1.0.6 curl_5.0.0 uuid_1.1-0 -## [17] rstudioapi_0.14 car_3.1-1 jquerylib_0.1.4 Matrix_1.4-1 -## [21] rmarkdown_2.20 labeling_0.4.2 readr_2.1.3 stringr_1.5.0 -## [25] munsell_0.5.0 proxy_0.4-27 compiler_4.2.1 xfun_0.36 -## [29] pkgconfig_2.0.3 mnormt_2.1.1 htmltools_0.5.4 tidyselect_1.2.0 -## [33] tibble_3.1.8 viridisLite_0.4.1 fansi_1.0.4 tzdb_0.3.0 -## [37] crayon_1.5.2 withr_2.5.0 sf_1.0-9 wk_0.7.1 -## [41] MASS_7.3-58.1 rappdirs_0.3.3 grid_4.2.1 nlme_3.1-157 -## [45] jsonlite_1.8.4 gtable_0.3.1 lifecycle_1.0.3 DBI_1.1.3 -## [49] magrittr_2.0.3 units_0.8-1 scales_1.2.1 KernSmooth_2.23-20 -## [53] cli_3.6.0 stringi_1.7.12 cachem_1.0.6 carData_3.0-5 -## [57] farver_2.1.1 xml2_1.3.3 bslib_0.4.2 ellipsis_0.3.2 -## [61] generics_0.1.3 vctrs_0.5.2 s2_1.1.2 tools_4.2.1 -## [65] Cairo_1.6-0 glue_1.6.2 purrr_1.0.1 hms_1.1.2 -## [69] abind_1.4-5 parallel_4.2.1 fastmap_1.1.0 yaml_2.3.6 -## [73] colorspace_2.1-0 classInt_0.4-8 rvest_1.0.3 sass_0.4.4
    +## [1] gtable_0.3.5 xfun_0.43 bslib_0.7.0 psych_2.4.6.26 +## [5] lattice_0.22-6 tzdb_0.4.0 Cairo_1.6-2 vctrs_0.6.5 +## [9] tools_4.4.0 generics_0.1.3 curl_5.2.1 parallel_4.4.0 +## [13] tibble_3.2.1 proxy_0.4-27 fansi_1.0.6 highr_0.10 +## [17] pkgconfig_2.0.3 Matrix_1.7-0 KernSmooth_2.23-22 uuid_1.2-0 +## [21] lifecycle_1.0.4 farver_2.1.2 compiler_4.4.0 stringr_1.5.1 +## [25] munsell_0.5.1 mnormt_2.1.1 carData_3.0-5 htmltools_0.5.8.1 +## [29] class_7.3-22 sass_0.4.9 yaml_2.3.8 pillar_1.9.0 +## [33] car_3.1-2 crayon_1.5.2 jquerylib_0.1.4 tidyr_1.3.1 +## [37] MASS_7.3-60.2 classInt_0.4-10 cachem_1.0.8 wk_0.9.1 +## [41] abind_1.4-5 nlme_3.1-164 tidyselect_1.2.1 rvest_1.0.4 +## [45] digest_0.6.35 stringi_1.8.3 sf_1.0-16 purrr_1.0.2 +## [49] labeling_0.4.3 fastmap_1.1.1 grid_4.4.0 colorspace_2.1-0 +## [53] cli_3.6.3 magrittr_2.0.3 utf8_1.2.4 e1071_1.7-14 +## [57] readr_2.1.5 withr_3.0.0 scales_1.3.0 rappdirs_0.3.3 +## [61] rmarkdown_2.26 httr_1.4.7 hms_1.1.3 evaluate_0.23 +## [65] viridisLite_0.4.2 s2_1.1.6 rlang_1.1.4 Rcpp_1.0.12 +## [69] glue_1.7.0 DBI_1.2.2 xml2_1.3.6 rstudioapi_0.16.0 +## [73] jsonlite_1.8.8 R6_2.5.1 units_0.8-5
    From bd92050bc62feab67b734ad420814ed899c0c091 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 14:11:44 -0400 Subject: [PATCH 14/23] :memo: Additional formatting of README examples * removes horizontal scroll bar in HTML view --- README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0470ef5..8f6ae8f 100644 --- a/README.md +++ b/README.md @@ -296,7 +296,8 @@ DC2020powell_wiley <- tract2020DC DC2020powell_wiley <- DC2020powell_wiley left_join(powell_wiley2020DCi$ndi, by = 'GEOID') -# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C. census tracts +# Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for +# Washington, D.C. census tracts ## Non-imputed missing tracts (Continuous) ggplot() + @@ -419,8 +420,8 @@ ndi2020DC <- messer2020DC$ndi %>% suffix = c('.messer', '.powell_wiley') ) -# Check the correlation the two NDI metrics (Messer and Powell-Wiley, imputed) as continuous values -cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = 'complete.obs') # Pearsons r = 0.975 +# Check the correlation of two NDI metrics (Messer & Powell-Wiley, imputed) as continuous values +cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = 'complete.obs') # Pearson's r=0.975 # Check the similarity of the two NDI metrics (Messer and Powell-Wiley, imputed) as quartiles table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) @@ -490,7 +491,8 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Racial Isolation Index\nNot Hispanic or Latino, Black or African American alone (Anthopolos)', + 'Racial Isolation Index\n + Not Hispanic or Latino, Black or African American alone (Anthopolos)', subtitle = 'Washington, D.C. tracts (not corrected for edge effects)' ) ``` @@ -953,7 +955,8 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Local Exposure and Isolation (Bemanian & Beyer) metric\nWashington, D.C. census block groups to tracts', + 'Local Exposure and Isolation (Bemanian & Beyer) metric\n + Washington, D.C. census block groups to tracts', subtitle = 'Black non-Hispanic vs. white non-Hispanic' ) ``` From 8462005b6667a9b27d447eb30544866baa76f450 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 14:13:55 -0400 Subject: [PATCH 15/23] :memo: Additional formatting of README examples * removes horizontal scroll bar in HTML view --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8f6ae8f..694eddd 100644 --- a/README.md +++ b/README.md @@ -264,9 +264,11 @@ ggplot() + # Calculate NDI (Powell-Wiley) # # ---------------------------- # -# Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for Washington, D.C. census tracts +# Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for +# Washington, D.C. census tracts powell_wiley2020DC <- powell_wiley(state = 'DC', year = 2020) -powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # impute missing values +# impute missing values +powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # ------------------------------------ # # Outputs from powell_wiley() function # @@ -276,7 +278,8 @@ powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # imp # raw census characteristics for each tract powell_wiley2020DC$ndi -# The results from the principal component analysis used to compute the NDI (Powell-Wiley) values +# The results from the principal component analysis used to +# compute the NDI (Powell-Wiley) values powell_wiley2020DC$pca # A tibble containing a breakdown of the missingingness of the census characteristics used to @@ -345,7 +348,8 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Neighborhood Deprivation Index\nPopulation-weighted Quintiles (Powell-Wiley, non-imputed)', + 'Neighborhood Deprivation Index\n + Population-weighted Quintiles (Powell-Wiley, non-imputed)', subtitle = 'Washington, D.C. tracts as the referent' ) ``` From 29f2d6385736934d9deb22f669c61eb903ad0eb5 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sat, 6 Jul 2024 14:26:13 -0400 Subject: [PATCH 16/23] :stethoscope: Set up R-hub v2 * Created 'rhub.yaml' --- .github/workflows/rhub.yaml | 95 +++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/rhub.yaml diff --git a/.github/workflows/rhub.yaml b/.github/workflows/rhub.yaml new file mode 100644 index 0000000..74ec7b0 --- /dev/null +++ b/.github/workflows/rhub.yaml @@ -0,0 +1,95 @@ +# R-hub's generic GitHub Actions workflow file. It's canonical location is at +# https://github.com/r-hub/actions/blob/v1/workflows/rhub.yaml +# You can update this file to a newer version using the rhub2 package: +# +# rhub::rhub_setup() +# +# It is unlikely that you need to modify this file manually. + +name: R-hub +run-name: "${{ github.event.inputs.id }}: ${{ github.event.inputs.name || format('Manually run by {0}', github.triggering_actor) }}" + +on: + workflow_dispatch: + inputs: + config: + description: 'A comma separated list of R-hub platforms to use.' + type: string + default: 'linux,windows,macos' + name: + description: 'Run name. You can leave this empty now.' + type: string + id: + description: 'Unique ID. You can leave this empty now.' + type: string + +jobs: + + setup: + runs-on: ubuntu-latest + outputs: + containers: ${{ steps.rhub-setup.outputs.containers }} + platforms: ${{ steps.rhub-setup.outputs.platforms }} + + steps: + # NO NEED TO CHECKOUT HERE + - uses: r-hub/actions/setup@v1 + with: + config: ${{ github.event.inputs.config }} + id: rhub-setup + + linux-containers: + needs: setup + if: ${{ needs.setup.outputs.containers != '[]' }} + runs-on: ubuntu-latest + name: ${{ matrix.config.label }} + strategy: + fail-fast: false + matrix: + config: ${{ fromJson(needs.setup.outputs.containers) }} + container: + image: ${{ matrix.config.container }} + + steps: + - uses: r-hub/actions/checkout@v1 + - uses: r-hub/actions/platform-info@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/setup-deps@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/run-check@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + + other-platforms: + needs: setup + if: ${{ needs.setup.outputs.platforms != '[]' }} + runs-on: ${{ matrix.config.os }} + name: ${{ matrix.config.label }} + strategy: + fail-fast: false + matrix: + config: ${{ fromJson(needs.setup.outputs.platforms) }} + + steps: + - uses: r-hub/actions/checkout@v1 + - uses: r-hub/actions/setup-r@v1 + with: + job-config: ${{ matrix.config.job-config }} + token: ${{ secrets.RHUB_TOKEN }} + - uses: r-hub/actions/platform-info@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/setup-deps@v1 + with: + job-config: ${{ matrix.config.job-config }} + token: ${{ secrets.RHUB_TOKEN }} + - uses: r-hub/actions/run-check@v1 + with: + job-config: ${{ matrix.config.job-config }} + token: ${{ secrets.RHUB_TOKEN }} From 7b072877d5947320301d2e603d8e3c8b68457958 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Tue, 9 Jul 2024 16:30:17 -0400 Subject: [PATCH 17/23] :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 2) * suspect #8 is lack of 'sf' dependencies in earlier Ubuntu releases (i.e., GDAL) * now install 'sf' dependencies based on R CMD check in GitHub Actions of pfizer-opensource/deprivateR --- .github/workflows/R-CMD-check.yaml | 94 +++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 16 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index a3ac618..8a12fe0 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -1,10 +1,10 @@ -# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples -# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: - branches: [main, master] + branches: + - main pull_request: - branches: [main, master] + branches: + - main name: R-CMD-check @@ -18,32 +18,94 @@ jobs: fail-fast: false matrix: config: + - {os: macos-latest, r: 'devel'} - {os: macos-latest, r: 'release'} - {os: windows-latest, r: 'release'} - - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - - {os: ubuntu-latest, r: 'release'} - - {os: ubuntu-latest, r: 'oldrel-1'} - + - {os: windows-latest, r: '3.6'} # Use 3.6 to trigger usage of RTools35 + - {os: windows-latest, r: '4.1'} # use 4.1 to check with rtools40's older compiler + - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} + - {os: ubuntu-latest, r: 'release'} + - {os: ubuntu-latest, r: 'oldrel'} + - {os: ubuntu-latest, r: 'oldrel-1'} + - {os: ubuntu-latest, r: 'oldrel-2'} + - {os: ubuntu-latest, r: 'oldrel-3'} + - {os: ubuntu-latest, r: 'oldrel-4'} + - {os: ubuntu-latest, r: 'oldrel-5'} + env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes + R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + RSPM: ${{ matrix.config.rspm }} steps: - - uses: actions/checkout@v3 - - - uses: r-lib/actions/setup-pandoc@v2 + - uses: actions/checkout@v4 - - uses: r-lib/actions/setup-r@v2 + - uses: r-lib/actions/setup-r@v2.9.0 with: r-version: ${{ matrix.config.r }} http-user-agent: ${{ matrix.config.http-user-agent }} use-public-rspm: true + + - uses: r-lib/actions/setup-pandoc@v2 + + # For file snapshot that uses png + - name: Install xquartz + if: runner.os == 'macOS' + run: brew install --cask xquartz + + # - uses: r-lib/actions/setup-r-dependencies@v2.9.0 + # with: + # extra-packages: any::rcmdcheck + # needs: check - - uses: r-lib/actions/setup-r-dependencies@v2 + - name: Query dependencies + run: | + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + shell: Rscript {0} + + - name: Cache R packages + if: runner.os != 'Windows' + uses: actions/cache@v1 with: - extra-packages: any::rcmdcheck - needs: check + path: ${{ env.R_LIBS_USER }} + key: ${{ runner.os }}-r-${{ matrix.config.r }}-1-${{ hashFiles('.github/depends.Rds') }} + restore-keys: ${{ runner.os }}-r-${{ matrix.config.r }}-1- + + - name: Install macOS specific dependencies for sf + if: runner.os == 'macOS' + run: brew install udunits gdal proj + + - name: Install Linux specific dependencies for sf + if: runner.os == 'Linux' + run: sudo apt-get install libgdal-dev libproj-dev libgeos-dev libudunits2-dev - - uses: r-lib/actions/check-r-package@v2 + - name: Install language dependencies + run: | + remotes::install_deps(dependencies = TRUE, build = FALSE) + remotes::install_cran("rcmdcheck") + shell: Rscript {0} + + - name: Session info + run: | + options(width = 100) + pkgs <- installed.packages()[, 'Package'] + sessioninfo::session_info(pkgs, include_base = TRUE) + shell: Rscript {0} + + - uses: r-lib/actions/check-r-package@v2.9.0 with: upload-snapshots: true + + - name: Show testthat output + if: always() + run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true + shell: bash + + - name: Upload check results + if: failure() + uses: actions/upload-artifact@v4 + with: + name: ${{ runner.os }}-r${{ matrix.config.r }}-results + path: check From 12a7742cee93a8244fd6bed8e887f077e02ab604 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Tue, 9 Jul 2024 16:42:48 -0400 Subject: [PATCH 18/23] :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 3) --- .github/workflows/R-CMD-check.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 8a12fe0..22db66e 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -1,10 +1,10 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples + on: push: - branches: - - main + branches: [main, master] pull_request: - branches: - - main + branches: [main, master] name: R-CMD-check @@ -18,11 +18,10 @@ jobs: fail-fast: false matrix: config: - - {os: macos-latest, r: 'devel'} - - {os: macos-latest, r: 'release'} + - {os: macOS-latest, r: 'devel'} + - {os: macOS-latest, r: 'release'} + - {os: windows-latest, r: 'devel'} - {os: windows-latest, r: 'release'} - - {os: windows-latest, r: '3.6'} # Use 3.6 to trigger usage of RTools35 - - {os: windows-latest, r: '4.1'} # use 4.1 to check with rtools40's older compiler - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - {os: ubuntu-latest, r: 'oldrel'} From 8cdfc49fbf5058050bae23b7a6276ae87237ab32 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Tue, 9 Jul 2024 20:48:09 -0400 Subject: [PATCH 19/23] =?UTF-8?q?=F0=9F=94=80=20Merge=20`branch:dev=5Fhoov?= =?UTF-8?q?er`=20into=20`branch:main`=20(#12)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit :stethoscope: Update R CMD check in GitHub Actions * install additional dependencies for `macOS-latest` and `ubuntu-latest` checks * removed unit test for `macOS-latest (devel)` because of 'units' dependency configuration --- .github/workflows/R-CMD-check.yaml | 84 ++++++++++++++---------------- 1 file changed, 38 insertions(+), 46 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 385aa1e..33dd9dc 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -1,10 +1,10 @@ -# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples - on: push: - branches: [main, master] + branches: + - main pull_request: - branches: [main, master] + branches: + - main name: R-CMD-check @@ -18,93 +18,85 @@ jobs: fail-fast: false matrix: config: - - {os: macOS-latest, r: 'devel'} + # - {os: macOS-latest, r: 'devel'} # Issue with loading 'units' dependency - {os: macOS-latest, r: 'release'} + - {os: macOS-latest, r: 'oldrel'} - {os: windows-latest, r: 'devel'} - {os: windows-latest, r: 'release'} + - {os: windows-latest, r: 'oldrel'} - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - {os: ubuntu-latest, r: 'oldrel'} - - {os: ubuntu-latest, r: 'oldrel-1'} - - {os: ubuntu-latest, r: 'oldrel-2'} - - {os: ubuntu-latest, r: 'oldrel-3'} - - {os: ubuntu-latest, r: 'oldrel-4'} - - {os: ubuntu-latest, r: 'oldrel-5'} env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - R_KEEP_PKG_SOURCE: yes + R_KEEP_PKG_SOURCE: yes R_REMOTES_NO_ERRORS_FROM_WARNINGS: true RSPM: ${{ matrix.config.rspm }} + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - - uses: r-lib/actions/setup-r@v2.9.0 + - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} http-user-agent: ${{ matrix.config.http-user-agent }} use-public-rspm: true - uses: r-lib/actions/setup-pandoc@v2 - - # For file snapshot that uses png - - name: Install xquartz - if: runner.os == 'macOS' - run: brew install --cask xquartz - - # - uses: r-lib/actions/setup-r-dependencies@v2.9.0 - # with: - # extra-packages: any::rcmdcheck - # needs: check + - name: "[Custom block] [MacOS] Install spatial libraries" + if: runner.os == 'macOS' + run: brew install udunits gdal proj geos + + - name: "[Custom block] [Linux] Install spatial libraries" + if: runner.os == 'Linux' + run: sudo apt-get install libudunits2-dev libgdal-dev libproj-dev libgeos-dev + - name: Query dependencies run: | install.packages('remotes') saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") shell: Rscript {0} - name: Cache R packages if: runner.os != 'Windows' - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ${{ env.R_LIBS_USER }} key: ${{ runner.os }}-r-${{ matrix.config.r }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-r-${{ matrix.config.r }}-1- + restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - name: Install macOS specific dependencies for sf - if: runner.os == 'macOS' - run: brew install udunits gdal proj - - - name: Install Linux specific dependencies for sf - if: runner.os == 'Linux' - run: sudo apt-get install libgdal-dev libproj-dev libgeos-dev libudunits2-dev - - - name: Install language dependencies + - name: Install dependencies run: | remotes::install_deps(dependencies = TRUE, build = FALSE) remotes::install_cran("rcmdcheck") shell: Rscript {0} + + # - name: "[Custom block] [MacOS] Install units with configuration" + # if: runner.os == 'macOS' + # run: | + # install.packages('udunits2', type = 'source', configure.args = '--with-udunits2-lib=/usr/local/udunits2') + # install.packages('units', type = 'source', configure.args = '--with-udunits2-lib=/usr/local/udunits2') + # shell: Rscript {0} - name: Session info run: | options(width = 100) - pkgs <- installed.packages()[, 'Package'] + pkgs <- installed.packages()[, "Package"] sessioninfo::session_info(pkgs, include_base = TRUE) shell: Rscript {0} - - - uses: r-lib/actions/check-r-package@v2.9.0 - with: - upload-snapshots: true - - - name: Show testthat output - if: always() - run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true - shell: bash + + - name: Check + env: + _R_CHECK_CRAN_INCOMING_REMOTE_: false + run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") + shell: Rscript {0} - name: Upload check results if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@main with: name: ${{ runner.os }}-r${{ matrix.config.r }}-results - path: check + path: check From 081b2a127a30dcd3549fef096d41c5577059423e Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Sun, 18 Aug 2024 20:22:04 -0400 Subject: [PATCH 20/23] =?UTF-8?q?=F0=9F=94=80=20Merge=20`branch:dev=5Fhoov?= =?UTF-8?q?er`=20into=20`branch:main`=20(#14)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 4) * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 5) * install additional dependencies for `macOS-latest` and `ubuntu-latest` checks * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 6) * install `geos` dependencies for macOS * removing `r-cran-desctools` (for now) to test `r-cran-car` fix * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 7) * install 'units' dependency correctly on macOS * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 8) * install 'units' dependency correctly on macOS r-devel * streamline Linux tests dependencies * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 9) * install 'units' dependency correctly on macOS r-devel * :stethoscope: Update R CMD check in GitHub Actions * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 1) * install 'units' dependency correctly on macOS r-devel * :stethoscope: Update R CMD check in GitHub Actions * test solution for #8 (attempt 11) * removed unit test for `macOS-latest (devel)` because of 'units' dependency configuration * :sparkles: CBSAs now available as a larger geographical unit * Added `geo_large = 'cbsa'` option for computing Core Based Statistical Areas as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. * `tigris` is now Imports * Updated documentation formatting of metric names in most functions * :link: Fix links in README badges * 🔀 Merge `branch:dev_hoover` into `branch:main` (#12) (#13) :stethoscope: Update R CMD check in GitHub Actions * install additional dependencies for `macOS-latest` and `ubuntu-latest` checks * removed unit test for `macOS-latest (devel)` because of 'units' dependency configuration --- DESCRIPTION | 2 +- LICENSE.md | 2 +- NAMESPACE | 2 ++ NEWS.md | 35 ++++++++++--------- R/anthopolos.R | 14 ++++---- R/atkinson.R | 80 +++++++++++++++++++++++++++++-------------- R/bell.R | 78 ++++++++++++++++++++++++++++------------- R/bemanian_beyer.R | 76 ++++++++++++++++++++++++++-------------- R/bravo.R | 14 ++++---- R/duncan.R | 74 +++++++++++++++++++++++++++------------ R/globals.R | 4 +++ R/hoover.R | 74 +++++++++++++++++++++++++++------------ R/krieger.R | 10 +++--- R/messer.R | 14 ++++---- R/ndi-package.R | 5 +-- R/powell_wiley.R | 14 ++++---- R/sudano.R | 70 +++++++++++++++++++++++++------------ R/utils.R | 6 ++-- R/white.R | 66 +++++++++++++++++++++++++---------- README.md | 50 +++++++++++++-------------- cran-comments.md | 12 ++++--- man/anthopolos.Rd | 10 +++--- man/atkinson.Rd | 12 +++---- man/bell.Rd | 12 +++---- man/bemanian_beyer.Rd | 14 ++++---- man/bravo.Rd | 10 +++--- man/duncan.Rd | 12 +++---- man/hoover.Rd | 12 +++---- man/krieger.Rd | 10 +++--- man/messer.Rd | 14 ++++---- man/ndi-package.Rd | 2 +- man/powell_wiley.Rd | 14 ++++---- man/sudano.Rd | 14 ++++---- man/white.Rd | 12 +++---- 34 files changed, 533 insertions(+), 317 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a0b6915..69f32bd 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -63,12 +63,12 @@ Imports: stringr, tidycensus, tidyr, + tigris, utils Suggests: DescTools, ggplot2, testthat, - tigris, R.rsp, spelling, usethis diff --git a/LICENSE.md b/LICENSE.md index fb3b0bd..9a76157 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -169,7 +169,7 @@ accepting any such warranty or additional liability. _END OF TERMS AND CONDITIONS_ - Copyright 2022 Ian D. Buller; NCI + Copyright 2024 Ian D. Buller; NCI Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/NAMESPACE b/NAMESPACE index 71b1c6a..5ac1e51 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -22,6 +22,7 @@ importFrom(psych,principal) importFrom(sf,st_drop_geometry) importFrom(sf,st_geometry) importFrom(sf,st_intersects) +importFrom(sf,st_within) importFrom(stats,complete.cases) importFrom(stats,cor) importFrom(stats,cov2cor) @@ -36,4 +37,5 @@ importFrom(stringr,str_trim) importFrom(tidycensus,get_acs) importFrom(tidyr,pivot_longer) importFrom(tidyr,separate) +importFrom(tigris,core_based_statistical_areas) importFrom(utils,stack) diff --git a/NEWS.md b/NEWS.md index ad665cf..a82643e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,15 +3,18 @@ ## ndi v0.1.6.9000 ### New Features -* Added `hoover()` function to compute the aspatial racial/ethnic Delta (DEL) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) -* Thank you for the feature suggestion, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) +* Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) +* Added `geo_large = 'cbsa'` option for computing Core Based Statistical Areas as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. +* Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) ### Updates * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA -* 'package.R' deprecated. Replaced with 'ndi-package.R'. +* `tigris` is now Imports +* 'package.R' deprecated. Replaced with 'ndi-package.R' * Re-formatted code and documentation throughout for consistent readability -* Updated documentation about value range of V (White) from `{0 to 1}` to `{-Inf to Inf}` +* Updated documentation about value range of *V* (White) from `{0 to 1}` to `{-Inf to Inf}` * Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states +* Updated documentation formatting of metric names in most functions ## ndi v0.1.5 @@ -22,21 +25,21 @@ * 'DescTools' is now Suggests to fix Rd cross-references NOTE * Fixed 'lost braces in \itemize' NOTE for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions * Fixed 'Moved Permanently' content by replacing the old URL with the new URL -* Fixed citation for Slotman et al. (2022) in CITATION +* Fixed citation for [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) in CITATION ## ndi v0.1.4 ### New Features -* Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (AI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward -* Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) -* Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio (V) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) -* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (LQ) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) -* Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) +* Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (*AI*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward +* Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (*II*) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) +* Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) +* Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) +* Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) ### Updates * `car` is now Imports * Fixed bug in reverse dependency check failure for `anthopolos()` and `bravo()` functions removing `returnValue()` when data are not missing -* Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [ndi Issue #5](https://github.com/idblr/ndi/issues/5) +* Thank you, [Roger Bivand](https://github.com/rsbivand), for the catch. Relates to [*ndi* Issue #5](https://github.com/idblr/ndi/issues/5) * Updated `duncan()`, `gini()`, `krieger()`, `messer()`, and `powell_wiley()` for consistency in messaging when data are not missing * Updated tests for `anthopolos()` and `bravo()` if `Sys.getenv('CENSUS_API_KEY') != ''` * Added `omit_NAs` argument in `duncan()` function to choose if NA values will be included in its computation @@ -49,7 +52,7 @@ ## ndi v0.1.3 ### New Features -* Added `duncan()` function to compute the Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) for specified counties/tracts 2009 onward +* Added `duncan()` function to compute the Dissimilarity Index (*DI*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) for specified counties/tracts 2009 onward * Thank you for the feature suggestion, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) * Added 'utils.R' file with internal `di_fun()` function for `duncan()` function @@ -66,12 +69,12 @@ ## ndi v0.1.2 ### New Features -* Added `krieger()` function to compute the Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward +* Added `krieger()` function to compute the Index of Concentration at the Extremes (*ICE*) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955) for specified counties/tracts 2009 onward * Thank you for the feature suggestion, [David Berrigan](https://orcid.org/0000-0002-5333-179X) * Added `df` argument for the `messer()` and `powell_wiley()` functions to specify a pre-formatted data set input for the NDI computation * Added `round_output` argument for the `messer()` and `powell_wiley()` functions to provide raw output as the default and rounded output as optional. * Thank you for the suggested enhancements, [Chris Prener](https://github.com/chris-prener) -* Added `DCtracts2020` a testing data set for the `ndi` package and its documentation +* Added `DCtracts2020` a testing data set for the *ndi* package and its documentation ### Updates * Fixed bug in `powell_wiley()` function where the internal PCA will now run properly if only one factor has an eigenvalue above 1 @@ -92,8 +95,8 @@ ## ndi v0.1.1 ### New Features -* Added `anthopolos()` function to compute the Racial Isolation Index (RI) based on based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward -* Added `bravo()` function to compute the Educational Isolation Index (EI) based on based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward +* Added `anthopolos()` function to compute the Racial Isolation Index (*RI*) based on based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward +* Added `bravo()` function to compute the Educational Isolation Index (*EI*) based on based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward * Added `gini()` function to retrieve the Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319) for specified counties/tracts 2009 onward * Thank you for the feature suggestions, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) diff --git a/R/anthopolos.R b/R/anthopolos.R index 5b7c95a..4824e4f 100644 --- a/R/anthopolos.R +++ b/R/anthopolos.R @@ -8,7 +8,7 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the spatial Racial Isolation Index (*RI*) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of *RI* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ @@ -34,15 +34,15 @@ #' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and *RI* values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the *RI* for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. #' -#' A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an RI value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an RI value close to 0. +#' A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an *RI* value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an *RI* value close to 0. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ri}}{An object of class 'tbl' for the GEOID, name, RI, and raw census values of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute RI.} +#' \item{\code{ri}}{An object of class 'tbl' for the GEOID, name, *RI*, and raw census values of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *RI*.} #' } #' #' @import dplyr @@ -142,8 +142,8 @@ anthopolos <- function(geo = 'tract', out_names <- names(selected_vars) # save for output prefix <- 'subgroup' suffix <- seq(1:length(subgroup)) - names(selected_vars) <- c('TotalPop', paste(prefix, suffix, sep = '')) - in_names <- paste(names(selected_vars), 'E', sep = '') + names(selected_vars) <- c('TotalPop', paste0(prefix, suffix)) + in_names <- paste0(names(selected_vars), 'E') # Acquire RI variables and sf geometries ri_data <- suppressMessages(suppressWarnings( diff --git a/R/atkinson.R b/R/atkinson.R index 6e6f4ca..7080587 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -11,9 +11,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Atkinson Index (AI) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of AI for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Atkinson Index (*AI*) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of *AI* for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -39,25 +39,26 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' AI is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). +#' *AI* is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. *AI* can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). #' #' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. -#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *AI* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *AI* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *AI* computation. +#' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and AI at specified larger census geographies.} +#' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and *AI* at specified larger census geographies.} #' \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *AI*.} #' } #' #' @import dplyr -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats na.omit #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -89,7 +90,7 @@ atkinson <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -148,7 +149,7 @@ atkinson <- function(geo_large = 'county', selected_vars <- vars[subgroup] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') # Acquire AI variables and sf geometries ai_data <- suppressMessages(suppressWarnings( @@ -166,18 +167,15 @@ atkinson <- function(geo_large = 'county', # Format output if (geo_small == 'county') { ai_data <- ai_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { ai_data <- ai_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - ai_data <- ai_data %>% - sf::st_drop_geometry() %>% + ai_data <- ai_data %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -186,30 +184,52 @@ atkinson <- function(geo_large = 'county', } # Grouping IDs for AI computation - if (geo_large == 'tract') { + if (geo_large == 'state') { + ai_data <- ai_data %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'county') { ai_data <- ai_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'county') { + if (geo_large == 'tract') { ai_data <- ai_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(ai_data, dat_cbsa) ai_data <- ai_data %>% dplyr::mutate( - oid = .$STATEFP, - state = stringr::str_trim(state) - ) + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } - + # Count of racial/ethnic subgroup populations ## Count of racial/ethnic subgroup population if (length(in_subgroup) == 1) { @@ -298,6 +318,16 @@ atkinson <- function(geo_large = 'county', dplyr::select(GEOID, state, county, tract, AI) %>% .[.$GEOID != 'NANA',] } + if (geo_large == 'cbsa') { + ai <- ai_data %>% + dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, AI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, AI) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } ai <- ai %>% dplyr::arrange(GEOID) %>% diff --git a/R/bell.R b/R/bell.R index 22b4cfe..1331b83 100644 --- a/R/bell.R +++ b/R/bell.R @@ -11,9 +11,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Isolation Index (II) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of II for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Isolation Index (*II*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of *II* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -39,23 +39,24 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. -#' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. +#' *II* is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). *II* can range in value from 0 to 1. #' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *II* value returned is NA. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *II* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *II* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *II* computation. +#' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and II at specified larger census geographies.} +#' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and *II* at specified larger census geographies.} #' \item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute II.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *II*.} #' } #' #' @import dplyr -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -88,7 +89,7 @@ bell <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -171,8 +172,8 @@ bell <- function(geo_large = 'county', selected_vars <- vars[c('TotalPop', subgroup, subgroup_ixn)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') - in_subgroup_ixn <- paste(subgroup_ixn, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') + in_subgroup_ixn <- paste0(subgroup_ixn, 'E') # Acquire II variables and sf geometries ii_data <- suppressMessages(suppressWarnings( @@ -191,18 +192,15 @@ bell <- function(geo_large = 'county', # Format output if (geo_small == 'county') { ii_data <- ii_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { ii_data <- ii_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { ii_data <- ii_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -211,28 +209,50 @@ bell <- function(geo_large = 'county', } # Grouping IDs for II computation - if (geo_large == 'tract') { + if (geo_large == 'state') { + ii_data <- ii_data %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'county') { ii_data <- ii_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'county') { + if (geo_large == 'tract') { ii_data <- ii_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(ii_data, dat_cbsa) ii_data <- ii_data %>% dplyr::mutate( - oid = .$STATEFP, - state = stringr::str_trim(state) - ) + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } # Count of racial/ethnic subgroup populations @@ -325,6 +345,16 @@ bell <- function(geo_large = 'county', dplyr::select(GEOID, state, county, tract, II) %>% .[.$GEOID != 'NANA',] } + if (geo_large == 'cbsa') { + ii <- ii_data %>% + dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, II) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } ii <- ii %>% dplyr::arrange(GEOID) %>% diff --git a/R/bemanian_beyer.R b/R/bemanian_beyer.R index fc3b080..bc94ee0 100644 --- a/R/bemanian_beyer.R +++ b/R/bemanian_beyer.R @@ -11,9 +11,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Local Exposure and Isolation (LEx/Is) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of LEx/Is for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Local Exposure and Isolation (*LEx/Is*) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of *LEx/Is* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -39,26 +39,27 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' LEx/Is is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. LEx/Is is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) +#' *LEx/Is* is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. *LEx/Is* is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) #' -#' LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. -#' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. +#' *LEx/Is* can range from negative infinity to infinity. If *LEx/Is* is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If *LEx/Is* is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if *LEx/Is* is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each *LEx/Is* metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. #' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *LEx/Is* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *LEx/Is* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *LEx/Is* computation. +#' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} +#' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and *LEx/Is* at specified smaller census geographies.} #' \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *LEx/Is*.} #' } #' #' @import dplyr #' @importFrom car logit -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -91,7 +92,7 @@ bemanian_beyer <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -174,8 +175,8 @@ bemanian_beyer <- function(geo_large = 'county', selected_vars <- vars[c('TotalPop', subgroup, subgroup_ixn)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') - in_subgroup_ixn <- paste(subgroup_ixn, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') + in_subgroup_ixn <- paste0(subgroup_ixn, 'E') # Acquire LEx/Is variables and sf geometries lexis_data <- suppressMessages(suppressWarnings( @@ -193,18 +194,15 @@ bemanian_beyer <- function(geo_large = 'county', # Format output if (geo_small == 'county') { lexis_data <- lexis_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { lexis_data <- lexis_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { lexis_data <- lexis_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -213,28 +211,50 @@ bemanian_beyer <- function(geo_large = 'county', } # Grouping IDs for LEx/Is computation - if (geo_large == 'tract') { + if (geo_large == 'state') { + lexis_data <- lexis_data %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'county') { lexis_data <- lexis_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste(STATEFP, COUNTYFP, sep = ''), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'county') { + if (geo_large == 'tract') { lexis_data <- lexis_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste(STATEFP, COUNTYFP, TRACTCE, sep = ''), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(lexis_data, dat_cbsa) lexis_data <- lexis_data %>% dplyr::mutate( - oid = .$STATEFP, - state = stringr::str_trim(state) - ) + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } # Count of racial/ethnic subgroup populations @@ -315,6 +335,12 @@ bemanian_beyer <- function(geo_large = 'county', lexis <- lexis %>% dplyr::select(GEOID, state, county, tract, block.group, LExIs) } + if (geo_large == 'cbsa') { + lexis <- lexis_data %>% + dplyr::select(GEOID, cbsa) %>% + dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% + dplyr::relocate(cbsa, .after = county) + } lexis <- lexis %>% unique(.) %>% diff --git a/R/bravo.R b/R/bravo.R index 46abceb..f74febf 100644 --- a/R/bravo.R +++ b/R/bravo.R @@ -8,7 +8,7 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. +#' @details This function will compute the spatial Educational Isolation Index (*EI*) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of *EI* for any of the U.S. Census Bureau educational attainment levels. #' #' The function uses the \code{\link[tidycensus]{get_acs}} to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: #' \itemize{ @@ -20,15 +20,15 @@ #' } #' Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the **B15002** question. #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and EI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the EI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and *EI* values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the *EI* for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. #' -#' A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an EI value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an EI value close to 0. +#' A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an *EI* value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an *EI* value close to 0. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ei}}{An object of class 'tbl' for the GEOID, name, EI, and raw census values of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute EI.} +#' \item{\code{ei}}{An object of class 'tbl' for the GEOID, name, *EI*, and raw census values of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *EI*.} #' } #' #' @import dplyr @@ -208,8 +208,8 @@ bravo <- function(geo = 'tract', out_names <- names(selected_vars) # save for output prefix <- 'subgroup' suffix <- seq(1:length(selected_vars[-1])) - names(selected_vars) <- c('TotalPop', paste(prefix, suffix, sep = '')) - in_names <- paste(names(selected_vars), 'E', sep = '') + names(selected_vars) <- c('TotalPop', paste0(prefix, suffix)) + in_names <- paste0(names(selected_vars), 'E') # Acquire EI variables and sf geometries ei_data <- suppressMessages(suppressWarnings( diff --git a/R/duncan.R b/R/duncan.R index 8305b92..6ce71e0 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -11,9 +11,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Dissimilarity Index (DI) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of DI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Dissimilarity Index (*DI*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of *DI* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -39,23 +39,24 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. DI can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. -#' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +#' *DI* is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. *DI* can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. #' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *DI* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *DI* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *DI* computation. +#' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and DI at specified larger census geographies.} +#' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and *DI* at specified larger census geographies.} #' \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *DI*.} #' } #' #' @import dplyr -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -88,7 +89,7 @@ duncan <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -170,8 +171,8 @@ duncan <- function(geo_large = 'county', selected_vars <- vars[c(subgroup, subgroup_ref)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') - in_subgroup_ref <- paste(subgroup_ref, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') + in_subgroup_ref <- paste0(subgroup_ref, 'E') # Acquire DI variables and sf geometries di_data <- suppressMessages(suppressWarnings( @@ -189,18 +190,15 @@ duncan <- function(geo_large = 'county', # Format output if (geo_small == 'county') { di_data <- di_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { di_data <- di_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { di_data <- di_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -209,28 +207,50 @@ duncan <- function(geo_large = 'county', } # Grouping IDs for DI computation + if (geo_large == 'state') { + di_data <- di_data %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } if (geo_large == 'tract') { di_data <- di_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } if (geo_large == 'county') { di_data <- di_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(di_data, dat_cbsa) di_data <- di_data %>% dplyr::mutate( - oid = .$STATEFP, - state = stringr::str_trim(state) - ) + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } # Count of racial/ethnic subgroup populations @@ -323,6 +343,16 @@ duncan <- function(geo_large = 'county', dplyr::select(GEOID, state, county, tract, DI) %>% .[.$GEOID != 'NANA',] } + if (geo_large == 'cbsa') { + di <- di_data %>% + dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, DI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, DI) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } di <- di %>% dplyr::arrange(GEOID) %>% diff --git a/R/globals.R b/R/globals.R index 43ec440..f381fe1 100644 --- a/R/globals.R +++ b/R/globals.R @@ -115,6 +115,10 @@ globalVariables( 'state', 'total', 'tract', + 'STATEFP', + 'COUNTYFP', + 'TRACTCE', + 'cbsa', 'val', 'variable', 'giniE', diff --git a/R/hoover.R b/R/hoover.R index e8afe1e..5538f78 100644 --- a/R/hoover.R +++ b/R/hoover.R @@ -10,9 +10,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Delta (DEL) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of DEL for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Delta (*DEL*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of *DEL* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -38,23 +38,24 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' DEL is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. DEL can range in value from 0 to 1. +#' *DEL* is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. *DEL* can range in value from 0 to 1. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DEL value returned is NA. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *DEL* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *DEL* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *DEL* computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{del}}{An object of class 'tbl' for the GEOID, name, and DEL at specified larger census geographies.} +#' \item{\code{del}}{An object of class 'tbl' for the GEOID, name, and *DEL* at specified larger census geographies.} #' \item{\code{del_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DEL.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *DEL*.} #' } #' #' @import dplyr -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -85,7 +86,7 @@ hoover <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -142,7 +143,7 @@ hoover <- function(geo_large = 'county', selected_vars <- vars[subgroup] out_names <- c(names(selected_vars), 'ALAND') # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') # Acquire DEL variables and sf geometries del_data <- suppressMessages(suppressWarnings( @@ -160,18 +161,15 @@ hoover <- function(geo_large = 'county', # Format output if (geo_small == 'county') { del_data <- del_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { del_data <- del_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { del_data <- del_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), block.group = gsub('[^0-9\\.]', '', block.group) @@ -179,28 +177,50 @@ hoover <- function(geo_large = 'county', } # Grouping IDs for DEL computation - if (geo_large == 'tract') { + if (geo_large == 'state') { + del_data <- del_data %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'county') { del_data <- del_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'county') { + if (geo_large == 'tract') { del_data <- del_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(del_data, dat_cbsa) del_data <- del_data %>% dplyr::mutate( - oid = .$STATEFP, - state = stringr::str_trim(state) - ) + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } # Count of racial/ethnic subgroup populations @@ -277,6 +297,16 @@ hoover <- function(geo_large = 'county', dplyr::select(GEOID, state, county, tract, DEL) %>% .[.$GEOID != 'NANA', ] } + if (geo_large == 'cbsa') { + del <- del_data %>% + dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, DEL) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, DEL) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } del <- del %>% dplyr::arrange(GEOID) %>% diff --git a/R/krieger.R b/R/krieger.R index 73f0987..d9575c6 100644 --- a/R/krieger.R +++ b/R/krieger.R @@ -7,7 +7,7 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: +#' @details This function will compute three aspatial Index of Concentration at the Extremes (*ICE*) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five *ICE* metrics: #' #' \itemize{ #' \item **Income**: 80th income percentile vs. 20th income percentile @@ -17,7 +17,7 @@ #' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile #' } #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five ICE metrics are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five *ICE* metrics are: #' \itemize{ #' \item **B03002**: HISPANIC OR LATINO ORIGIN BY RACE #' \item **B15002**: SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER @@ -28,13 +28,13 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' ICE metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. +#' *ICE* metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ice}}{An object of class 'tbl' for the GEOID, name, ICE metrics, and raw census values of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the ICEs.} +#' \item{\code{ice}}{An object of class 'tbl' for the GEOID, name, *ICE* metrics, and raw census values of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the *ICE* metrics.} #' } #' #' @import dplyr diff --git a/R/messer.R b/R/messer.R index 614ffdd..05ed4fa 100644 --- a/R/messer.R +++ b/R/messer.R @@ -6,11 +6,11 @@ #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available. #' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}}. If FALSE (the default), will not impute. #' @param quiet Logical. If TRUE, will display messages about potential missing census information and the proportion of variance explained by principal component analysis. The default is FALSE. -#' @param round_output Logical. If TRUE, will round the output of raw census and NDI values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. +#' @param round_output Logical. If TRUE, will round the output of raw census and *NDI* values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (*NDI*) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: #' \itemize{ @@ -25,9 +25,9 @@ #' \item **EMP (B23001)**: percent unemployed (2010 only) #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the *NDI* (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. #' -#' The continuous NDI (Messer) values are z-transformed, i.e., 'standardized,' and the categorical NDI (Messer) values are quartiles of the standardized continuous NDI (Messer) values. +#' The continuous *NDI* (Messer) values are z-transformed, i.e., 'standardized,' and the categorical *NDI* (Messer) values are quartiles of the standardized continuous *NDI* (Messer) values. #' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). #' @@ -36,9 +36,9 @@ #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, NDI (standardized), NDI (quartile), and raw census values of specified census geographies.} -#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the NDI values.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute NDI.} +#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, *NDI* (standardized), *NDI* (quartile), and raw census values of specified census geographies.} +#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the *NDI* values.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *NDI*.} #' } #' #' @import dplyr diff --git a/R/ndi-package.R b/R/ndi-package.R index efc4dc6..65c67f6 100644 --- a/R/ndi-package.R +++ b/R/ndi-package.R @@ -43,7 +43,7 @@ #' #' @section Dependencies: The 'ndi' package relies heavily upon \code{\link{tidycensus}} to retrieve data from the U.S. Census Bureau American Community Survey five-year estimates and the \code{\link{psych}} for computing the neighborhood deprivation indices. The \code{\link{messer}} function builds upon code developed by Hruska et al. (2022) \doi{10.17605/OSF.IO/M2SAV} by fictionalizing, adding the percent of households earning <$30,000 per year to the NDI computation, and providing the option for computing the ACS-5 2006-2010 NDI values. There is no code companion to compute NDI included in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} or Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}, but the package author worked directly with the Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} authors to replicate their SAS code in R. The spatial metrics RI and EI rely on the \code{\link{sf}} and \code{\link{Matrix}} packages to compute the geospatial adjacency matrix between census geographies. Internal function to calculate AI is based on \code{\link[DescTools]{Atkinson}} function. There is no code companion to compute RI, EI, DI, II, V, LQ, or LEx/Is included in Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, Bravo et al. (2021) \doi{10.3390/ijerph18179384}, Duncan & Duncan (1955) \doi{10.2307/2088328}, Bell (1954) \doi{10.2307/2574118}, White (1986) \doi{10.2307/3644339}, Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, or Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, respectively. #' -#' @author Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a DLH Corporation Holding Company, Bethesda, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr +#' @author Ian D. Buller\cr \emph{DLH Corporation (formerly Social & Scientific Systems, Inc.), Bethesda, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr #' #' Maintainer: I.D.B. \email{ian.buller@@alumni.emory.edu} #' @@ -55,10 +55,11 @@ #' @importFrom MASS ginv #' @importFrom Matrix sparseMatrix #' @importFrom psych alpha principal -#' @importFrom sf st_drop_geometry st_geometry st_intersects +#' @importFrom sf st_drop_geometry st_geometry st_intersects st_within #' @importFrom stats complete.cases cor cov2cor loadings median na.omit promax quantile sd setNames #' @importFrom stringr str_trim #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack NULL diff --git a/R/powell_wiley.R b/R/powell_wiley.R index 07acd46..6896c00 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -6,11 +6,11 @@ #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available. #' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}} using median values of variables. If FALSE (the default), will not impute. #' @param quiet Logical. If TRUE, will display messages about potential missing census information, standardized Cronbach's alpha, and proportion of variance explained by principal component analysis. The default is FALSE. -#' @param round_output Logical. If TRUE, will round the output of raw census and NDI values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. +#' @param round_output Logical. If TRUE, will round the output of raw census and *NDI* values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (*NDI*) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: #' \itemize{ @@ -29,9 +29,9 @@ #' \item **PctUnempl (S2301)**: percent unemployed #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the *NDI* (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the *NDI* (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. #' -#' The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. +#' The categorical *NDI* (Powell-Wiley) values are population-weighted quintiles of the continuous *NDI* (Powell-Wiley) values. #' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). #' @@ -40,9 +40,9 @@ #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, NDI continuous, NDI quintiles, and raw census values of specified census geographies.} -#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the NDI values.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute NDI.} +#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, *NDI* continuous, *NDI* quintiles, and raw census values of specified census geographies.} +#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the *NDI* values.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *NDI*.} #' \item{\code{cronbach}}{An object of class 'character' or 'numeric' for the results of the Cronbach's alpha calculation. If only one factor is computed, a message is returned. If more than one factor is computed, Cronbach's alpha is calculated and should check that it is >0.7 for respectable internal consistency between factors.} #' } #' diff --git a/R/sudano.R b/R/sudano.R index 5155ccc..63ccaa6 100644 --- a/R/sudano.R +++ b/R/sudano.R @@ -1,4 +1,4 @@ -#' Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) +#' Location Quotient based on Merton (1938) and Sudano et al. (2013) #' #' Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. #' @@ -10,9 +10,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Location Quotient (*LQ*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of *LQ* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -38,23 +38,24 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' LQ is some measure of relative racial homogeneity of each smaller geography within a larger geography. LQ can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an LQ of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. -#' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. +#' *LQ* is some measure of relative racial homogeneity of each smaller geography within a larger geography. *LQ* can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an *LQ* of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. #' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *LQ* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *LQ* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *LQ* computation. +#' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and LQ at specified smaller census geographies.} +#' \item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and *LQ* at specified smaller census geographies.} #' \item{\code{lq_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LQ.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *LQ*.} #' } #' #' @import dplyr -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -85,7 +86,7 @@ sudano <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -142,7 +143,7 @@ sudano <- function(geo_large = 'county', selected_vars <- vars[c('TotalPop', subgroup)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') # Acquire LQ variables and sf geometries lq_data <- suppressMessages(suppressWarnings( @@ -161,18 +162,15 @@ sudano <- function(geo_large = 'county', # Format output if (geo_small == 'county') { lq_data <- lq_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { lq_data <- lq_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { lq_data <- lq_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -181,28 +179,50 @@ sudano <- function(geo_large = 'county', } # Grouping IDs for R computation + if (geo_large == 'state') { + lq_data <- lq_data %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } if (geo_large == 'tract') { lq_data <- lq_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } if (geo_large == 'county') { lq_data <- lq_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(lq_data, dat_cbsa) lq_data <- lq_data %>% dplyr::mutate( - oid = .$STATEFP, - state = stringr::str_trim(state) - ) + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } # Count of racial/ethnic subgroup populations @@ -270,6 +290,12 @@ sudano <- function(geo_large = 'county', lq <- lq %>% dplyr::select(GEOID, state, county, tract, block.group, LQ) } + if (geo_large == 'cbsa') { + lq <- lq_data %>% + dplyr::select(GEOID, cbsa) %>% + dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% + dplyr::relocate(cbsa, .after = county) + } lq <- lq %>% unique(.) %>% diff --git a/R/utils.R b/R/utils.R index 5a37b7d..d2bc362 100644 --- a/R/utils.R +++ b/R/utils.R @@ -77,7 +77,7 @@ lq_fun <- function(x, omit_NAs) { NA } else { p_im <- xx$subgroup / xx$TotalPopE - if (anyNA(p_im)) { p_im[is.na(p_im), ] <- 0 } + if (anyNA(p_im)) { p_im[is.na(p_im)] <- 0 } LQ <- p_im / (sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE)) df <- data.frame(LQ = LQ, GEOID = xx$GEOID) return(df) @@ -93,9 +93,9 @@ lexis_fun <- function(x, omit_NAs) { NA } else { p_im <- xx$subgroup / xx$TotalPopE - if (anyNA(p_im)) { p_im[is.na(p_im), ] <- 0 } + if (anyNA(p_im)) { p_im[is.na(p_im)] <- 0 } p_in <- xx$subgroup_ixn / xx$TotalPopE - if (anyNA(p_in)) { p_in[is.na(p_in), ] <- 0 } + if (anyNA(p_in)) { p_in[is.na(p_in) ] <- 0 } P_m <- sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) P_n <- sum(xx$subgroup_ixn, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) LExIs <- car::logit(p_im * p_in) - car::logit(P_m * P_n) diff --git a/R/white.R b/R/white.R index 04f4208..94b0e3b 100644 --- a/R/white.R +++ b/R/white.R @@ -10,9 +10,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Correlation Ratio (V or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of V for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Correlation Ratio (*V* or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of *V* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ #' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} #' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -38,23 +38,24 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from -Inf to Inf. +#' *V* removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). *V* can range in value from -Inf to Inf. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *V* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *V* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *V* computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{v}}{An object of class 'tbl' for the GEOID, name, and V at specified larger census geographies.} +#' \item{\code{v}}{An object of class 'tbl' for the GEOID, name, and *V* at specified larger census geographies.} #' \item{\code{v_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute V.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *V*.} #' } #' #' @import dplyr -#' @importFrom sf st_drop_geometry +#' @importFrom sf st_drop_geometry st_within #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate +#' @importFrom tigris core_based_statistical_areas #' @importFrom utils stack #' @export #' @@ -85,7 +86,7 @@ white <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -142,7 +143,7 @@ white <- function(geo_large = 'county', selected_vars <- vars[c('TotalPop', subgroup)] out_names <- names(selected_vars) # save for output - in_subgroup <- paste(subgroup, 'E', sep = '') + in_subgroup <- paste0(subgroup, 'E') # Acquire V variables and sf geometries v_data <- suppressMessages(suppressWarnings( @@ -161,18 +162,15 @@ white <- function(geo_large = 'county', # Format output if (geo_small == 'county') { v_data <- v_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { v_data <- v_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { v_data <- v_data %>% - sf::st_drop_geometry() %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), block.group = gsub('[^0-9\\.]', '', block.group) @@ -180,25 +178,47 @@ white <- function(geo_large = 'county', } # Grouping IDs for R computation + if (geo_large == 'state') { + v_data <- v_data %>% + dplyr::mutate(oid = STATEFP, state = stringr::str_trim(state)) %>% + sf::st_drop_geometry() + } if (geo_large == 'tract') { v_data <- v_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, .$TRACTCE, sep = ''), + oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } if (geo_large == 'county') { v_data <- v_data %>% dplyr::mutate( - oid = paste(.$STATEFP, .$COUNTYFP, sep = ''), + oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), county = stringr::str_trim(county) - ) + ) %>% + sf::st_drop_geometry() } - if (geo_large == 'state') { + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + win_cbsa <- sf::st_within(v_data, dat_cbsa) v_data <- v_data %>% - dplyr::mutate(oid = .$STATEFP, state = stringr::str_trim(state)) + dplyr::mutate( + oid = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(win_cbsa, function(x) { + tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() } # Count of racial/ethnic subgroup populations @@ -277,6 +297,16 @@ white <- function(geo_large = 'county', dplyr::select(GEOID, state, county, tract, V) %>% .[.$GEOID != 'NANA',] } + if (geo_large == 'cbsa') { + v <- v_data %>% + dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, V) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, V) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } v <- v %>% dplyr::arrange(GEOID) %>% diff --git a/README.md b/README.md index 694eddd..b52fa88 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,22 @@ -ndi: Neighborhood Deprivation Indices -=================================================== +# ndi: Neighborhood Deprivation Indices + [![R-CMD-check](https://github.com/idblr/ndi/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/idblr/ndi/actions/workflows/R-CMD-check.yaml) -[![CRAN status](http://r-pkg.org/badges/version/ndi)](https://cran.r-project.org/package=ndi) +[![CRAN status](https://r-pkg.org/badges/version/ndi)](https://cran.r-project.org/package=ndi) [![CRAN version](https://r-pkg.org/badges/version-ago/ndi)](https://cran.r-project.org/package=ndi) [![CRAN RStudio mirror downloads total](https://cranlogs.r-pkg.org/badges/grand-total/ndi?color=blue)](https://r-pkg.org/pkg/ndi) -[![CRAN RStudio mirror downloads monthly ](http://cranlogs.r-pkg.org/badges/ndi)](https://r-pkg.org:443/pkg/ndi) +[![CRAN RStudio mirror downloads monthly ](https://cranlogs.r-pkg.org/badges/ndi)](https://r-pkg.org:443/pkg/ndi) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/license/apache-2-0) ![GitHub last commit](https://img.shields.io/github/last-commit/idblr/ndi) [![DOI](https://zenodo.org/badge/521439746.svg)](https://zenodo.org/badge/latestdoi/521439746) -**Date repository last updated**: July 06, 2024 +**Date repository last updated**: 2024-08-18 ### Overview -The `ndi` package is a suite of `R` functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), and (10) aspatial racial/ethnic Delta based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the `ndi` package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). +The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), and (10) aspatial racial/ethnic Delta based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -43,54 +43,54 @@ To install the development version from GitHub: -anthopolos +anthopolos Compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) -atkinson +atkinson Compute the aspatial Atkinson Index (AI) based on Atkinson (1970) -bell +bell Compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) -bemanian_beyer +bemanian_beyer Compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) -bravo +bravo Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) -duncan +duncan Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) -gini +gini Retrieve the aspatial Gini Index based on Gini (1921) -hoover +hoover Compute the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089). -krieger +krieger Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) -messer +messer Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) -powell_wiley +powell_wiley Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010) -sudano +sudano Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) -white +white Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) @@ -117,15 +117,15 @@ The repository also includes the code to create the project hexagon sticker. -DCtracts2020 -A sample data set containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the tidycensus package and formatted for the messer() and powell_wiley() functions input. +DCtracts2020 +A sample data set containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the tidycensus package and formatted for the messer() and powell_wiley() functions input. ### Author -* **Ian D. Buller** - *Social & Scientific Systems, Inc., a DLH Corporation Holding Company, Bethesda, Maryland (current)* - *Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland (original)* - [GitHub](https://github.com/idblr) - [ORCID](https://orcid.org/0000-0001-9477-8582) +* **Ian D. Buller** - *DLH, LLC (formerly Social & Scientific Systems, Inc.), Bethesda, Maryland (current)* - *Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland (original)* - [GitHub](https://github.com/idblr) - [ORCID](https://orcid.org/0000-0001-9477-8582) See also the list of [contributors](https://github.com/idblr/ndi/graphs/contributors) who participated in this package, including: @@ -148,7 +148,7 @@ Thank you to those who suggested additional metrics, including: ### Getting Started * Step 1: Obtain a unique access key from the U.S. Census Bureau. Follow [this link](http://api.census.gov/data/key_signup.html) to obtain one. -* Step 2: Specify your access key in the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `hoover()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions using the internal `key` argument or by using the `census_api_key()` function from the `tidycensus` package before running the `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `hoover()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, or `white()` functions (see an example below). +* Step 2: Specify your access key in the [`anthopolos()`](R/anthopolos.R), [`atkinson()`](R/atkinson.R), [`bell()`](R/bell.R), [`bemanian_beyer()`](R/bemanian_beyer.R), [`bravo()`](R/bravo.R), [`duncan()`](R/duncan.R), [`gini()`](R/gini.R), [`hoover()`](R/hoover.R), [`krieger()`](R/krieger.R), [`messer()`](R/messer.R), [`powell_wiley()`](R/powell_wiley.R), [`sudano()`](R/sudano.R), or [`white()`](R/white.R) functions using the internal `key` argument or by using the `census_api_key()` function from the [*tidycensus*](https://cran.r-project.org/package=tidycensus) package before running the [`anthopolos()`](R/anthopolos.R), [`atkinson()`](R/atkinson.R), [`bell()`](R/bell.R), [`bemanian_beyer()`](R/bemanian_beyer.R), [`bravo()`](R/bravo.R), [`duncan()`](R/duncan.R), [`gini()`](R/gini.R), [`hoover()`](R/hoover.R), [`krieger()`](R/krieger.R), [`messer()`](R/messer.R), [`powell_wiley()`](R/powell_wiley.R), [`sudano()`](R/sudano.R), or [`white()`](R/white.R) functions (see an example below). ### Usage @@ -1013,11 +1013,11 @@ ggplot() + ### Funding -This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of Social & Scientific Systems, Inc., a [DLH Corporation](https://www.dlhcorp.com) Holding Company. +This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of [DLH, LLC](https://www.dlhcorp.com) (formerly Social & Scientific Systems, Inc.). ### Acknowledgments -The `messer()` function functionalizes the code found in [Hruska et al. (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x). The `messer()` function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their `SAS` code in `R` for the `powell_wiley()` function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., `SPSS` and `SAS`, respectively) that intrinsically calculate the principal component analysis differently from `R`. The internal function to calculate the Atkinson Index is based on the `Atkinson()` function in the [DescTools](https://cran.r-project.org/package=DescTools) package. +The [`messer()`](R/messer.R) function functionalizes the code found in [Hruska et al. (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x). The [`messer()`](R/messer.R) function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their [*SAS*](https://www.sas.com) code in [**R**](https://cran.r-project.org/) for the [`powell_wiley()`](R/powell_wiley.R) function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., [*SPSS*](https://www.ibm.com/spss) and [*SAS*](https://www.sas.com), respectively) that intrinsically calculate the principal component analysis differently from [**R**](https://cran.r-project.org/). The internal function to calculate the Atkinson Index is based on the [`atkinson()`](R/atkinson.R) function in the [*DescTools*](https://cran.r-project.org/package=DescTools) package. When citing this package for publication, please follow: diff --git a/cran-comments.md b/cran-comments.md index a80e2cc..23392bf 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,12 +1,16 @@ ## This is the seventh resubmission * Actions taken since previous submission: - * Added `hoover()` function to compute the aspatial racial/ethnic Delta (DEL) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) + * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) + * Added `geo_large = 'cbsa'` option for computing Core Based Statistical Areas as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. + * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA - * 'package.R' deprecated. Replaced with 'ndi-package.R'. + * `tigris` is now Imports + * 'package.R' deprecated. Replaced with 'ndi-package.R' * Re-formatted code and documentation throughout for consistent readability - * Updated documentation about value range of V (White) from `{0 to 1}` to `{-Inf to Inf}` + * Updated documentation about value range of *V* (White) from `{0 to 1}` to `{-Inf to Inf}` * Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states + * Updated documentation formatting of metric names in most functions * Documentation for DESCRIPTION, README, NEWS, and vignette references the following DOIs, which throws a NOTE but are a valid URL: * @@ -20,7 +24,7 @@ * Some tests and examples for `anthopolos()`, `atkinson()`, `bell()`, `bemanian_beyer()`, `bravo()`, `duncan()`, `gini()`, `hoover()`, `krieger()`, `messer()`, `powell_wiley()`, `sudano()`, and `white()` functions require a Census API key so they are skipped if NULL or not run ## Test environments -* local Windows install, R 4.4.0 +* local Windows install, R 4.4.1 * win-builder, (devel, release, oldrelease) * Rhub * Fedora Linux, R-devel, clang, gfortran diff --git a/man/anthopolos.Rd b/man/anthopolos.Rd index 98d55e7..d99df3b 100644 --- a/man/anthopolos.Rd +++ b/man/anthopolos.Rd @@ -21,15 +21,15 @@ anthopolos(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ri}}{An object of class 'tbl' for the GEOID, name, RI, and raw census values of specified census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute RI.} +\item{\code{ri}}{An object of class 'tbl' for the GEOID, name, \emph{RI}, and raw census values of specified census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{RI}.} } } \description{ Compute the spatial Racial Isolation Index (Anthopolos) of selected subgroup(s). } \details{ -This function will compute the spatial Racial Isolation Index (RI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of RI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the spatial Racial Isolation Index (\emph{RI}) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of \emph{RI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ @@ -55,9 +55,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} } -Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and RI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the RI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and \emph{RI} values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the \emph{RI} for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. -A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an RI value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an RI value close to 0. +A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an \emph{RI} value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an \emph{RI} value close to 0. } \examples{ \dontrun{ diff --git a/man/atkinson.Rd b/man/atkinson.Rd index 9d1f376..da948e9 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -36,18 +36,18 @@ atkinson( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and AI at specified larger census geographies.} +\item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and \emph{AI} at specified larger census geographies.} \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute AI.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{AI}.} } } \description{ Compute the aspatial Atkinson Index of income or selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Atkinson Index (AI) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of AI for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Atkinson Index (\emph{AI}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{AI} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -73,11 +73,11 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -AI is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. The AI metric can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). +\emph{AI} is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{AI} can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the AI value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{AI} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{AI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{AI} computation. } \examples{ \dontrun{ diff --git a/man/bell.Rd b/man/bell.Rd index 58ee254..27b285b 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -36,18 +36,18 @@ bell( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and II at specified larger census geographies.} +\item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and \emph{II} at specified larger census geographies.} \item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute II.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{II}.} } } \description{ Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Isolation Index (II) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of II for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Isolation Index (\emph{II}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of \emph{II} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -73,9 +73,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). II can range in value from 0 to 1. +\emph{II} is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{II} can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the II value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{II} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{II} computation. } \examples{ \dontrun{ diff --git a/man/bemanian_beyer.Rd b/man/bemanian_beyer.Rd index cf2a1c0..1dd2ae1 100644 --- a/man/bemanian_beyer.Rd +++ b/man/bemanian_beyer.Rd @@ -36,18 +36,18 @@ bemanian_beyer( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and LEx/Is at specified smaller census geographies.} +\item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and \emph{LEx/Is} at specified smaller census geographies.} \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LEx/Is.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{LEx/Is}.} } } \description{ Compute the aspatial Local Exposure and Isolation (Bemanian & Beyer) metric of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Local Exposure and Isolation (LEx/Is) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of LEx/Is for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Local Exposure and Isolation (\emph{LEx/Is}) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of \emph{LEx/Is} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -73,11 +73,11 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -LEx/Is is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. LEx/Is is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) +\emph{LEx/Is} is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. \emph{LEx/Is} is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) -LEx/Is can range from negative infinity to infinity. If LEx/Is is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If LEx/Is is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if LEx/Is is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. +\emph{LEx/Is} can range from negative infinity to infinity. If \emph{LEx/Is} is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If \emph{LEx/Is} is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if \emph{LEx/Is} is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each \emph{LEx/Is} metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LEx/Is value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LEx/Is} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{LEx/Is} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LEx/Is} computation. } \examples{ \dontrun{ diff --git a/man/bravo.Rd b/man/bravo.Rd index 396390a..be407d8 100644 --- a/man/bravo.Rd +++ b/man/bravo.Rd @@ -21,15 +21,15 @@ bravo(geo = "tract", year = 2020, subgroup, quiet = FALSE, ...) An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ei}}{An object of class 'tbl' for the GEOID, name, EI, and raw census values of specified census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute EI.} +\item{\code{ei}}{An object of class 'tbl' for the GEOID, name, \emph{EI}, and raw census values of specified census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{EI}.} } } \description{ Compute the spatial Educational Isolation Index (Bravo) of selected educational attainment category(ies). } \details{ -This function will compute the spatial Educational Isolation Index (EI) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of EI for any of the U.S. Census Bureau educational attainment levels. +This function will compute the spatial Educational Isolation Index (\emph{EI}) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of \emph{EI} for any of the U.S. Census Bureau educational attainment levels. The function uses the \code{\link[tidycensus]{get_acs}} to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: \itemize{ @@ -41,9 +41,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} to obtain U.S. Census Bu } Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the \strong{B15002} question. -Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and EI values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the EI for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and \emph{EI} values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the \emph{EI} for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. -A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an EI value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an EI value close to 0. +A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an \emph{EI} value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an \emph{EI} value close to 0. } \examples{ \dontrun{ diff --git a/man/duncan.Rd b/man/duncan.Rd index 0c19fc5..eb8677e 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -36,18 +36,18 @@ duncan( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{di}}{An object of class 'tbl' for the GEOID, name, and DI at specified larger census geographies.} +\item{\code{di}}{An object of class 'tbl' for the GEOID, name, and \emph{DI} at specified larger census geographies.} \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DI.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{DI}.} } } \description{ Compute the aspatial Dissimilarity Index (Duncan & Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies } \details{ -This function will compute the aspatial Dissimilarity Index (DI) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of DI for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Dissimilarity Index (\emph{DI}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{DI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -73,9 +73,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. DI can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. +\emph{DI} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{DI} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DI value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DI} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{DI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DI} computation. } \examples{ \dontrun{ diff --git a/man/hoover.Rd b/man/hoover.Rd index ec9edca..9e4dde5 100644 --- a/man/hoover.Rd +++ b/man/hoover.Rd @@ -33,18 +33,18 @@ hoover( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{del}}{An object of class 'tbl' for the GEOID, name, and DEL at specified larger census geographies.} +\item{\code{del}}{An object of class 'tbl' for the GEOID, name, and \emph{DEL} at specified larger census geographies.} \item{\code{del_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute DEL.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{DEL}.} } } \description{ Compute the aspatial Delta (Hoover) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Delta (DEL) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of DEL for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Delta (\emph{DEL}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of \emph{DEL} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -70,9 +70,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -DEL is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. DEL can range in value from 0 to 1. +\emph{DEL} is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. \emph{DEL} can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the DEL value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DEL} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{DEL} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DEL} computation. } \examples{ \dontrun{ diff --git a/man/krieger.Rd b/man/krieger.Rd index de13069..064b490 100644 --- a/man/krieger.Rd +++ b/man/krieger.Rd @@ -19,15 +19,15 @@ krieger(geo = "tract", year = 2020, quiet = FALSE, ...) An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ice}}{An object of class 'tbl' for the GEOID, name, ICE metrics, and raw census values of specified census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the ICEs.} +\item{\code{ice}}{An object of class 'tbl' for the GEOID, name, \emph{ICE} metrics, and raw census values of specified census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the \emph{ICE}s.} } } \description{ Compute the aspatial Index of Concentration at the Extremes (Krieger). } \details{ -This function will compute three aspatial Index of Concentration at the Extremes (ICE) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five ICE metrics: +This function will compute three aspatial Index of Concentration at the Extremes (\emph{ICE}) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five \emph{ICE} metrics: \itemize{ \item \strong{Income}: 80th income percentile vs. 20th income percentile @@ -37,7 +37,7 @@ This function will compute three aspatial Index of Concentration at the Extremes \item \strong{Income and race/ethnicity combined}: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile } -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five ICE metrics are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five \emph{ICE} metrics are: \itemize{ \item \strong{B03002}: HISPANIC OR LATINO ORIGIN BY RACE \item \strong{B15002}: SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER @@ -48,7 +48,7 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -ICE metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. +\emph{ICE} metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. } \examples{ \dontrun{ diff --git a/man/messer.Rd b/man/messer.Rd index 5294391..caac817 100644 --- a/man/messer.Rd +++ b/man/messer.Rd @@ -23,7 +23,7 @@ messer( \item{quiet}{Logical. If TRUE, will display messages about potential missing census information and the proportion of variance explained by principal component analysis. The default is FALSE.} -\item{round_output}{Logical. If TRUE, will round the output of raw census and NDI values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE.} +\item{round_output}{Logical. If TRUE, will round the output of raw census and \emph{NDI} values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE.} \item{df}{Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below.} @@ -33,16 +33,16 @@ messer( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, NDI (standardized), NDI (quartile), and raw census values of specified census geographies.} -\item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the NDI values.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute NDI.} +\item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, \emph{NDI} (standardized), \emph{NDI} (quartile), and raw census values of specified census geographies.} +\item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the \emph{NDI} values.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{NDI}.} } } \description{ Compute the aspatial Neighborhood Deprivation Index (Messer). } \details{ -This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +This function will compute the aspatial Neighborhood Deprivation Index (\emph{NDI}) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: \itemize{ @@ -57,9 +57,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. \item \strong{EMP (B23001)}: percent unemployed (2010 only) } -Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the \emph{NDI} (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. -The continuous NDI (Messer) values are z-transformed, i.e., 'standardized,' and the categorical NDI (Messer) values are quartiles of the standardized continuous NDI (Messer) values. +The continuous \emph{NDI} (Messer) values are z-transformed, i.e., 'standardized,' and the categorical \emph{NDI} (Messer) values are quartiles of the standardized continuous \emph{NDI} (Messer) values. Check if the proportion of variance explained by the first principal component is high (more than 0.5). diff --git a/man/ndi-package.Rd b/man/ndi-package.Rd index 85de2d5..7efa8dc 100644 --- a/man/ndi-package.Rd +++ b/man/ndi-package.Rd @@ -58,7 +58,7 @@ Useful links: } \author{ -Ian D. Buller\cr \emph{Social & Scientific Systems, Inc., a DLH Corporation Holding Company, Bethesda, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr +Ian D. Buller\cr \emph{DLH Corporation (formerly Social & Scientific Systems, Inc.), Bethesda, Maryland, USA (current); Occupational and Environmental Epidemiology Branch, Division of Cancer Epidemiology and Genetics, National Cancer Institute, National Institutes of Health, Rockville, Maryland, USA (original).} \cr Maintainer: I.D.B. \email{ian.buller@alumni.emory.edu} } diff --git a/man/powell_wiley.Rd b/man/powell_wiley.Rd index 1fbc20c..239ed05 100644 --- a/man/powell_wiley.Rd +++ b/man/powell_wiley.Rd @@ -23,7 +23,7 @@ powell_wiley( \item{quiet}{Logical. If TRUE, will display messages about potential missing census information, standardized Cronbach's alpha, and proportion of variance explained by principal component analysis. The default is FALSE.} -\item{round_output}{Logical. If TRUE, will round the output of raw census and NDI values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE.} +\item{round_output}{Logical. If TRUE, will round the output of raw census and \emph{NDI} values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE.} \item{df}{Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below.} @@ -33,9 +33,9 @@ powell_wiley( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, NDI continuous, NDI quintiles, and raw census values of specified census geographies.} -\item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the NDI values.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute NDI.} +\item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, \emph{NDI} continuous, \emph{NDI} quintiles, and raw census values of specified census geographies.} +\item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the \emph{NDI} values.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{NDI}.} \item{\code{cronbach}}{An object of class 'character' or 'numeric' for the results of the Cronbach's alpha calculation. If only one factor is computed, a message is returned. If more than one factor is computed, Cronbach's alpha is calculated and should check that it is >0.7 for respectable internal consistency between factors.} } } @@ -43,7 +43,7 @@ An object of class 'list'. This is a named list with the following components: Compute the aspatial Neighborhood Deprivation Index (Powell-Wiley). } \details{ -This function will compute the aspatial Neighborhood Deprivation Index (NDI) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. +This function will compute the aspatial Neighborhood Deprivation Index (\emph{NDI}) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: \itemize{ @@ -62,9 +62,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. \item \strong{PctUnempl (S2301)}: percent unemployed } -Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the NDI (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the \emph{NDI} (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the \emph{NDI} (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. -The categorical NDI (Powell-Wiley) values are population-weighted quintiles of the continuous NDI (Powell-Wiley) values. +The categorical \emph{NDI} (Powell-Wiley) values are population-weighted quintiles of the continuous \emph{NDI} (Powell-Wiley) values. Check if the proportion of variance explained by the first principal component is high (more than 0.5). diff --git a/man/sudano.Rd b/man/sudano.Rd index c98c5c2..bca30ec 100644 --- a/man/sudano.Rd +++ b/man/sudano.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/sudano.R \name{sudano} \alias{sudano} -\title{Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013)} +\title{Location Quotient based on Merton (1938) and Sudano et al. (2013)} \usage{ sudano( geo_large = "county", @@ -33,18 +33,18 @@ sudano( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and LQ at specified smaller census geographies.} +\item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and \emph{LQ} at specified smaller census geographies.} \item{\code{lq_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute LQ.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{LQ}.} } } \description{ Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Location Quotient (LQ) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of LQ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Location Quotient (\emph{LQ}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of \emph{LQ} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -70,9 +70,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -LQ is some measure of relative racial homogeneity of each smaller geography within a larger geography. LQ can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an LQ of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. +\emph{LQ} is some measure of relative racial homogeneity of each smaller geography within a larger geography. \emph{LQ} can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an \emph{LQ} of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the LQ value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LQ} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{LQ} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LQ} computation. } \examples{ \dontrun{ diff --git a/man/white.Rd b/man/white.Rd index 53d1097..a72e270 100644 --- a/man/white.Rd +++ b/man/white.Rd @@ -33,18 +33,18 @@ white( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{v}}{An object of class 'tbl' for the GEOID, name, and V at specified larger census geographies.} +\item{\code{v}}{An object of class 'tbl' for the GEOID, name, and \emph{V} at specified larger census geographies.} \item{\code{v_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute V.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{V}.} } } \description{ Compute the aspatial Correlation Ratio (White) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Correlation Ratio (V or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of V for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Correlation Ratio (\emph{V} or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of \emph{V} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -70,9 +70,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -V removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range in value from -Inf to Inf. +\emph{V} removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{V} can range in value from -Inf to Inf. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the V value returned is NA. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{V} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{V} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{V} computation. } \examples{ \dontrun{ From 4a4147ceeda1fe924a7ba252b4217ae2457322ed Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Mon, 19 Aug 2024 20:41:46 -0400 Subject: [PATCH 21/23] =?UTF-8?q?=F0=9F=94=80=20Merge=20`branch:dev=5Fhoov?= =?UTF-8?q?er`=20into=20`branch:main`=20(#15)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * :sparkles: CSAs and metro divisions now available as a larger geographical unit * Added `geo_large = 'csa'` for Core Based Statistical Areas and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. * Updated documentation throughout --- DESCRIPTION | 18 +++---- NAMESPACE | 2 + NEWS.md | 4 +- R/anthopolos.R | 50 ++++++++--------- R/atkinson.R | 116 ++++++++++++++++++++++++++++++---------- R/bell.R | 116 ++++++++++++++++++++++++++++++---------- R/bemanian_beyer.R | 112 +++++++++++++++++++++++++++----------- R/bravo.R | 22 ++++---- R/duncan.R | 116 ++++++++++++++++++++++++++++++---------- R/gini.R | 8 +-- R/globals.R | 2 + R/hoover.R | 121 +++++++++++++++++++++++++++++++----------- R/krieger.R | 30 +++++------ R/messer.R | 32 +++++------ R/ndi-package.R | 28 +++++----- R/powell_wiley.R | 40 +++++++------- R/sudano.R | 108 +++++++++++++++++++++++++++---------- R/white.R | 116 ++++++++++++++++++++++++++++++---------- README.md | 30 +++++------ cran-comments.md | 2 +- man/atkinson.Rd | 4 +- man/bell.Rd | 4 +- man/bemanian_beyer.Rd | 4 +- man/duncan.Rd | 4 +- man/gini.Rd | 8 +-- man/hoover.Rd | 4 +- man/krieger.Rd | 2 +- man/ndi-package.Rd | 26 ++++----- man/sudano.Rd | 4 +- man/white.Rd | 4 +- 30 files changed, 767 insertions(+), 370 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 69f32bd..1aa83d4 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ndi Title: Neighborhood Deprivation Indices Version: 0.1.6.9000 -Date: 2024-07-06 +Date: 2024-08-19 Authors@R: c(person(given = "Ian D.", family = "Buller", @@ -31,20 +31,20 @@ Description: Computes various metrics of socio-economic deprivation and disparit Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) , (4) compute the aspatial racial/ethnic - Dissimilarity Index based on Duncan & Duncan (1955) , (5) - compute the aspatial income or racial/ethnic Atkinson Index based on Atkinson + Dissimilarity Index (DI) based on Duncan & Duncan (1955) , (5) + compute the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) , (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell - (1954) , (7) aspatial racial/ethnic Correlation Ratio + (1954) , (7) aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) , (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) and Sudano et al. (2013) , (9) aspatial racial/ethnic Local - Exposure and Isolation metric based on Bemanian & Beyer (2017) - , and (10) aspatial racial/ethnic Delta based on - Hoover (1941) and Duncan et al. (1961; LC:60007089). - Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the - aspatial Gini Index based Gini (1921) . + Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) + , and (10) aspatial racial/ethnic Delta (DEL) + based on Hoover (1941) and Duncan et al. (1961; + LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can + retrieve the aspatial Gini Index (G) based Gini (1921) . License: Apache License (>= 2.0) Encoding: UTF-8 LazyData: true diff --git a/NAMESPACE b/NAMESPACE index 5ac1e51..f57fcd6 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -37,5 +37,7 @@ importFrom(stringr,str_trim) importFrom(tidycensus,get_acs) importFrom(tidyr,pivot_longer) importFrom(tidyr,separate) +importFrom(tigris,combined_statistical_areas) importFrom(tigris,core_based_statistical_areas) +importFrom(tigris,metro_divisions) importFrom(utils,stack) diff --git a/NEWS.md b/NEWS.md index a82643e..c4fdedb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,7 +4,7 @@ ### New Features * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) -* Added `geo_large = 'cbsa'` option for computing Core Based Statistical Areas as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. +* Added `geo_large = 'cbsa'` for computing Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) ### Updates @@ -97,7 +97,7 @@ ### New Features * Added `anthopolos()` function to compute the Racial Isolation Index (*RI*) based on based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002) for specified counties/tracts 2009 onward * Added `bravo()` function to compute the Educational Isolation Index (*EI*) based on based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384) for specified counties/tracts 2009 onward -* Added `gini()` function to retrieve the Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319) for specified counties/tracts 2009 onward +* Added `gini()` function to retrieve the Gini Index (*G*) based on [Gini (1921)](https://doi.org/10.2307/2223319) for specified counties/tracts 2009 onward * Thank you for the feature suggestions, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) ### Updates diff --git a/R/anthopolos.R b/R/anthopolos.R index 4824e4f..c5ef606 100644 --- a/R/anthopolos.R +++ b/R/anthopolos.R @@ -8,41 +8,41 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Racial Isolation Index (*RI*) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of *RI* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the spatial Racial Isolation Index (\emph{RI}) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002} who originally designed the metric for the racial isolation of non-Hispanic Black individuals. This function provides the computation of \emph{RI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone\code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone\code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and *RI* values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the *RI* for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and \emph{RI} values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the \emph{RI} for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. #' -#' A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an *RI* value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an *RI* value close to 0. +#' A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., non-Hispanic or Latino, Black or African American alone) will have an \emph{RI} value close to 1. In contrast, a census geography (and its neighbors) that has nearly none of its population who identify with the specified race/ethnicity subgroup(s) (e.g., not non-Hispanic or Latino, Black or African American alone) will have an \emph{RI} value close to 0. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ri}}{An object of class 'tbl' for the GEOID, name, *RI*, and raw census values of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *RI*.} +#' \item{\code{ri}}{An object of class 'tbl' for the GEOID, name, \emph{RI}, and raw census values of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{RI}.} #' } #' #' @import dplyr diff --git a/R/atkinson.R b/R/atkinson.R index 7080587..cc11355 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -11,46 +11,46 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Atkinson Index (*AI*) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of *AI* for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Atkinson Index (\emph{AI}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{AI} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *AI* is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. *AI* can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). +#' \emph{AI} is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{AI} can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). #' #' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *AI* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *AI* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *AI* computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{AI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{AI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{AI} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and *AI* at specified larger census geographies.} +#' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and \emph{AI} at specified larger census geographies.} #' \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *AI*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{AI}.} #' } #' #' @import dplyr @@ -58,7 +58,7 @@ #' @importFrom stats na.omit #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -90,7 +90,7 @@ atkinson <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -217,7 +217,7 @@ atkinson <- function(geo_large = 'county', ai_data <- ai_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -229,6 +229,44 @@ atkinson <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(ai_data, dat_csa) + ai_data <- ai_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(ai_data, dat_metro) + ai_data <- ai_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic subgroup population @@ -328,6 +366,26 @@ atkinson <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) } + if (geo_large == 'csa') { + ai <- ai_data %>% + dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, AI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, AI) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } + if (geo_large == 'metro') { + ai <- ai_data %>% + dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, AI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, AI) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } ai <- ai %>% dplyr::arrange(GEOID) %>% diff --git a/R/bell.R b/R/bell.R index 1331b83..62ac4e0 100644 --- a/R/bell.R +++ b/R/bell.R @@ -11,44 +11,44 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Isolation Index (*II*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of *II* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Isolation Index (\emph{II}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of \emph{II} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *II* is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). *II* can range in value from 0 to 1. +#' \emph{II} is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{II} can range in value from 0 to 1. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *II* value returned is NA. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *II* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *II* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *II* computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{II} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{II} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and *II* at specified larger census geographies.} +#' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and \emph{II} at specified larger census geographies.} #' \item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *II*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{II}.} #' } #' #' @import dplyr @@ -56,7 +56,7 @@ #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -89,7 +89,7 @@ bell <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -242,7 +242,7 @@ bell <- function(geo_large = 'county', ii_data <- ii_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -254,6 +254,44 @@ bell <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(ii_data, dat_csa) + ii_data <- ii_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(ii_data, dat_metro) + ii_data <- ii_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population @@ -355,6 +393,26 @@ bell <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) } + if (geo_large == 'csa') { + ii <- ii_data %>% + dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, II) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } + if (geo_large == 'metro') { + ii <- ii_data %>% + dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, II) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, II) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } ii <- ii %>% dplyr::arrange(GEOID) %>% diff --git a/R/bemanian_beyer.R b/R/bemanian_beyer.R index bc94ee0..55f41db 100644 --- a/R/bemanian_beyer.R +++ b/R/bemanian_beyer.R @@ -11,46 +11,46 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Local Exposure and Isolation (*LEx/Is*) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of *LEx/Is* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Local Exposure and Isolation (\emph{LEx/Is}) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of \emph{LEx/Is} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *LEx/Is* is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. *LEx/Is* is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) +#' \emph{LEx/Is} is a measure of the probability that two individuals living within a specific smaller geography (e.g., census tract) of either different (i.e., exposure) or the same (i.e., isolation) racial/ethnic subgroup(s) will interact, assuming that individuals within a smaller geography are randomly mixed. \emph{LEx/Is} is standardized with a logit transformation and centered against an expected case that all races/ethnicities are evenly distributed across a larger geography. (Note: will adjust data by 0.025 if probabilities are zero, one, or undefined. The output will include a warning if adjusted. See \code{\link[car]{logit}} for additional details.) #' -#' *LEx/Is* can range from negative infinity to infinity. If *LEx/Is* is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If *LEx/Is* is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if *LEx/Is* is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each *LEx/Is* metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. +#' \emph{LEx/Is} can range from negative infinity to infinity. If \emph{LEx/Is} is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If \emph{LEx/Is} is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if \emph{LEx/Is} is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each \emph{LEx/Is} metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LEx/Is} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{LEx/Is} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LEx/Is} computation. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *LEx/Is* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *LEx/Is* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *LEx/Is* computation. -#' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and *LEx/Is* at specified smaller census geographies.} +#' \item{\code{lexis}}{An object of class 'tbl' for the GEOID, name, and \emph{LEx/Is} at specified smaller census geographies.} #' \item{\code{lexis_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *LEx/Is*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{LEx/Is}.} #' } #' #' @import dplyr @@ -59,7 +59,7 @@ #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -92,7 +92,7 @@ bemanian_beyer <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -244,7 +244,7 @@ bemanian_beyer <- function(geo_large = 'county', lexis_data <- lexis_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -256,6 +256,44 @@ bemanian_beyer <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(lexis_data, dat_csa) + lexis_data <- lexis_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(lexis_data, dat_metro) + lexis_data <- lexis_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population @@ -341,6 +379,18 @@ bemanian_beyer <- function(geo_large = 'county', dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(cbsa, .after = county) } + if (geo_large == 'csa') { + lexis <- lexis_data %>% + dplyr::select(GEOID, csa) %>% + dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% + dplyr::relocate(csa, .after = county) + } + if (geo_large == 'metro') { + lexis <- lexis_data %>% + dplyr::select(GEOID, metro) %>% + dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% + dplyr::relocate(metro, .after = county) + } lexis <- lexis %>% unique(.) %>% diff --git a/R/bravo.R b/R/bravo.R index f74febf..b2b9cd2 100644 --- a/R/bravo.R +++ b/R/bravo.R @@ -8,27 +8,27 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the spatial Educational Isolation Index (*EI*) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of *EI* for any of the U.S. Census Bureau educational attainment levels. +#' @details This function will compute the spatial Educational Isolation Index (\emph{EI}) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384} who originally designed the metric for the educational isolation of individual without a college degree. This function provides the computation of \emph{EI} for any of the U.S. Census Bureau educational attainment levels. #' #' The function uses the \code{\link[tidycensus]{get_acs}} to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The five educational attainment levels (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B06009_002**: Less than high school graduate \code{'LtHS'} -#' \item **B06009_003**: High school graduate (includes equivalency) \code{'HSGiE'} -#' \item **B06009_004**: Some college or associate's degree \code{'SCoAD'} -#' \item **B06009_005**: Bachelor's degree \code{'BD'} -#' \item **B06009_006**: Graduate or professional degree \code{'GoPD'} +#' \item \strong{B06009_002}: Less than high school graduate \code{'LtHS'} +#' \item \strong{B06009_003}: High school graduate (includes equivalency) \code{'HSGiE'} +#' \item \strong{B06009_004}: Some college or associate's degree \code{'SCoAD'} +#' \item \strong{B06009_005}: Bachelor's degree \code{'BD'} +#' \item \strong{B06009_006}: Graduate or professional degree \code{'GoPD'} #' } -#' Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the **B15002** question. +#' Note: If \code{year = 2009}, then the ACS-5 data (2005-2009) are from the \strong{B15002} question. #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and *EI* values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the *EI* for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. NOTE: Current version does not correct for edge effects (e.g., census geographies along the specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have few neighboring census geographies, and \emph{EI} values in these census geographies may be unstable. A stop-gap solution for the former source of edge effect is to compute the \emph{EI} for neighboring census geographies (i.e., the states bordering a study area of interest) and then use the estimates of the study area of interest. #' -#' A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an *EI* value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an *EI* value close to 0. +#' A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a Bachelor's degree or more) will have an \emph{EI} value close to 1. In contrast, a census geography (and its neighbors) that is nearly none of its population with the specified educational attainment category (e.g., less than a Bachelor's degree) will have an \emph{EI} value close to 0. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ei}}{An object of class 'tbl' for the GEOID, name, *EI*, and raw census values of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *EI*.} +#' \item{\code{ei}}{An object of class 'tbl' for the GEOID, name, \emph{EI}, and raw census values of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{EI}.} #' } #' #' @import dplyr diff --git a/R/duncan.R b/R/duncan.R index 6ce71e0..9f68b3a 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -11,44 +11,44 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Dissimilarity Index (*DI*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of *DI* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Dissimilarity Index (\emph{DI}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{DI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *DI* is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. *DI* can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. +#' \emph{DI} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{DI} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *DI* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *DI* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *DI* computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{DI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DI} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and *DI* at specified larger census geographies.} +#' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and \emph{DI} at specified larger census geographies.} #' \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *DI*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{DI}.} #' } #' #' @import dplyr @@ -56,7 +56,7 @@ #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -89,7 +89,7 @@ duncan <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -240,7 +240,7 @@ duncan <- function(geo_large = 'county', di_data <- di_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -252,6 +252,44 @@ duncan <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(di_data, dat_csa) + di_data <- di_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(di_data, dat_metro) + di_data <- di_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population @@ -353,6 +391,26 @@ duncan <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) } + if (geo_large == 'csa') { + di <- di_data %>% + dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, DI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, DI) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } + if (geo_large == 'metro') { + di <- di_data %>% + dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, DI) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, DI) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } di <- di %>% dplyr::arrange(GEOID) %>% diff --git a/R/gini.R b/R/gini.R index 09da8a2..8f3c1d4 100644 --- a/R/gini.R +++ b/R/gini.R @@ -7,9 +7,9 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will retrieve the aspatial Gini Index of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Gini (1921) \doi{10.2307/2223319}. +#' @details This function will retrieve the aspatial Gini Index (\emph{G}) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Gini (1921) \doi{10.2307/2223319}. #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey estimates of the Gini Index for income inequality (ACS: B19083). The estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey estimates of \emph{G} for income inequality (ACS: B19083). The estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' @@ -18,8 +18,8 @@ #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{gini}}{An object of class 'tbl' for the GEOID, name, and Gini index of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for the Gini index.} +#' \item{\code{gini}}{An object of class 'tbl' for the GEOID, name, and \emph{G} of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for \emph{G}.} #' } #' #' @import dplyr diff --git a/R/globals.R b/R/globals.R index f381fe1..78f646a 100644 --- a/R/globals.R +++ b/R/globals.R @@ -119,6 +119,8 @@ globalVariables( 'COUNTYFP', 'TRACTCE', 'cbsa', + 'csa', + 'metro', 'val', 'variable', 'giniE', diff --git a/R/hoover.R b/R/hoover.R index 5538f78..8b45050 100644 --- a/R/hoover.R +++ b/R/hoover.R @@ -10,44 +10,44 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Delta (*DEL*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of *DEL* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Delta (\emph{DEL}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of \emph{DEL} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *DEL* is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. *DEL* can range in value from 0 to 1. +#' \emph{DEL} is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. \emph{DEL} can range in value from 0 to 1. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *DEL* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *DEL* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *DEL* computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DEL} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{DEL} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DEL} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{del}}{An object of class 'tbl' for the GEOID, name, and *DEL* at specified larger census geographies.} +#' \item{\code{del}}{An object of class 'tbl' for the GEOID, name, and \emph{DEL} at specified larger census geographies.} #' \item{\code{del_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *DEL*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{DEL}.} #' } #' #' @import dplyr @@ -55,7 +55,7 @@ #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -86,7 +86,7 @@ hoover <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -210,7 +210,7 @@ hoover <- function(geo_large = 'county', del_data <- del_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -222,6 +222,44 @@ hoover <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(del_data, dat_csa) + del_data <- del_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(del_data, dat_metro) + del_data <- del_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population @@ -305,7 +343,30 @@ hoover <- function(geo_large = 'county', dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, cbsa, DEL) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(complete.cases(.)) + } + if (geo_large == 'csa') { + del <- del_data %>% + dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, DEL) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, DEL) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(complete.cases(.)) + } + if (geo_large == 'metro') { + del <- del_data %>% + dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, DEL) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, DEL) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(complete.cases(.)) } del <- del %>% diff --git a/R/krieger.R b/R/krieger.R index d9575c6..cc104eb 100644 --- a/R/krieger.R +++ b/R/krieger.R @@ -7,34 +7,34 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute three aspatial Index of Concentration at the Extremes (*ICE*) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five *ICE* metrics: +#' @details This function will compute three aspatial Index of Concentration at the Extremes (\emph{ICE}) of U.S. census tracts or counties for a specified geographical extent (e.g., entire U.S. or a single state) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. The authors expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) \doi{10.4324/9781410600141} who initially designed the metric for residential segregation. This function computes five \emph{ICE} metrics: #' #' \itemize{ -#' \item **Income**: 80th income percentile vs. 20th income percentile -#' \item **Education**: less than high school vs. four-year college degree or more -#' \item **Race/Ethnicity**: white non-Hispanic vs. black non-Hispanic -#' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile -#' \item **Income and race/ethnicity combined**: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile +#' \item \strong{Income}: 80th income percentile vs. 20th income percentile +#' \item \strong{Education}: less than high school vs. four-year college degree or more +#' \item \strong{Race/Ethnicity}: white non-Hispanic vs. black non-Hispanic +#' \item \strong{Income and race/ethnicity combined}: white non-Hispanic in 80th income percentile vs. black alone (including Hispanic) in 20th income percentile +#' \item \strong{Income and race/ethnicity combined}: white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile #' } #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five *ICE* metrics are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the geospatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. The ACS-5 groups used in the computation of the five \emph{ICE} metrics are: #' \itemize{ -#' \item **B03002**: HISPANIC OR LATINO ORIGIN BY RACE -#' \item **B15002**: SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER -#' \item **B19001**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) -#' \item **B19001B**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER) -#' \item **B19001H**: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER) +#' \item \strong{B03002}: HISPANIC OR LATINO ORIGIN BY RACE +#' \item \strong{B15002}: SEX BY EDUCATIONAL ATTAINMENT FOR THE POPULATION 25 YEARS AND OVER +#' \item \strong{B19001}: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) +#' \item \strong{B19001B}: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (BLACK OR AFRICAN AMERICAN ALONE HOUSEHOLDER) +#' \item \strong{B19001H}: HOUSEHOLD INCOME IN THE PAST 12 MONTHS (IN 20XX INFLATION-ADJUSTED DOLLARS) (WHITE ALONE, NOT HISPANIC OR LATINO HOUSEHOLDER) #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *ICE* metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. +#' \emph{ICE} metrics can range in value from -1 (most deprived) to 1 (most privileged). A value of 0 can thus represent two possibilities: (1) none of the residents are in the most privileged or most deprived categories, or (2) an equal number of persons are in the most privileged and most deprived categories, and in both cases indicates that the area is not dominated by extreme concentrations of either of the two groups. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ice}}{An object of class 'tbl' for the GEOID, name, *ICE* metrics, and raw census values of specified census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the *ICE* metrics.} +#' \item{\code{ice}}{An object of class 'tbl' for the GEOID, name, \emph{ICE} metrics, and raw census values of specified census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the \emph{ICE} metrics.} #' } #' #' @import dplyr diff --git a/R/messer.R b/R/messer.R index 05ed4fa..4ecc470 100644 --- a/R/messer.R +++ b/R/messer.R @@ -6,28 +6,28 @@ #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available. #' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}}. If FALSE (the default), will not impute. #' @param quiet Logical. If TRUE, will display messages about potential missing census information and the proportion of variance explained by principal component analysis. The default is FALSE. -#' @param round_output Logical. If TRUE, will round the output of raw census and *NDI* values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. +#' @param round_output Logical. If TRUE, will round the output of raw census and \emph{NDI} values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (*NDI*) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (\emph{NDI}) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a principal component analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available for 2010 and after when all census characteristics became available. The eight characteristics are: #' \itemize{ -#' \item **OCC (C24030)**: percent males in management, science, and arts occupation -#' \item **CWD (B25014)**: percent of crowded housing -#' \item **POV (B17017)**: percent of households in poverty -#' \item **FHH (B25115)**: percent of female headed households with dependents -#' \item **PUB (B19058)**: percent of households on public assistance -#' \item **U30 (B19001)**: percent of households earning <$30,000 per year -#' \item **EDU (B06009)**: percent earning less than a high school education -#' \item **EMP (B23025)**: percent unemployed (2011 onward) -#' \item **EMP (B23001)**: percent unemployed (2010 only) +#' \item \strong{OCC (C24030)}: percent males in management, science, and arts occupation +#' \item \strong{CWD (B25014)}: percent of crowded housing +#' \item \strong{POV (B17017)}: percent of households in poverty +#' \item \strong{FHH (B25115)}: percent of female headed households with dependents +#' \item \strong{PUB (B19058)}: percent of households on public assistance +#' \item \strong{U30 (B19001)}: percent of households earning <$30,000 per year +#' \item \strong{EDU (B06009)}: percent earning less than a high school education +#' \item \strong{EMP (B23025)}: percent unemployed (2011 onward) +#' \item \strong{EMP (B23001)}: percent unemployed (2010 only) #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the *NDI* (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the \emph{NDI} (Messer) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. #' -#' The continuous *NDI* (Messer) values are z-transformed, i.e., 'standardized,' and the categorical *NDI* (Messer) values are quartiles of the standardized continuous *NDI* (Messer) values. +#' The continuous \emph{NDI} (Messer) values are z-transformed, i.e., 'standardized,' and the categorical \emph{NDI} (Messer) values are quartiles of the standardized continuous \emph{NDI} (Messer) values. #' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). #' @@ -36,9 +36,9 @@ #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, *NDI* (standardized), *NDI* (quartile), and raw census values of specified census geographies.} -#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the *NDI* values.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *NDI*.} +#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, \emph{NDI} (standardized), \emph{NDI} (quartile), and raw census values of specified census geographies.} +#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the \emph{NDI} values.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{NDI}.} #' } #' #' @import dplyr diff --git a/R/ndi-package.R b/R/ndi-package.R index 65c67f6..b4388c7 100644 --- a/R/ndi-package.R +++ b/R/ndi-package.R @@ -2,37 +2,37 @@ #' #' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. #' -#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation metric based on Bemanian & Beyer (2017) , and (10) aspatial racial/ethnic Delta based on Hoover (1941) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (\emph{NDI}) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (\emph{RI}) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (\emph{EI}) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (\emph{ICE}) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (\emph{LQ}) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) , and (10) aspatial racial/ethnic Delta (\emph{DEL}) based on Hoover (1941) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. #' #' Key content of the 'ndi' package include:\cr #' #' \bold{Metrics of Socio-Economic Deprivation and Disparity} #' -#' \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (RI) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. +#' \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (\emph{RI}) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. #' -#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. #' -#' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. +#' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. #' -#' \code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. +#' \code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. #' -#' \code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. +#' \code{\link{bravo}} Computes the spatial Educational Isolation Index (\emph{EI}) based on Bravo (2021) \doi{10.3390/ijerph18179384}. #' -#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. +#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. #' -#' \code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +#' \code{\link{gini}} Retrieves the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. #' -#' \code{\link{hoover}} Computes the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) \doi{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). +#' \code{\link{hoover}} Computes the aspatial racial/ethnic Delta (\emph{DEL}) based on Hoover (1941) \doi{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). #' #' \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. #' -#' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +#' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (\emph{NDI}) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. #' -#' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +#' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (\emph{NDI}) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. #' -#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. +#' \code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (\emph{LQ}) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. #' -#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. +#' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. #' #' \bold{Pre-formatted U.S. Census Data} #' @@ -60,6 +60,6 @@ #' @importFrom stringr str_trim #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack NULL diff --git a/R/powell_wiley.R b/R/powell_wiley.R index 6896c00..3c1fc48 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -6,32 +6,32 @@ #' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2010 onward are currently available. #' @param imp Logical. If TRUE, will impute missing census characteristics within the internal \code{\link[psych]{principal}} using median values of variables. If FALSE (the default), will not impute. #' @param quiet Logical. If TRUE, will display messages about potential missing census information, standardized Cronbach's alpha, and proportion of variance explained by principal component analysis. The default is FALSE. -#' @param round_output Logical. If TRUE, will round the output of raw census and *NDI* values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. +#' @param round_output Logical. If TRUE, will round the output of raw census and \emph{NDI} values from the \code{\link[tidycensus]{get_acs}} at one and four significant digits, respectively. The default is FALSE. #' @param df Optional. Pass a pre-formatted \code{'dataframe'} or \code{'tibble'} with the desired variables through the function. Bypasses the data obtained by \code{\link[tidycensus]{get_acs}}. The default is NULL. See Details below. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Neighborhood Deprivation Index (*NDI*) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. +#' @details This function will compute the aspatial Neighborhood Deprivation Index (\emph{NDI}) of U.S. census tracts or counties for a specified geographical referent (e.g., US-standardized) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002}. #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for computation involving a factor analysis with the \code{\link[psych]{principal}} function. The yearly estimates are available in 2010 and after when all census characteristics became available. The thirteen characteristics chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x} are: #' \itemize{ -#' \item **MedHHInc (B19013)**: median household income (dollars) -#' \item **PctRecvIDR (B19054)**: percent of households receiving dividends, interest, or rental income -#' \item **PctPubAsst (B19058)**: percent of households receiving public assistance -#' \item **MedHomeVal (B25077)**: median home value (dollars) -#' \item **PctMgmtBusScArti (C24060)**: percent in a management, business, science, or arts occupation -#' \item **PctFemHeadKids (B11005)**: percent of households that are female headed with any children under 18 years -#' \item **PctOwnerOcc (DP04)**: percent of housing units that are owner occupied -#' \item **PctNoPhone (DP04)**: percent of households without a telephone -#' \item **PctNComPlm (DP04)**: percent of households without complete plumbing facilities -#' \item **PctEducHSPlus (S1501)**: percent with a high school degree or higher (population 25 years and over) -#' \item **PctEducBchPlus (S1501)**: percent with a college degree or higher (population 25 years and over) -#' \item **PctFamBelowPov (S1702)**: percent of families with incomes below the poverty level -#' \item **PctUnempl (S2301)**: percent unemployed +#' \item \strong{MedHHInc (B19013)}: median household income (dollars) +#' \item \strong{PctRecvIDR (B19054)}: percent of households receiving dividends, interest, or rental income +#' \item \strong{PctPubAsst (B19058)}: percent of households receiving public assistance +#' \item \strong{MedHomeVal (B25077)}: median home value (dollars) +#' \item \strong{PctMgmtBusScArti (C24060)}: percent in a management, business, science, or arts occupation +#' \item \strong{PctFemHeadKids (B11005)}: percent of households that are female headed with any children under 18 years +#' \item \strong{PctOwnerOcc (DP04)}: percent of housing units that are owner occupied +#' \item \strong{PctNoPhone (DP04)}: percent of households without a telephone +#' \item \strong{PctNComPlm (DP04)}: percent of households without complete plumbing facilities +#' \item \strong{PctEducHSPlus (S1501)}: percent with a high school degree or higher (population 25 years and over) +#' \item \strong{PctEducBchPlus (S1501)}: percent with a college degree or higher (population 25 years and over) +#' \item \strong{PctFamBelowPov (S1702)}: percent of families with incomes below the poverty level +#' \item \strong{PctUnempl (S2301)}: percent unemployed #' } #' -#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the *NDI* (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the *NDI* (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify the referent for standardizing the \emph{NDI} (Powell-Wiley) values. For example, if all U.S. states are specified for the \code{state} argument, then the output would be a U.S.-standardized index. Please note: the \emph{NDI} (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} because the two studies used a different statistical platform (i.e., SPSS and SAS, respectively) that intrinsically calculate the principal component analysis differently from R. #' -#' The categorical *NDI* (Powell-Wiley) values are population-weighted quintiles of the continuous *NDI* (Powell-Wiley) values. +#' The categorical \emph{NDI} (Powell-Wiley) values are population-weighted quintiles of the continuous \emph{NDI} (Powell-Wiley) values. #' #' Check if the proportion of variance explained by the first principal component is high (more than 0.5). #' @@ -40,9 +40,9 @@ #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, *NDI* continuous, *NDI* quintiles, and raw census values of specified census geographies.} -#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the *NDI* values.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *NDI*.} +#' \item{\code{ndi}}{An object of class 'tbl' for the GEOID, name, \emph{NDI} continuous, \emph{NDI} quintiles, and raw census values of specified census geographies.} +#' \item{\code{pca}}{An object of class 'principal', returns the output of \code{\link[psych]{principal}} used to compute the \emph{NDI} values.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{NDI}.} #' \item{\code{cronbach}}{An object of class 'character' or 'numeric' for the results of the Cronbach's alpha calculation. If only one factor is computed, a message is returned. If more than one factor is computed, Cronbach's alpha is calculated and should check that it is >0.7 for respectable internal consistency between factors.} #' } #' diff --git a/R/sudano.R b/R/sudano.R index 63ccaa6..959fad6 100644 --- a/R/sudano.R +++ b/R/sudano.R @@ -10,44 +10,44 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Location Quotient (*LQ*) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of *LQ* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Location Quotient (\emph{LQ}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of \emph{LQ} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *LQ* is some measure of relative racial homogeneity of each smaller geography within a larger geography. *LQ* can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an *LQ* of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. +#' \emph{LQ} is some measure of relative racial homogeneity of each smaller geography within a larger geography. \emph{LQ} can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an \emph{LQ} of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *LQ* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *LQ* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *LQ* computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LQ} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{LQ} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LQ} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and *LQ* at specified smaller census geographies.} +#' \item{\code{lq}}{An object of class 'tbl' for the GEOID, name, and \emph{LQ} at specified smaller census geographies.} #' \item{\code{lq_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *LQ*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{LQ}.} #' } #' #' @import dplyr @@ -55,7 +55,7 @@ #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -86,7 +86,7 @@ sudano <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -212,7 +212,7 @@ sudano <- function(geo_large = 'county', lq_data <- lq_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -224,6 +224,44 @@ sudano <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(lq_data, dat_csa) + lq_data <- lq_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(lq_data, dat_metro) + lq_data <- lq_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population @@ -296,6 +334,18 @@ sudano <- function(geo_large = 'county', dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(cbsa, .after = county) } + if (geo_large == 'csa') { + lq <- lq_data %>% + dplyr::select(GEOID, csa) %>% + dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% + dplyr::relocate(csa, .after = county) + } + if (geo_large == 'metro') { + lq <- lq_data %>% + dplyr::select(GEOID, metro) %>% + dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% + dplyr::relocate(metro, .after = county) + } lq <- lq %>% unique(.) %>% diff --git a/R/white.R b/R/white.R index 94b0e3b..0754d62 100644 --- a/R/white.R +++ b/R/white.R @@ -10,44 +10,44 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Correlation Ratio (*V* or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of *V* for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Correlation Ratio (\emph{V} or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of \emph{V} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' -#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ -#' \item **B03002_002**: not Hispanic or Latino \code{'NHoL'} -#' \item **B03002_003**: not Hispanic or Latino, white alone \code{'NHoLW'} -#' \item **B03002_004**: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} -#' \item **B03002_005**: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} -#' \item **B03002_006**: not Hispanic or Latino, Asian alone \code{'NHoLA'} -#' \item **B03002_007**: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} -#' \item **B03002_008**: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} -#' \item **B03002_009**: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} -#' \item **B03002_010**: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} -#' \item **B03002_011**: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} -#' \item **B03002_012**: Hispanic or Latino \code{'HoL'} -#' \item **B03002_013**: Hispanic or Latino, white alone \code{'HoLW'} -#' \item **B03002_014**: Hispanic or Latino, Black or African American alone \code{'HoLB'} -#' \item **B03002_015**: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} -#' \item **B03002_016**: Hispanic or Latino, Asian alone \code{'HoLA'} -#' \item **B03002_017**: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} -#' \item **B03002_018**: Hispanic or Latino, Some other race alone \code{'HoLSOR'} -#' \item **B03002_019**: Hispanic or Latino, Two or more races \code{'HoLTOMR'} -#' \item **B03002_020**: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} -#' \item **B03002_021**: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} #' } #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' *V* removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). *V* can range in value from -Inf to Inf. +#' \emph{V} removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{V} can range in value from -Inf to Inf. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the *V* value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the *V* computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the *V* computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{V} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{V} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{V} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{v}}{An object of class 'tbl' for the GEOID, name, and *V* at specified larger census geographies.} +#' \item{\code{v}}{An object of class 'tbl' for the GEOID, name, and \emph{V} at specified larger census geographies.} #' \item{\code{v_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute *V*.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{V}.} #' } #' #' @import dplyr @@ -55,7 +55,7 @@ #' @importFrom stats complete.cases #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate -#' @importFrom tigris core_based_statistical_areas +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions #' @importFrom utils stack #' @export #' @@ -86,7 +86,7 @@ white <- function(geo_large = 'county', ...) { # Check arguments - match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa')) + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) match.arg(geo_small, choices = c('county', 'tract', 'block group')) stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward match.arg( @@ -208,7 +208,7 @@ white <- function(geo_large = 'county', v_data <- v_data %>% dplyr::mutate( oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 2] %>% sf::st_drop_geometry() + tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), @@ -220,6 +220,44 @@ white <- function(geo_large = 'county', ) %>% sf::st_drop_geometry() } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + win_csa <- sf::st_within(v_data, dat_csa) + v_data <- v_data %>% + dplyr::mutate( + oid = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(win_csa, function(x) { + tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + win_metro <- sf::st_within(v_data, dat_metro) + v_data <- v_data %>% + dplyr::mutate( + oid = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(win_metro, function(x) { + tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population @@ -307,6 +345,26 @@ white <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) } + if (geo_large == 'csa') { + v <- v_data %>% + dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, V) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, V) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } + if (geo_large == 'metro') { + v <- v_data %>% + dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, V) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, V) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) + } v <- v %>% dplyr::arrange(GEOID) %>% diff --git a/README.md b/README.md index b52fa88..91bdda7 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ [![DOI](https://zenodo.org/badge/521439746.svg)](https://zenodo.org/badge/latestdoi/521439746) -**Date repository last updated**: 2024-08-18 +**Date repository last updated**: 2024-08-19 ### Overview -The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial NDI are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the `ndi` package can also compute the (1) spatial Racial Isolation Index (RI) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (EI) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (ICE) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (DI) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (DI) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), and (10) aspatial racial/ethnic Delta based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index based on [Gini (1921)](https://doi.org/10.2307/2223319). +The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation index (*NDI*) are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the *ndi* package can also compute the (1) spatial Racial Isolation Index (*RI*) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (*EI*) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (*ICE*) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (*DI*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (*DI*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (*II*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), and (10) aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index (*G*) based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -44,54 +44,54 @@ To install the development version from GitHub: anthopolos -Compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) +Compute the spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) atkinson -Compute the aspatial Atkinson Index (AI) based on Atkinson (1970) +Compute the aspatial Atkinson Index (AI) based on Atkinson (1970) bell -Compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) +Compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) bemanian_beyer -Compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) +Compute the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) bravo -Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) +Compute the spatial Educational Isolation Index (EI) based on Bravo et al. (2021) duncan -Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) +Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) gini -Retrieve the aspatial Gini Index based on Gini (1921) +Retrieve the aspatial Gini Index (G) based on Gini (1921) hoover -Compute the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089). +Compute the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089). krieger -Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) +Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) messer -Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) +Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) powell_wiley -Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010) +Compute the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) and Slotman et al. (2022) with variables chosen by Roux and Mair (2010) sudano -Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) +Compute the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1938) and Sudano et al. (2013) white -Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) +Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) diff --git a/cran-comments.md b/cran-comments.md index 23392bf..9713195 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -2,7 +2,7 @@ * Actions taken since previous submission: * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) - * Added `geo_large = 'cbsa'` option for computing Core Based Statistical Areas as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. + * Added `geo_large = 'cbsa'` for computing Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA * `tigris` is now Imports diff --git a/man/atkinson.Rd b/man/atkinson.Rd index da948e9..e6b94a7 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -47,7 +47,7 @@ Compute the aspatial Atkinson Index of income or selected racial/ethnic subgroup \details{ This function will compute the aspatial Atkinson Index (\emph{AI}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{AI} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -77,7 +77,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{AI} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{AI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{AI} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{AI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{AI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{AI} computation. } \examples{ \dontrun{ diff --git a/man/bell.Rd b/man/bell.Rd index 27b285b..b505124 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -47,7 +47,7 @@ Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup \details{ This function will compute the aspatial Isolation Index (\emph{II}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of \emph{II} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -75,7 +75,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link \emph{II} is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{II} can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{II} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{II} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{II} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{II} computation. } \examples{ \dontrun{ diff --git a/man/bemanian_beyer.Rd b/man/bemanian_beyer.Rd index 1dd2ae1..83e32db 100644 --- a/man/bemanian_beyer.Rd +++ b/man/bemanian_beyer.Rd @@ -47,7 +47,7 @@ Compute the aspatial Local Exposure and Isolation (Bemanian & Beyer) metric of a \details{ This function will compute the aspatial Local Exposure and Isolation (\emph{LEx/Is}) metric of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. This function provides the computation of \emph{LEx/Is} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -77,7 +77,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link \emph{LEx/Is} can range from negative infinity to infinity. If \emph{LEx/Is} is zero then the estimated probability of the interaction between two people of the given subgroup(s) within a smaller geography is equal to the expected probability if the subgroup(s) were perfectly mixed in the larger geography. If \emph{LEx/Is} is greater than zero then the interaction is more likely to occur within the smaller geography than in the larger geography, and if \emph{LEx/Is} is less than zero then the interaction is less likely to occur within the smaller geography than in the larger geography. Note: the exponentiation of each \emph{LEx/Is} metric results in the odds ratio of the specific exposure or isolation of interest in a smaller geography relative to the larger geography. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LEx/Is} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{LEx/Is} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LEx/Is} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LEx/Is} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{LEx/Is} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LEx/Is} computation. } \examples{ \dontrun{ diff --git a/man/duncan.Rd b/man/duncan.Rd index eb8677e..eaae01b 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -47,7 +47,7 @@ Compute the aspatial Dissimilarity Index (Duncan & Duncan) of selected racial/et \details{ This function will compute the aspatial Dissimilarity Index (\emph{DI}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{DI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -75,7 +75,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link \emph{DI} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{DI} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DI} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{DI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DI} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{DI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DI} computation. } \examples{ \dontrun{ diff --git a/man/gini.Rd b/man/gini.Rd index 0a83558..7e10e99 100644 --- a/man/gini.Rd +++ b/man/gini.Rd @@ -19,17 +19,17 @@ gini(geo = "tract", year = 2020, quiet = FALSE, ...) An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{gini}}{An object of class 'tbl' for the GEOID, name, and Gini index of specified census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for the Gini index.} +\item{\code{gini}}{An object of class 'tbl' for the GEOID, name, and \emph{G} of specified census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for \emph{G}.} } } \description{ Retrieve the aspatial Gini Index of income inequality. } \details{ -This function will retrieve the aspatial Gini Index of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Gini (1921) \doi{10.2307/2223319}. +This function will retrieve the aspatial Gini Index (\emph{G}) of U.S. census tracts or counties for a specified geographical extent (e.g., the entire U.S. or a single state) based on Gini (1921) \doi{10.2307/2223319}. -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey estimates of the Gini Index for income inequality (ACS: B19083). The estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey estimates of \emph{G} for income inequality (ACS: B19083). The estimates are available for 2009 onward when ACS-5 data are available but are available from other U.S. Census Bureau surveys. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. diff --git a/man/hoover.Rd b/man/hoover.Rd index 9e4dde5..1989485 100644 --- a/man/hoover.Rd +++ b/man/hoover.Rd @@ -44,7 +44,7 @@ Compute the aspatial Delta (Hoover) of a selected racial/ethnic subgroup(s) and \details{ This function will compute the aspatial Delta (\emph{DEL}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan, Cuzzort, and Duncan (1961; LC:60007089). This function provides the computation of \emph{DEL} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -72,7 +72,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link \emph{DEL} is a measure of the proportion of members of one subgroup(s) residing in geographic units with above average density of members of the subgroup(s). The index provides the proportion of a subgroup population that would have to move across geographic units to achieve a uniform density. \emph{DEL} can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DEL} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{DEL} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DEL} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DEL} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{DEL} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DEL} computation. } \examples{ \dontrun{ diff --git a/man/krieger.Rd b/man/krieger.Rd index 064b490..808937d 100644 --- a/man/krieger.Rd +++ b/man/krieger.Rd @@ -20,7 +20,7 @@ An object of class 'list'. This is a named list with the following components: \describe{ \item{\code{ice}}{An object of class 'tbl' for the GEOID, name, \emph{ICE} metrics, and raw census values of specified census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the \emph{ICE}s.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute the \emph{ICE} metrics.} } } \description{ diff --git a/man/ndi-package.Rd b/man/ndi-package.Rd index 7efa8dc..2503449 100644 --- a/man/ndi-package.Rd +++ b/man/ndi-package.Rd @@ -9,37 +9,37 @@ Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. } \details{ -The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (NDI) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (RI) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (EI) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation metric based on Bemanian & Beyer (2017) \url{doi:10.1158/1055-9965.EPI-16-0926}, and (10) aspatial racial/ethnic Delta based on Hoover (1941) \url{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (\emph{NDI}) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (\emph{RI}) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (\emph{EI}) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (\emph{ICE}) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (\emph{LQ}) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) \url{doi:10.1158/1055-9965.EPI-16-0926}, and (10) aspatial racial/ethnic Delta (\emph{DEL}) based on Hoover (1941) \url{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. Key content of the 'ndi' package include:\cr \bold{Metrics of Socio-Economic Deprivation and Disparity} -\code{\link{anthopolos}} Computes the spatial Racial Isolation Index (RI) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. +\code{\link{anthopolos}} Computes the spatial Racial Isolation Index (\emph{RI}) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. -\code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +\code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. -\code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. +\code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. -\code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. +\code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. -\code{\link{bravo}} Computes the spatial Educational Isolation Index (EI) based on Bravo (2021) \doi{10.3390/ijerph18179384}. +\code{\link{bravo}} Computes the spatial Educational Isolation Index (\emph{EI}) based on Bravo (2021) \doi{10.3390/ijerph18179384}. -\code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. +\code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. -\code{\link{gini}} Retrieves the aspatial Gini Index based on Gini (1921) \doi{10.2307/2223319}. +\code{\link{gini}} Retrieves the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. -\code{\link{hoover}} Computes the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) \doi{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). +\code{\link{hoover}} Computes the aspatial racial/ethnic Delta (\emph{DEL}) based on Hoover (1941) \doi{doi:10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089). \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. -\code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. +\code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (\emph{NDI}) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. -\code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (NDI) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. +\code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (\emph{NDI}) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. -\code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. +\code{\link{sudano}} Computes the aspatial racial/ethnic Location Quotient (\emph{LQ}) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. -\code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. +\code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. \bold{Pre-formatted U.S. Census Data} diff --git a/man/sudano.Rd b/man/sudano.Rd index bca30ec..3b78894 100644 --- a/man/sudano.Rd +++ b/man/sudano.Rd @@ -44,7 +44,7 @@ Compute the aspatial Location Quotient (Sudano) of a selected racial/ethnic subg \details{ This function will compute the aspatial Location Quotient (\emph{LQ}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}. This function provides the computation of \emph{LQ} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -72,7 +72,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link \emph{LQ} is some measure of relative racial homogeneity of each smaller geography within a larger geography. \emph{LQ} can range in value from 0 to infinity because it is ratio of two proportions in which the numerator is the proportion of subgroup population in a smaller geography and the denominator is the proportion of subgroup population in its larger geography. For example, a smaller geography with an \emph{LQ} of 5 means that the proportion of the subgroup population living in the smaller geography is five times the proportion of the subgroup population in its larger geography. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LQ} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{LQ} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LQ} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{LQ} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{LQ} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{LQ} computation. } \examples{ \dontrun{ diff --git a/man/white.Rd b/man/white.Rd index a72e270..28708ee 100644 --- a/man/white.Rd +++ b/man/white.Rd @@ -44,7 +44,7 @@ Compute the aspatial Correlation Ratio (White) of a selected racial/ethnic subgr \details{ This function will compute the aspatial Correlation Ratio (\emph{V} or \eqn{Eta^{2}}{Eta^2}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. This function provides the computation of \emph{V} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). -The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} @@ -72,7 +72,7 @@ Use the internal \code{state} and \code{county} arguments within the \code{\link \emph{V} removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{V} can range in value from -Inf to Inf. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, and census tract \code{geo_large = 'tract'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{V} value returned is NA. If the larger geographical unit is Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a Core Based Statistical Area are considered in the \emph{V} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested Core Based Statistical Areas are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{V} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{V} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{V} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{V} computation. } \examples{ \dontrun{ From 50ba11cafb10d48204be15df42401016c6716f70 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Tue, 20 Aug 2024 18:51:55 -0400 Subject: [PATCH 22/23] =?UTF-8?q?=F0=9F=94=80=20Merge=20`branch:dev=5Fwhit?= =?UTF-8?q?e=5Fblau`=20into=20`branch:main`=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial commit for branch "dev_white_blau" (ndi v0.1.6.9001) * Added `white_blau()` function to compute an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0) * `units` is now Imports * Reformatted functions for consistent internal structure * Add example for `white_blau()` in vignette and README * Updated examples in functions to better describe the metrics * Updated documentation formatting of metric names in all functions --- DESCRIPTION | 15 +- NAMESPACE | 5 + NEWS.md | 14 +- R/anthopolos.R | 71 ++-- R/atkinson.R | 111 ++--- R/bell.R | 112 ++--- R/bemanian_beyer.R | 104 ++--- R/bravo.R | 71 ++-- R/duncan.R | 111 ++--- R/gini.R | 24 +- R/globals.R | 4 +- R/hoover.R | 106 ++--- R/krieger.R | 31 +- R/messer.R | 9 +- R/ndi-package.R | 5 +- R/powell_wiley.R | 9 +- R/sudano.R | 107 +++-- R/utils.R | 25 ++ R/white.R | 112 ++--- R/white_blau.R | 435 ++++++++++++++++++++ README.md | 63 ++- cran-comments.md | 13 +- inst/CITATION | 51 ++- man/anthopolos.Rd | 11 +- man/atkinson.Rd | 6 +- man/bell.Rd | 2 +- man/bemanian_beyer.Rd | 4 +- man/bravo.Rd | 11 +- man/duncan.Rd | 2 +- man/figures/sp.png | Bin 0 -> 301227 bytes man/gini.Rd | 6 +- man/hoover.Rd | 4 +- man/krieger.Rd | 4 +- man/messer.Rd | 9 +- man/ndi-package.Rd | 4 +- man/powell_wiley.Rd | 9 +- man/sudano.Rd | 10 +- man/white.Rd | 6 +- man/white_blau.Rd | 102 +++++ tests/testthat/test-white_blau.R | 104 +++++ vignettes/vignette.Rmd | 219 ++++++---- vignettes/vignette.html | 673 ++++++++++++++++++++----------- 42 files changed, 1914 insertions(+), 880 deletions(-) create mode 100644 R/white_blau.R create mode 100644 man/figures/sp.png create mode 100644 man/white_blau.Rd create mode 100644 tests/testthat/test-white_blau.R diff --git a/DESCRIPTION b/DESCRIPTION index 1aa83d4..dd6e0a2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ndi Title: Neighborhood Deprivation Indices -Version: 0.1.6.9000 -Date: 2024-08-19 +Version: 0.1.6.9001 +Date: 2024-08-20 Authors@R: c(person(given = "Ian D.", family = "Buller", @@ -33,7 +33,7 @@ Description: Computes various metrics of socio-economic deprivation and disparit , (4) compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) , (5) compute the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson - (1970) , (6) aspatial racial/ethnic Isolation + (1970) , (6) aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) , (7) aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) , @@ -41,10 +41,12 @@ Description: Computes various metrics of socio-economic deprivation and disparit and Sudano et al. (2013) , (9) aspatial racial/ethnic Local Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) - , and (10) aspatial racial/ethnic Delta (DEL) + , (10) aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; - LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can - retrieve the aspatial Gini Index (G) based Gini (1921) . + LC:60007089), and (11) an index of spatial proximity based on White (1986) + and Blau (1977; ISBN-13:978-0-029-03660-0). Also using data + from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index + (G) based Gini (1921) . License: Apache License (>= 2.0) Encoding: UTF-8 LazyData: true @@ -64,6 +66,7 @@ Imports: tidycensus, tidyr, tigris, + units, utils Suggests: DescTools, diff --git a/NAMESPACE b/NAMESPACE index f57fcd6..cf60a1e 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -13,12 +13,15 @@ export(messer) export(powell_wiley) export(sudano) export(white) +export(white_blau) import(dplyr) importFrom(MASS,ginv) importFrom(Matrix,sparseMatrix) importFrom(car,logit) importFrom(psych,alpha) importFrom(psych,principal) +importFrom(sf,st_centroid) +importFrom(sf,st_distance) importFrom(sf,st_drop_geometry) importFrom(sf,st_geometry) importFrom(sf,st_intersects) @@ -40,4 +43,6 @@ importFrom(tidyr,separate) importFrom(tigris,combined_statistical_areas) importFrom(tigris,core_based_statistical_areas) importFrom(tigris,metro_divisions) +importFrom(units,drop_units) +importFrom(units,set_units) importFrom(utils,stack) diff --git a/NEWS.md b/NEWS.md index c4fdedb..ab7835a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,20 +1,24 @@ # ndi (development version) -## ndi v0.1.6.9000 +## ndi v0.1.6.9001 ### New Features * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) -* Added `geo_large = 'cbsa'` for computing Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. +* Added `white_blau()` function to compute an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0) +* Added `geo_large = 'cbsa'` for Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()`, `white_blau()` functions. * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) ### Updates * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA -* `tigris` is now Imports +* `tigris` and `units` are now Imports * 'package.R' deprecated. Replaced with 'ndi-package.R' * Re-formatted code and documentation throughout for consistent readability * Updated documentation about value range of *V* (White) from `{0 to 1}` to `{-Inf to Inf}` -* Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states -* Updated documentation formatting of metric names in most functions +* Add examples for `hoover()` and `white_blau()` in vignette and README +* Reformatted functions for consistent internal structure +* Updated examples in vignette to showcase a larger variety of U.S. states +* Updated examples in functions to better describe the metrics +* Updated documentation formatting of metric names in all functions ## ndi v0.1.5 diff --git a/R/anthopolos.R b/R/anthopolos.R index c5ef606..1d54da1 100644 --- a/R/anthopolos.R +++ b/R/anthopolos.R @@ -59,7 +59,8 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Tract-level metric (2020) +#' # Racial Isolation Index of Black populations +#' ## of census tracts within Georgia, U.S.A., counties (2020) #' anthopolos( #' geo = 'tract', #' state = 'GA', @@ -67,14 +68,6 @@ #' subgroup = c('NHoLB', 'HoLB') #' ) #' -#' # County-level metric (2020) -#' anthopolos( -#' geo = 'county', -#' state = 'GA', -#' year = 2020, -#' subgroup = c('NHoLB', 'HoLB') -#' ) -#' #' } #' anthopolos <- function(geo = 'tract', @@ -146,7 +139,7 @@ anthopolos <- function(geo = 'tract', in_names <- paste0(names(selected_vars), 'E') # Acquire RI variables and sf geometries - ri_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo, year = year, @@ -158,16 +151,16 @@ anthopolos <- function(geo = 'tract', )) if (geo == 'tract') { - ri_data <- ri_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - ri_data <- ri_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } - ri_data <- ri_data %>% - dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ri_data[, in_names[-1]]))) + out_dat <- out_dat %>% + dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(out_dat[, in_names[-1]]))) # Compute RI ## From Anthopolos et al. (2011) https://doi.org/10.1016/j.sste.2011.06.002 @@ -182,35 +175,35 @@ anthopolos <- function(geo = 'tract', ### Entries of the main diagonal (since i∈∂_{i}, w_{ij} = w_{ii} when j = i) of w_{ij} are set to 1.5 ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts - ## Geospatial adjacency matrix (wij) - tmp <- ri_data %>% + ## Geospatial adjacency matrix (w_ij) + tmp <- out_dat %>% sf::st_geometry() %>% sf::st_intersects(sparse = TRUE) - names(tmp) <- as.character(seq_len(nrow(ri_data))) - tmpL <- length(tmp) - tmpcounts <- unlist(Map(length, tmp)) - tmpi <- rep(1:tmpL, tmpcounts) - tmpj <- unlist(tmp) - wij <- Matrix::sparseMatrix( - i = tmpi, - j = tmpj, + names(tmp) <- as.character(seq_len(nrow(out_dat))) + tmp_L <- length(tmp) + tmp_counts <- unlist(Map(length, tmp)) + tmp_i <- rep(1:tmp_L, tmp_counts) + tmp_j <- unlist(tmp) + w_ij <- Matrix::sparseMatrix( + i = tmp_i, + j = tmp_j, x = 1, - dims = c(tmpL, tmpL) + dims = c(tmp_L, tmp_L) ) - diag(wij) <- 1.5 + diag(w_ij) <- 1.5 ## Compute - ri_data <- ri_data %>% + out_dat <- out_dat %>% sf::st_drop_geometry() # drop geometries (can join back later) - RIim <- list() - for (i in 1:dim(wij)[1]) { - RIim[[i]] <- sum(as.matrix(wij[i,]) * ri_data[, 'subgroup']) / - sum(as.matrix(wij[i,]) * ri_data[, 'TotalPopE']) + out_tmp <- list() + for (i in 1:dim(w_ij)[1]) { + out_tmp[[i]] <- sum(as.matrix(w_ij[i,]) * out_dat[, 'subgroup']) / + sum(as.matrix(w_ij[i,]) * out_dat[, 'TotalPopE']) } - ri_data$RI <- unlist(RIim) + out_dat$RI <- unlist(out_tmp) # Warning for missingness of census characteristics - missingYN <- ri_data[, in_names] + missingYN <- out_dat[, in_names] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -234,16 +227,16 @@ anthopolos <- function(geo = 'tract', # Format output if (geo == 'tract') { - ri <- ri_data %>% + out <- out_dat %>% dplyr::select(c('GEOID', 'state', 'county', 'tract', 'RI', dplyr::all_of(in_names))) - names(ri) <- c('GEOID', 'state', 'county', 'tract', 'RI', out_names) + names(out) <- c('GEOID', 'state', 'county', 'tract', 'RI', out_names) } else { - ri <- ri_data %>% + out <- out_dat %>% dplyr::select(c('GEOID', 'state', 'county', 'RI', dplyr::all_of(in_names))) - names(ri) <- c('GEOID', 'state', 'county', 'RI', out_names) + names(out) <- c('GEOID', 'state', 'county', 'RI', out_names) } - ri <- ri %>% + out <- out %>% dplyr::mutate( state = stringr::str_trim(state), county = stringr::str_trim(county) @@ -251,7 +244,7 @@ anthopolos <- function(geo = 'tract', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ri = ri, missing = missingYN) + out <- list(ri = out, missing = missingYN) return(out) } diff --git a/R/atkinson.R b/R/atkinson.R index cc11355..f853eb0 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -68,14 +68,14 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Atkinson Index of non-Hispanic Black populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' # Atkinson Index (a measure of the evenness) of Black populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' atkinson( #' geo_large = 'county', #' geo_small = 'tract', #' state = 'GA', #' year = 2020, -#' subgroup = 'NHoLB' +#' subgroup = c('NHoLB', 'HoLB') #' ) #' #' } @@ -152,7 +152,7 @@ atkinson <- function(geo_large = 'county', in_subgroup <- paste0(subgroup, 'E') # Acquire AI variables and sf geometries - ai_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -166,16 +166,16 @@ atkinson <- function(geo_large = 'county', # Format output if (geo_small == 'county') { - ai_data <- ai_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - ai_data <- ai_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - ai_data <- ai_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -185,7 +185,7 @@ atkinson <- function(geo_large = 'county', # Grouping IDs for AI computation if (geo_large == 'state') { - ai_data <- ai_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = STATEFP, state = stringr::str_trim(state) @@ -193,7 +193,7 @@ atkinson <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - ai_data <- ai_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), @@ -202,7 +202,7 @@ atkinson <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'tract') { - ai_data <- ai_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), @@ -212,17 +212,17 @@ atkinson <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(ai_data, dat_cbsa) - ai_data <- ai_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -231,17 +231,17 @@ atkinson <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(ai_data, dat_csa) - ai_data <- ai_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -250,17 +250,17 @@ atkinson <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(ai_data, dat_metro) - ai_data <- ai_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -271,10 +271,10 @@ atkinson <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic subgroup population if (length(in_subgroup) == 1) { - ai_data <- ai_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[, in_subgroup]) } else { - ai_data <- ai_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } @@ -295,8 +295,8 @@ atkinson <- function(geo_large = 'county', ## A_{\epsilon}(x_{1},...,x_{n}) = 1 - \frac{M_{1-\epsilon}(x_{1},...,x_{n})}{M_{1}(x_{1},...,x_{n})} ## Compute - AItmp <- ai_data %>% - split(., f = list(ai_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = ai_fun, epsilon = epsilon, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate( @@ -306,7 +306,7 @@ atkinson <- function(geo_large = 'county', dplyr::select(AI, oid) # Warning for missingness of census characteristics - missingYN <- as.data.frame(ai_data[, in_subgroup]) + missingYN <- as.data.frame(out_dat[, in_subgroup]) names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -330,8 +330,8 @@ atkinson <- function(geo_large = 'county', # Format output if (geo_large == 'state') { - ai <- ai_data %>% - dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -339,8 +339,8 @@ atkinson <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'county') { - ai <- ai_data %>% - dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -348,8 +348,8 @@ atkinson <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { - ai <- ai_data %>% - dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, tract, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -357,45 +357,48 @@ atkinson <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { - ai <- ai_data %>% - dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, cbsa, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, cbsa, AI) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'csa') { - ai <- ai_data %>% - dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, csa, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, csa, AI) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'metro') { - ai <- ai_data %>% - dplyr::left_join(AItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, metro, AI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, metro, AI) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } - ai <- ai %>% + out <- out %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - ai_data <- ai_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ai = ai, ai_data = ai_data, missing = missingYN) + out <- list(ai = out, ai_data = out_dat, missing = missingYN) return(out) } diff --git a/R/bell.R b/R/bell.R index 62ac4e0..c1097b4 100644 --- a/R/bell.R +++ b/R/bell.R @@ -67,7 +67,7 @@ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' #' # Isolation of non-Hispanic Black vs. non-Hispanic white populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' bell( #' geo_large = 'county', #' geo_small = 'tract', @@ -176,7 +176,7 @@ bell <- function(geo_large = 'county', in_subgroup_ixn <- paste0(subgroup_ixn, 'E') # Acquire II variables and sf geometries - ii_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -187,20 +187,19 @@ bell <- function(geo_large = 'county', ... ) )) - # Format output if (geo_small == 'county') { - ii_data <- ii_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - ii_data <- ii_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - ii_data <- ii_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -210,7 +209,7 @@ bell <- function(geo_large = 'county', # Grouping IDs for II computation if (geo_large == 'state') { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = STATEFP, state = stringr::str_trim(state) @@ -218,7 +217,7 @@ bell <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), @@ -227,7 +226,7 @@ bell <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'tract') { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), @@ -237,17 +236,17 @@ bell <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(ii_data, dat_cbsa) - ii_data <- ii_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -256,17 +255,17 @@ bell <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(ii_data, dat_csa) - ii_data <- ii_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -275,17 +274,17 @@ bell <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(ii_data, dat_metro) - ii_data <- ii_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -296,18 +295,18 @@ bell <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[, in_subgroup]) } else { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } ## Count of racial/ethnic interaction subgroup population if (length(in_subgroup_ixn) == 1) { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup_ixn = .[, in_subgroup_ixn]) } else { - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup_ixn = rowSums(.[, in_subgroup_ixn])) } @@ -322,8 +321,8 @@ bell <- function(geo_large = 'county', ## If x_{i} = y_{i}, then computes the average isolation experienced by members of subgroup population X ## Compute - IItmp <- ii_data %>% - split(., f = list(ii_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = ii_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate( @@ -333,7 +332,7 @@ bell <- function(geo_large = 'county', dplyr::select(II, oid) # Warning for missingness of census characteristics - missingYN <- ii_data[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] + missingYN <- out_dat[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -357,8 +356,8 @@ bell <- function(geo_large = 'county', # Format output if (geo_large == 'state') { - ii <- ii_data %>% - dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -366,8 +365,8 @@ bell <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'county') { - ii <- ii_data %>% - dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -375,8 +374,8 @@ bell <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { - ii <- ii_data %>% - dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, tract, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -384,45 +383,48 @@ bell <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { - ii <- ii_data %>% - dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, cbsa, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, cbsa, II) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'csa') { - ii <- ii_data %>% - dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, csa, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, csa, II) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'metro') { - ii <- ii_data %>% - dplyr::left_join(IItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, metro, II) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, metro, II) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } - ii <- ii %>% + out <- out %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - ii_data <- ii_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ii = ii, ii_data = ii_data, missing = missingYN) + out <- list(ii = out, ii_data = out_dat, missing = missingYN) return(out) } diff --git a/R/bemanian_beyer.R b/R/bemanian_beyer.R index 55f41db..646bf4e 100644 --- a/R/bemanian_beyer.R +++ b/R/bemanian_beyer.R @@ -69,8 +69,8 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Isolation of non-Hispanic Black vs. non-Hispanic white populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' # Local Exposure and Isolation of non-Hispanic Black vs. non-Hispanic white populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' bemanian_beyer( #' geo_large = 'county', #' geo_small = 'tract', @@ -179,7 +179,7 @@ bemanian_beyer <- function(geo_large = 'county', in_subgroup_ixn <- paste0(subgroup_ixn, 'E') # Acquire LEx/Is variables and sf geometries - lexis_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -193,16 +193,16 @@ bemanian_beyer <- function(geo_large = 'county', # Format output if (geo_small == 'county') { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -212,7 +212,7 @@ bemanian_beyer <- function(geo_large = 'county', # Grouping IDs for LEx/Is computation if (geo_large == 'state') { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = STATEFP, state = stringr::str_trim(state) @@ -220,7 +220,7 @@ bemanian_beyer <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste(STATEFP, COUNTYFP, sep = ''), state = stringr::str_trim(state), @@ -229,7 +229,7 @@ bemanian_beyer <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'tract') { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste(STATEFP, COUNTYFP, TRACTCE, sep = ''), state = stringr::str_trim(state), @@ -239,17 +239,17 @@ bemanian_beyer <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(lexis_data, dat_cbsa) - lexis_data <- lexis_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -258,17 +258,17 @@ bemanian_beyer <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(lexis_data, dat_csa) - lexis_data <- lexis_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -277,17 +277,17 @@ bemanian_beyer <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(lexis_data, dat_metro) - lexis_data <- lexis_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -298,18 +298,18 @@ bemanian_beyer <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[, in_subgroup]) } else { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } ## Count of racial/ethnic interaction subgroup population if (length(in_subgroup_ixn) == 1) { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup_ixn = .[, in_subgroup_ixn]) } else { - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup_ixn = rowSums(.[, in_subgroup_ixn])) } @@ -325,13 +325,13 @@ bemanian_beyer <- function(geo_large = 'county', ## If m = n, then computes the simple isolation experienced by members of subgroup population m ## Compute - LExIstmp <- lexis_data %>% - split(., f = list(lexis_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = lexis_fun, omit_NAs = omit_NAs) %>% do.call('rbind', .) # Warning for missingness of census characteristics - missingYN <- lexis_data[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] + missingYN <- out_dat[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -354,55 +354,55 @@ bemanian_beyer <- function(geo_large = 'county', } # Format output - lexis <- lexis_data %>% - dplyr::left_join(LExIstmp, by = dplyr::join_by(GEOID)) + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(GEOID)) if (geo_small == 'state') { - lexis <- lexis %>% + out <- out %>% dplyr::select(GEOID, state, LExIs) } if (geo_small == 'county') { - lexis <- lexis %>% + out <- out %>% dplyr::select(GEOID, state, county, LExIs) } if (geo_small == 'tract') { - lexis <- lexis %>% + out <- out %>% dplyr::select(GEOID, state, county, tract, LExIs) } if (geo_small == 'block group') { - lexis <- lexis %>% + out <- out %>% dplyr::select(GEOID, state, county, tract, block.group, LExIs) } if (geo_large == 'cbsa') { - lexis <- lexis_data %>% + out <- out_dat %>% dplyr::select(GEOID, cbsa) %>% - dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% + dplyr::left_join(out, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(cbsa, .after = county) } if (geo_large == 'csa') { - lexis <- lexis_data %>% + out <- out_dat %>% dplyr::select(GEOID, csa) %>% - dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% + dplyr::left_join(out, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(csa, .after = county) } if (geo_large == 'metro') { - lexis <- lexis_data %>% + out <- out_dat %>% dplyr::select(GEOID, metro) %>% - dplyr::left_join(lexis, ., by = dplyr::join_by(GEOID)) %>% + dplyr::left_join(out, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(metro, .after = county) } - lexis <- lexis %>% + out <- out %>% unique(.) %>% .[.$GEOID != 'NANA',] %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - lexis_data <- lexis_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(lexis = lexis, lexis_data = lexis_data, missing = missingYN) + out <- list(lexis = out, lexis_data = out_dat, missing = missingYN) return(out) } diff --git a/R/bravo.R b/R/bravo.R index b2b9cd2..c20bdea 100644 --- a/R/bravo.R +++ b/R/bravo.R @@ -46,7 +46,8 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Tract-level metric (2020) +#' # Educational Isolation Index of less than some college or associate's degree attainment +#' ## of census tracts within Georgia, U.S.A., counties (2020) #' bravo( #' geo = 'tract', #' state = 'GA', @@ -54,14 +55,6 @@ #' subgroup = c('LtHS', 'HSGiE') #' ) #' -#' # County-level metric (2020) -#' bravo( -#' geo = 'county', -#' state = 'GA', -#' year = 2020, -#' subgroup = c('LtHS', 'HSGiE') -#' ) -#' #' } #' bravo <- function(geo = 'tract', @@ -212,7 +205,7 @@ bravo <- function(geo = 'tract', in_names <- paste0(names(selected_vars), 'E') # Acquire EI variables and sf geometries - ei_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo, year = year, @@ -224,16 +217,16 @@ bravo <- function(geo = 'tract', )) if (geo == 'tract') { - ei_data <- ei_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - ei_data <- ei_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } - ei_data <- ei_data %>% - dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(ei_data[, in_names[-1]]))) + out_dat <- out_dat %>% + dplyr::mutate(subgroup = rowSums(sf::st_drop_geometry(out_dat[, in_names[-1]]))) # Compute EI ## From Bravo et al. (2021) https://doi.org/10.3390/ijerph18179384 @@ -248,33 +241,33 @@ bravo <- function(geo = 'tract', ### Entries of the main diagonal (since i∈∂_{i}, w_{ij} = w_{ii} when j = i) of w_{ij} are set to 1.5 ### such that the weight of the index unit, i, is larger than the weights assigned to adjacent tracts - ## Geospatial adjacency matrix (wij) - tmp <- sf::st_intersects(sf::st_geometry(ei_data), sparse = TRUE) - names(tmp) <- as.character(seq_len(nrow(ei_data))) - tmpL <- length(tmp) - tmpcounts <- unlist(Map(length, tmp)) - tmpi <- rep(1:tmpL, tmpcounts) - tmpj <- unlist(tmp) - wij <- Matrix::sparseMatrix( - i = tmpi, - j = tmpj, + ## Geospatial adjacency matrix (w_ij) + tmp <- sf::st_intersects(sf::st_geometry(out_dat), sparse = TRUE) + names(tmp) <- as.character(seq_len(nrow(out_dat))) + tmp_L <- length(tmp) + tmp_counts <- unlist(Map(length, tmp)) + tmp_i <- rep(1:tmp_L, tmp_counts) + tmp_j <- unlist(tmp) + w_ij <- Matrix::sparseMatrix( + i = tmp_i, + j = tmp_j, x = 1, - dims = c(tmpL, tmpL) + dims = c(tmp_L, tmp_L) ) - diag(wij) <- 1.5 + diag(w_ij) <- 1.5 ## Compute - ei_data <- ei_data %>% + out_dat <- out_dat %>% sf::st_drop_geometry() # drop geometries (can join back later) - EIim <- list() - for (i in 1:dim(wij)[1]) { - EIim[[i]] <- sum(as.matrix(wij[i,]) * ei_data[, 'subgroup']) / - sum(as.matrix(wij[i,]) * ei_data[, 'TotalPopE']) + out_tmp <- list() + for (i in 1:dim(w_ij)[1]) { + out_tmp[[i]] <- sum(as.matrix(w_ij[i,]) * out_dat[, 'subgroup']) / + sum(as.matrix(w_ij[i,]) * out_dat[, 'TotalPopE']) } - ei_data$EI <- unlist(EIim) + out_dat$EI <- unlist(out_tmp) # Warning for missingness of census characteristics - missingYN <- ei_data[, in_names] + missingYN <- out_dat[, in_names] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -298,7 +291,7 @@ bravo <- function(geo = 'tract', # Format output if (geo == 'tract') { - ei <- ei_data %>% + out <- out_dat %>% dplyr::select(c( 'GEOID', 'state', @@ -307,14 +300,14 @@ bravo <- function(geo = 'tract', 'EI', dplyr::all_of(in_names) )) - names(ei) <- c('GEOID', 'state', 'county', 'tract', 'EI', out_names) + names(out) <- c('GEOID', 'state', 'county', 'tract', 'EI', out_names) } else { - ei <- ei_data %>% + out <- out_dat %>% dplyr::select(c('GEOID', 'state', 'county', 'EI', dplyr::all_of(in_names))) - names(ei) <- c('GEOID', 'state', 'county', 'EI', out_names) + names(out) <- c('GEOID', 'state', 'county', 'EI', out_names) } - ei <- ei %>% + out <- out %>% dplyr::mutate( state = stringr::str_trim(state), county = stringr::str_trim(county) @@ -322,7 +315,7 @@ bravo <- function(geo = 'tract', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ei = ei, missing = missingYN) + out <- list(ei = out, missing = missingYN) return(out) } diff --git a/R/duncan.R b/R/duncan.R index 9f68b3a..e95bd29 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -67,7 +67,7 @@ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' #' # Dissimilarity Index of non-Hispanic Black vs. non-Hispanic white populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' duncan( #' geo_large = 'county', #' geo_small = 'tract', @@ -175,7 +175,7 @@ duncan <- function(geo_large = 'county', in_subgroup_ref <- paste0(subgroup_ref, 'E') # Acquire DI variables and sf geometries - di_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -189,16 +189,16 @@ duncan <- function(geo_large = 'county', # Format output if (geo_small == 'county') { - di_data <- di_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - di_data <- di_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - di_data <- di_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -208,7 +208,7 @@ duncan <- function(geo_large = 'county', # Grouping IDs for DI computation if (geo_large == 'state') { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = STATEFP, state = stringr::str_trim(state) @@ -216,7 +216,7 @@ duncan <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'tract') { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), @@ -225,7 +225,7 @@ duncan <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), @@ -235,17 +235,17 @@ duncan <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(di_data, dat_cbsa) - di_data <- di_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -254,17 +254,17 @@ duncan <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(di_data, dat_csa) - di_data <- di_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -273,17 +273,17 @@ duncan <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(di_data, dat_metro) - di_data <- di_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -294,18 +294,18 @@ duncan <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[, in_subgroup]) } else { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } ## Count of racial/ethnic reference subgroup population if (length(in_subgroup_ref) == 1) { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup_ref = .[, in_subgroup_ref]) } else { - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup_ref = rowSums(.[, in_subgroup_ref])) } @@ -320,8 +320,8 @@ duncan <- function(geo_large = 'county', ## Y_{jt} denotes the racial/ethnic referent subgroup population of larger geography j at time t ## Compute - DItmp <- di_data %>% - split(., f = list(di_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = di_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate( @@ -331,7 +331,7 @@ duncan <- function(geo_large = 'county', dplyr::select(DI, oid) # Warning for missingness of census characteristics - missingYN <- di_data[, c(in_subgroup, in_subgroup_ref)] + missingYN <- out_dat[, c(in_subgroup, in_subgroup_ref)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -355,8 +355,8 @@ duncan <- function(geo_large = 'county', # Format output if (geo_large == 'state') { - di <- di_data %>% - dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -364,8 +364,8 @@ duncan <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'county') { - di <- di_data %>% - dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -373,8 +373,8 @@ duncan <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { - di <- di_data %>% - dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, tract, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -382,45 +382,48 @@ duncan <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { - di <- di_data %>% - dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, cbsa, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, cbsa, DI) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'csa') { - di <- di_data %>% - dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, csa, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, csa, DI) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'metro') { - di <- di_data %>% - dplyr::left_join(DItmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, metro, DI) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, metro, DI) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } - di <- di %>% + out <- out %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - di_data <- di_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(di = di, di_data = di_data, missing = missingYN) + out <- list(di = out, di_data = out_dat, missing = missingYN) return(out) } diff --git a/R/gini.R b/R/gini.R index 8f3c1d4..0f97d2b 100644 --- a/R/gini.R +++ b/R/gini.R @@ -34,12 +34,10 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Tract-level metric (2020) +#' # Gini Index of income inequality +#' ## of census tracts within Georgia, U.S.A., counties (2020) #' gini(geo = 'tract', state = 'GA', year = 2020) #' -#' # County-level metric (2020) -#' gini(geo = 'county', state = 'GA', year = 2020) -#' #' } #' gini <- function(geo = 'tract', @@ -55,7 +53,7 @@ gini <- function(geo = 'tract', vars <- c(gini = 'B19083_001') # Acquire Gini Index - gini_data <- suppressMessages(suppressWarnings( + tmp_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo, year = year, @@ -66,19 +64,19 @@ gini <- function(geo = 'tract', )) if (geo == 'tract') { - gini_data <- gini_data %>% + tmp_dat <- tmp_dat %>% tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - gini_data <- gini_data %>% + tmp_dat <- tmp_dat %>% tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } - gini_data <- gini_data %>% + tmp_dat <- tmp_dat %>% dplyr::mutate(gini = giniE) # Warning for missingness of census characteristics - missingYN <- gini_data %>% + missingYN <- tmp_dat %>% dplyr::select(gini) %>% tidyr::pivot_longer( cols = dplyr::everything(), @@ -100,14 +98,14 @@ gini <- function(geo = 'tract', } if (geo == 'tract') { - gini <- gini_data %>% + out <- tmp_dat %>% dplyr::select(GEOID, state, county, tract, gini) } else { - gini <- gini_data %>% + out <- tmp_dat %>% dplyr::select(GEOID, state, county, gini) } - gini <- gini %>% + out <- out %>% dplyr::mutate( state = stringr::str_trim(state), county = stringr::str_trim(county) @@ -115,7 +113,7 @@ gini <- function(geo = 'tract', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(gini = gini, missing = missingYN) + out <- list(gini = out, missing = missingYN) return(out) } diff --git a/R/globals.R b/R/globals.R index 78f646a..94e0022 100644 --- a/R/globals.R +++ b/R/globals.R @@ -254,6 +254,8 @@ globalVariables( 'V', 'LQ', 'LExIs', - 'DEL' + 'DEL', + 'SP', + 'km' ) ) diff --git a/R/hoover.R b/R/hoover.R index 8b45050..2146a3c 100644 --- a/R/hoover.R +++ b/R/hoover.R @@ -65,8 +65,8 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Delta (a measure of concentration) of non-Hispanic Black vs. non-Hispanic white populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' # Delta (a measure of concentration) of non-Hispanic Black populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' hoover( #' geo_large = 'county', #' geo_small = 'tract', @@ -146,7 +146,7 @@ hoover <- function(geo_large = 'county', in_subgroup <- paste0(subgroup, 'E') # Acquire DEL variables and sf geometries - del_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -160,16 +160,16 @@ hoover <- function(geo_large = 'county', # Format output if (geo_small == 'county') { - del_data <- del_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - del_data <- del_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - del_data <- del_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), block.group = gsub('[^0-9\\.]', '', block.group) @@ -178,7 +178,7 @@ hoover <- function(geo_large = 'county', # Grouping IDs for DEL computation if (geo_large == 'state') { - del_data <- del_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = STATEFP, state = stringr::str_trim(state) @@ -186,7 +186,7 @@ hoover <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - del_data <- del_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), @@ -195,7 +195,7 @@ hoover <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'tract') { - del_data <- del_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), @@ -205,17 +205,17 @@ hoover <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(del_data, dat_cbsa) - del_data <- del_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -224,17 +224,17 @@ hoover <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(del_data, dat_csa) - del_data <- del_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -243,17 +243,17 @@ hoover <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(del_data, dat_metro) - del_data <- del_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -264,10 +264,10 @@ hoover <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - del_data <- del_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[ , in_subgroup]) } else { - del_data <- del_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[ , in_subgroup])) } @@ -281,15 +281,15 @@ hoover <- function(geo_large = 'county', ## a_{i} denotes the land area of geographical unit i ## Compute - DELtmp <- del_data %>% - split(., f = list(del_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = del_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate(DEL = values, oid = ind) %>% dplyr::select(DEL, oid) # Warning for missingness of census characteristics - missingYN <- del_data[ , c(in_subgroup, 'ALAND')] + missingYN <- out_dat[ , c(in_subgroup, 'ALAND')] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer(cols = dplyr::everything(), names_to = 'variable', values_to = 'val') %>% @@ -309,8 +309,8 @@ hoover <- function(geo_large = 'county', # Format output if (geo_large == 'state') { - del <- del_data %>% - dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, DEL) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -318,8 +318,8 @@ hoover <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] } if (geo_large == 'county') { - del <- del_data %>% - dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, DEL) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -327,8 +327,8 @@ hoover <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] } if (geo_large == 'tract') { - del <- del_data %>% - dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, tract, DEL) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -336,48 +336,48 @@ hoover <- function(geo_large = 'county', .[.$GEOID != 'NANA', ] } if (geo_large == 'cbsa') { - del <- del_data %>% - dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, cbsa, DEL) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, cbsa, DEL) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% - dplyr::filter(complete.cases(.)) + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'csa') { - del <- del_data %>% - dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, csa, DEL) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, csa, DEL) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% - dplyr::filter(complete.cases(.)) + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'metro') { - del <- del_data %>% - dplyr::left_join(DELtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, metro, DEL) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, metro, DEL) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% - dplyr::filter(complete.cases(.)) + dplyr::filter(stats::complete.cases(.)) } - del <- del %>% + out <- out %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - del_data <- del_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(del = del, del_data = del_data, missing = missingYN) + out <- list(del = out, del_data = out_dat, missing = missingYN) return(out) } diff --git a/R/krieger.R b/R/krieger.R index cc104eb..4dfc1de 100644 --- a/R/krieger.R +++ b/R/krieger.R @@ -49,10 +49,10 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Tract-level metric (2020) +#' # Tract-level metrics (2020) #' krieger(geo = 'tract', state = 'GA', year = 2020) #' -#' # County-level metric (2020) +#' # County-level metrics (2020) #' krieger(geo = 'county', state = 'GA', year = 2020) #' #' } @@ -123,7 +123,7 @@ krieger <- function(geo = 'tract', ) # Acquire ICE variables - ice_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo, year = year, @@ -133,17 +133,16 @@ krieger <- function(geo = 'tract', ) )) - if (geo == 'tract') { - ice_data <- ice_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } else { - ice_data <- ice_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME, into = c('county', 'state'), sep = ',') } - ice_data <- ice_data %>% + out_dat <- out_dat %>% dplyr::mutate( TotalPop_inc = TotalPopiE, TotalPop_edu = TotalPopeduE, @@ -202,7 +201,7 @@ krieger <- function(geo = 'tract', # Sum educational attainment categories # A_{edu} = Less than high school / 12 year / GED # P_{edu} = Four-year college degree or more - ice_data <- ice_data %>% + out_dat <- out_dat %>% dplyr::mutate( A_edu = O25MBD + O25FBD + O25MMD + O25FMD + O25MPSD + O25FPSD + O25MDD + O25FDD, P_edu = O25MNSC + O25FNSC + O25MNt4G + O25FNt4G + O25M5t6G + O25F5t6G + O25M7t8G + @@ -218,7 +217,7 @@ krieger <- function(geo = 'tract', ## According to U.S. Census Bureau Table A-4a ## 'Selected Measures of Household Income Dispersion: 1967 to 2020' if (year < 2016) { - ice_data <- ice_data %>% + out_dat <- out_dat %>% dplyr::mutate( A_inc = B100125i + B125150i + B150200i + O200i, P_inc = U10i + B1015i + B1520i + B2025i, @@ -228,7 +227,7 @@ krieger <- function(geo = 'tract', P_wpcinc = U10nhw + B1015nhw + B1520nhw + B2025nhw ) } else { - ice_data <- ice_data %>% + out_dat <- out_dat %>% dplyr::mutate( A_inc = B125150i + B150200i + O200i, P_inc = U10i + B1015i + B1520i + B2025i + B2530i, @@ -247,7 +246,7 @@ krieger <- function(geo = 'tract', ## P_{i} denotes the count within the highest extreme (e.g., households in 80th income percentile) ## T_{i} denotes the total population in region i (TotalPop) - ice_data <- ice_data %>% + out_dat <- out_dat %>% dplyr::mutate( ICE_inc = (A_inc - P_inc) / TotalPop_inc, ICE_edu = (A_edu - P_edu) / TotalPop_edu, @@ -257,7 +256,7 @@ krieger <- function(geo = 'tract', ) # Warning for missingness of census characteristics - missingYN <- ice_data %>% + missingYN <- out_dat %>% dplyr::select( U10i, B1015i, @@ -333,7 +332,7 @@ krieger <- function(geo = 'tract', # Format output if (geo == 'tract') { - ice <- ice_data %>% + out <- out_dat %>% dplyr::select( GEOID, state, @@ -398,7 +397,7 @@ krieger <- function(geo = 'tract', TotalPop_re ) } else { - ice <- ice_data %>% + out <- out_dat %>% dplyr::select( GEOID, state, @@ -463,7 +462,7 @@ krieger <- function(geo = 'tract', ) } - ice <- ice %>% + out <- out %>% dplyr::mutate( state = stringr::str_trim(state), county = stringr::str_trim(county) @@ -471,7 +470,7 @@ krieger <- function(geo = 'tract', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ice = ice, missing = missingYN) + out <- list(ice = out, missing = missingYN) return(out) } diff --git a/R/messer.R b/R/messer.R index 4ecc470..f8d62ce 100644 --- a/R/messer.R +++ b/R/messer.R @@ -58,14 +58,11 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Tract-level metric (2020) +#' # Tract-level NDI (Messer; 2020) #' messer(geo = 'tract', state = 'GA', year = 2020) #' -#' # Impute NDI for tracts (2020) with missing census information (median values) -#' messer(state = 'tract', 'GA', year = 2020, imp = TRUE) -#' -#' # County-level metric (2020) -#' messer(geo = 'county', state = 'GA', year = 2020) +#' # Impute NDI (Messer; 2020) for tracts with missing census information (median values) +#' messer(state = 'tract', state = 'GA', year = 2020, imp = TRUE) #' #' } #' diff --git a/R/ndi-package.R b/R/ndi-package.R index b4388c7..ccaab32 100644 --- a/R/ndi-package.R +++ b/R/ndi-package.R @@ -2,7 +2,7 @@ #' #' Computes various metrics of socio-economic deprivation and disparity in the United States based on information available from the U.S. Census Bureau. #' -#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (\emph{NDI}) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (\emph{RI}) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (\emph{EI}) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (\emph{ICE}) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (\emph{LQ}) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) , and (10) aspatial racial/ethnic Delta (\emph{DEL}) based on Hoover (1941) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. +#' @details The 'ndi' package computes various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered "spatial" because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are "aspatial" because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation indices (\emph{NDI}) are available: (1) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x} and (2) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. Both are a decomposition of multiple demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward). Using data from the ACS-5 (2005-2009 onward), the package can also compute the (1) spatial Racial Isolation Index (\emph{RI}) based on Anthopolos et al. (2011) \doi{10.1016/j.sste.2011.06.002}, (2) spatial Educational Isolation Index (\emph{EI}) based on Bravo et al. (2021) \doi{10.3390/ijerph18179384}, (3) aspatial Index of Concentration at the Extremes (\emph{ICE}) based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}, (4) aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}, (5) aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}, (6) aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}, (7) aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}, (8) aspatial racial/ethnic Location Quotient (\emph{LQ}) based on Merton (1939) \doi{10.2307/2084686} and Sudano et al. (2013) \doi{10.1016/j.healthplace.2012.09.015}, (9) aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}, (10) aspatial racial/ethnic Delta (\emph{DEL}) based on Hoover (1941) \doi{10.1017/S0022050700052980} and Duncan et al. (1961; LC:60007089), and (11) an index of spatial proximity (\emph{SP}) based on White (1986) \doi{10.2307/3644339} and Blau (1977; ISBN-13:978-0-029-03660-0). Also using data from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. #' #' Key content of the 'ndi' package include:\cr #' @@ -34,6 +34,8 @@ #' #' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. #' +#' \code{\link{white_blau}} Computes an index of spatial proximity based on White (1986) \doi{10.2307/3644339} and Blau (1977; ISBN-13:978-0-029-03660-0). +#' #' \bold{Pre-formatted U.S. Census Data} #' #' \code{\link{DCtracts2020}} A sample dataset containing information about U.S. Census American Community Survey 5-year estimate data for the District of Columbia census tracts (2020). The data are obtained from the \code{\link[tidycensus]{get_acs}} function and formatted for the \code{\link{messer}} and \code{\link{powell_wiley}} functions input. @@ -61,5 +63,6 @@ #' @importFrom tidycensus get_acs #' @importFrom tidyr pivot_longer separate #' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions +#' @importFrom units drop_units set_units #' @importFrom utils stack NULL diff --git a/R/powell_wiley.R b/R/powell_wiley.R index 3c1fc48..8708289 100644 --- a/R/powell_wiley.R +++ b/R/powell_wiley.R @@ -64,14 +64,11 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Tract-level metric (2020) +#' # Tract-level NDI (Powell-Wiley; 2020) #' powell_wiley(geo = 'tract', state = 'GA', year = 2020) #' -#' # Impute NDI for tracts (2020) with missing census information (median values) -#' powell_wiley(state = 'tract', 'GA', year = 2020, imp = TRUE) -#' -#' # County-level metric (2020) -#' powell_wiley(geo = 'county', state = 'GA', year = 2020) +#' # Impute NDI (Powell-Wiley; 2020) for tracts with missing census information (median values) +#' powell_wiley(state = 'tract', state = 'GA', year = 2020, imp = TRUE) #' #' } #' diff --git a/R/sudano.R b/R/sudano.R index 959fad6..317d3b4 100644 --- a/R/sudano.R +++ b/R/sudano.R @@ -65,14 +65,14 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Isolation of non-Hispanic Black populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' # Location Quotient (a measure of relative homogeneity) of Black populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' sudano( -#' geo_large = 'state', -#' geo_small = 'county', +#' geo_large = 'county', +#' geo_small = 'tract', #' state = 'GA', #' year = 2020, -#' subgroup = 'NHoLB' +#' subgroup = c('NHoLB', 'HoLB') #' ) #' #' } @@ -146,7 +146,7 @@ sudano <- function(geo_large = 'county', in_subgroup <- paste0(subgroup, 'E') # Acquire LQ variables and sf geometries - lq_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -158,19 +158,18 @@ sudano <- function(geo_large = 'county', ) )) - # Format output if (geo_small == 'county') { - lq_data <- lq_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - lq_data <- lq_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - lq_data <- lq_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), @@ -180,7 +179,7 @@ sudano <- function(geo_large = 'county', # Grouping IDs for R computation if (geo_large == 'state') { - lq_data <- lq_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = STATEFP, state = stringr::str_trim(state) @@ -188,7 +187,7 @@ sudano <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'tract') { - lq_data <- lq_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), @@ -197,7 +196,7 @@ sudano <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - lq_data <- lq_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), @@ -207,17 +206,17 @@ sudano <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(lq_data, dat_cbsa) - lq_data <- lq_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -226,17 +225,17 @@ sudano <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(lq_data, dat_csa) - lq_data <- lq_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -245,17 +244,17 @@ sudano <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(lq_data, dat_metro) - lq_data <- lq_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -266,10 +265,10 @@ sudano <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - lq_data <- lq_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[, in_subgroup]) } else { - lq_data <- lq_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } @@ -280,13 +279,13 @@ sudano <- function(geo_large = 'county', ## i smaller geography and subgroup m ## Compute - LQtmp <- lq_data %>% - split(., f = list(lq_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = lq_fun, omit_NAs = omit_NAs) %>% do.call('rbind', .) # Warning for missingness of census characteristics - missingYN <- lq_data[, c('TotalPopE', in_subgroup)] + missingYN <- out_dat[, c('TotalPopE', in_subgroup)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -309,55 +308,55 @@ sudano <- function(geo_large = 'county', } # Format output - lq <- lq_data %>% - dplyr::left_join(LQtmp, by = dplyr::join_by(GEOID)) + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(GEOID)) if (geo_small == 'state') { - lq <- lq %>% + out <- out %>% dplyr::select(GEOID, state, LQ) } if (geo_small == 'county') { - lq <- lq %>% + out <- out %>% dplyr::select(GEOID, state, county, LQ) } if (geo_small == 'tract') { - lq <- lq %>% + out <- out %>% dplyr::select(GEOID, state, county, tract, LQ) } if (geo_small == 'block group') { - lq <- lq %>% + out <- out %>% dplyr::select(GEOID, state, county, tract, block.group, LQ) } if (geo_large == 'cbsa') { - lq <- lq_data %>% + out <- out_dat %>% dplyr::select(GEOID, cbsa) %>% - dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% + dplyr::left_join(out, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(cbsa, .after = county) } if (geo_large == 'csa') { - lq <- lq_data %>% + out <- out_dat %>% dplyr::select(GEOID, csa) %>% - dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% + dplyr::left_join(out, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(csa, .after = county) } if (geo_large == 'metro') { - lq <- lq_data %>% + out <- out_dat %>% dplyr::select(GEOID, metro) %>% - dplyr::left_join(lq, ., by = dplyr::join_by(GEOID)) %>% + dplyr::left_join(out, ., by = dplyr::join_by(GEOID)) %>% dplyr::relocate(metro, .after = county) } - lq <- lq %>% + out <- out %>% unique(.) %>% .[.$GEOID != 'NANA',] %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - lq_data <- lq_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(lq = lq, lq_data = lq_data, missing = missingYN) + out <- list(lq = out, lq_data = out_dat, missing = missingYN) return(out) } diff --git a/R/utils.R b/R/utils.R index d2bc362..f7d859d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -119,3 +119,28 @@ del_fun <- function(x, omit_NAs) { ) } } + +# Internal function for an index of spatial proximity (White 1986) +## Returns NA value if only one smaller geography in a larger geography +sp_fun <- function(x, omit_NAs) { + xx <- x[ , c('TotalPopE', 'subgroup', 'subgroup_ref', 'ALAND')] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(sf::st_drop_geometry(xx)), ] } + if (nrow(sf::st_drop_geometry(x)) < 2 || any(sf::st_drop_geometry(xx) < 0) || any(is.na(sf::st_drop_geometry(xx)))) { + NA + } else { + d_ij <- suppressWarnings(sf::st_distance(sf::st_centroid(xx), sf::st_centroid(xx))) + diag(d_ij) <- sqrt(0.6 * xx$ALAND) + c_ij <- -d_ij %>% + units::set_units(value = km) %>% + units::drop_units() %>% + exp() + X <- sum(xx$subgroup, na.rm = TRUE) + Y <- sum(xx$subgroup_ref, na.rm = TRUE) + N <- sum(xx$TotalPopE, na.rm = TRUE) + P_xx <- sum((xx$subgroup * xx$subgroup * c_ij) / X^2, na.rm = TRUE) + P_xy <- sum((xx$subgroup * xx$subgroup_ref * c_ij) / (X * Y), na.rm = TRUE) + P_tt <- sum((xx$TotalPopE * xx$TotalPopE * c_ij) / N^2, na.rm = TRUE) + SP <- ((X * P_xx) + (Y * P_xy)) / (N * P_tt) + return(SP) + } +} diff --git a/R/white.R b/R/white.R index 0754d62..8a0628c 100644 --- a/R/white.R +++ b/R/white.R @@ -65,14 +65,14 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Isolation of non-Hispanic Black populations -#' ## of census tracts within Georgia, U.S.A., counties (2020) +#' # Correlation Ratio (a measure of isolation) of Black populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' white( #' geo_large = 'county', #' geo_small = 'tract', #' state = 'GA', #' year = 2020, -#' subgroup = 'NHoLB' +#' subgroup = c('NHoLB', 'HoLB') #' ) #' #' } @@ -146,7 +146,7 @@ white <- function(geo_large = 'county', in_subgroup <- paste0(subgroup, 'E') # Acquire V variables and sf geometries - v_data <- suppressMessages(suppressWarnings( + out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, year = year, @@ -157,20 +157,19 @@ white <- function(geo_large = 'county', ... ) )) - # Format output if (geo_small == 'county') { - v_data <- v_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') } if (geo_small == 'tract') { - v_data <- v_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) } if (geo_small == 'block group') { - v_data <- v_data %>% + out_dat <- out_dat %>% tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% dplyr::mutate( tract = gsub('[^0-9\\.]', '', tract), block.group = gsub('[^0-9\\.]', '', block.group) @@ -179,12 +178,12 @@ white <- function(geo_large = 'county', # Grouping IDs for R computation if (geo_large == 'state') { - v_data <- v_data %>% + out_dat <- out_dat %>% dplyr::mutate(oid = STATEFP, state = stringr::str_trim(state)) %>% sf::st_drop_geometry() } if (geo_large == 'tract') { - v_data <- v_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP, TRACTCE), state = stringr::str_trim(state), @@ -193,7 +192,7 @@ white <- function(geo_large = 'county', sf::st_drop_geometry() } if (geo_large == 'county') { - v_data <- v_data %>% + out_dat <- out_dat %>% dplyr::mutate( oid = paste0(STATEFP, COUNTYFP), state = stringr::str_trim(state), @@ -203,17 +202,17 @@ white <- function(geo_large = 'county', } if (geo_large == 'cbsa') { stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward - dat_cbsa <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) - win_cbsa <- sf::st_within(v_data, dat_cbsa) - v_data <- v_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 3] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - cbsa = lapply(win_cbsa, function(x) { - tmp <- dat_cbsa[x, 4] %>% sf::st_drop_geometry() + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -222,17 +221,17 @@ white <- function(geo_large = 'county', } if (geo_large == 'csa') { stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward - dat_csa <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) - win_csa <- sf::st_within(v_data, dat_csa) - v_data <- v_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 2] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - csa = lapply(win_csa, function(x) { - tmp <- dat_csa[x, 3] %>% sf::st_drop_geometry() + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -241,17 +240,17 @@ white <- function(geo_large = 'county', } if (geo_large == 'metro') { stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward - dat_metro <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) - win_metro <- sf::st_within(v_data, dat_metro) - v_data <- v_data %>% + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% dplyr::mutate( - oid = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 4] %>% sf::st_drop_geometry() + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist(), - metro = lapply(win_metro, function(x) { - tmp <- dat_metro[x, 5] %>% sf::st_drop_geometry() + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() lapply(tmp, function(x) { if (length(x) == 0) NA else x }) }) %>% unlist() @@ -262,10 +261,10 @@ white <- function(geo_large = 'county', # Count of racial/ethnic subgroup populations ## Count of racial/ethnic comparison subgroup population if (length(in_subgroup) == 1) { - v_data <- v_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = .[, in_subgroup]) } else { - v_data <- v_data %>% + out_dat <- out_dat %>% dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } @@ -277,15 +276,15 @@ white <- function(geo_large = 'county', ## P denotes the proportion of subgroup x of study (reference) area ## Compute - Vtmp <- v_data %>% - split(., f = list(v_data$oid)) %>% + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% lapply(., FUN = v_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate(V = values, oid = ind) %>% dplyr::select(V, oid) # Warning for missingness of census characteristics - missingYN <- v_data[, c('TotalPopE', in_subgroup)] + missingYN <- out_dat[, c('TotalPopE', in_subgroup)] names(missingYN) <- out_names missingYN <- missingYN %>% tidyr::pivot_longer( @@ -309,8 +308,8 @@ white <- function(geo_large = 'county', # Format output if (geo_large == 'state') { - v <- v_data %>% - dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -318,8 +317,8 @@ white <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'county') { - v <- v_data %>% - dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -327,8 +326,8 @@ white <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { - v <- v_data %>% - dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, state, county, tract, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% @@ -336,45 +335,48 @@ white <- function(geo_large = 'county', .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { - v <- v_data %>% - dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, cbsa, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, cbsa, V) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'csa') { - v <- v_data %>% - dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, csa, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, csa, V) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } if (geo_large == 'metro') { - v <- v_data %>% - dplyr::left_join(Vtmp, by = dplyr::join_by(oid)) %>% + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% dplyr::select(oid, metro, V) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% dplyr::select(GEOID, metro, V) %>% .[.$GEOID != 'NANA', ] %>% - dplyr::distinct(GEOID, .keep_all = TRUE) + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) } - v <- v %>% + out <- out %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - v_data <- v_data %>% + out_dat <- out_dat %>% dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(v = v, v_data = v_data, missing = missingYN) + out <- list(v = out, v_data = out_dat, missing = missingYN) return(out) } diff --git a/R/white_blau.R b/R/white_blau.R new file mode 100644 index 0000000..b13e134 --- /dev/null +++ b/R/white_blau.R @@ -0,0 +1,435 @@ +#' An index of spatial proximity based on White (1986) and Blau (1977) +#' +#' Compute an index of spatial proximity (White) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s) as the comparison population. See Details for available choices. +#' @param subgroup_ref Character string specifying the racial/ethnic subgroup(s) as the reference population. See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute an index of spatial proximity (\emph{SP}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on White (1986) \doi{10.2307/3644339} and Blau (1977; ISBN-13:978-0-029-03660-0). This function provides the computation of \emph{SP} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' \emph{SP} is a measure of clustering of racial/ethnic populations within smaller geographical areas that are located within larger geographical areas. \emph{SP} can range in value from 0 to Inf and represents the degree to which an area is a racial or ethnic enclave. A value of 1 indicates there is no differential clustering between subgroup and referent group members. A value greater than 1 indicates subgroup members live nearer to one another than to referent subgroup members. A value less than 1 indicates subgroup live nearer to and referent subgroup members than to their own subgroup members. +#' +#' The metric uses the exponential transform of a distance matrix (kilometers) between smaller geographical area centroids, with a diagonal defined as \code{(0.6*a_{i})^{0.5}} where \code{a_{i}} is the area (square kilometers) of smaller geographical unit \code{i} as defined by White (1983) \doi{10.1086/227768}. +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{SP} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{V} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{SP} computation. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{sp}}{An object of class 'tbl' for the GEOID, name, and \emph{SP} at specified larger census geographies.} +#' \item{\code{sp_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{SP}.} +#' } +#' +#' @import dplyr +#' @importFrom sf st_centroid st_distance st_drop_geometry st_within +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions +#' @importFrom units drop_units set_units +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Index of spatial proximity of non-Hispanic Black vs. non-Hispanic white populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) +#' white_blau( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB', +#' subgroup_ref = 'NHoLW' +#' ) +#' +#' } +#' +white_blau <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + subgroup_ref, + omit_NAs = TRUE, + quiet = FALSE, + ...) { + + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + match.arg( + subgroup_ref, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup, subgroup_ref)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste0(subgroup, 'E') + in_subgroup_ref <- paste0(subgroup_ref, 'E') + + # Acquire SP variables and sf geometries + out_dat <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + # Format output + if (geo_small == 'county') { + out_dat <- out_dat %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') + } + if (geo_small == 'tract') { + out_dat <- out_dat %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + out_dat <- out_dat %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for SP computation + if (geo_large == 'state') { + out_dat <- out_dat %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) + } + if (geo_large == 'tract') { + out_dat <- out_dat %>% + dplyr::mutate( + oid = paste0(STATEFP, COUNTYFP, TRACTCE), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'county') { + out_dat <- out_dat %>% + dplyr::mutate( + oid = paste0(STATEFP, COUNTYFP), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) + } + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% + dplyr::mutate( + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) + } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% + dplyr::mutate( + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% + dplyr::mutate( + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + out_dat <- out_dat %>% + dplyr::mutate(subgroup = as.data.frame(.)[, in_subgroup]) + } else { + out_dat <- out_dat %>% + dplyr::mutate(subgroup = rowSums(as.data.frame(.)[, in_subgroup])) + } + ## Count of racial/ethnic reference subgroup population + if (length(in_subgroup_ref) == 1) { + out_dat <- out_dat %>% + dplyr::mutate(subgroup_ref = as.data.frame(.)[, in_subgroup_ref]) + } else { + out_dat <- out_dat %>% + dplyr::mutate(subgroup_ref = rowSums(as.data.frame(.)[, in_subgroup_ref])) + } + + # Compute SP + ## From White (1986) https://doi.org/10.2307/3644339} + ## D_{jt} = 1/2 \sum_{i=1}^{k} | \frac{x_{ijt}}{X_{jt}}-\frac{y_{ijt}}{Y_{jt}}| + ## Where for k smaller geographies: + ## D_{jt} denotes the DI of larger geography j at time t + ## x_{ijt} denotes the racial/ethnic subgroup population of smaller geography i within larger geography j at time t + ## X_{jt} denotes the racial/ethnic subgroup population of larger geography j at time t + ## y_{ijt} denotes the racial/ethnic referent subgroup population of smaller geography i within larger geography j at time t + ## Y_{jt} denotes the racial/ethnic referent subgroup population of larger geography j at time t + + ## Compute + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% + lapply(., FUN = sp_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate( + SP = values, + oid = ind + ) %>% + dplyr::select(SP, oid) %>% + sf::st_drop_geometry() + + # Warning for missingness of census characteristics + missingYN <- out_dat[, c('TotalPopE', in_subgroup, in_subgroup_ref)] %>% + sf::st_drop_geometry() + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo_large == 'state') { + out <- out_dat %>% + sf::st_drop_geometry() %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, SP) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, SP) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'county') { + out <- out_dat %>% + sf::st_drop_geometry() %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, SP) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, SP) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'tract') { + out <- out_dat %>% + sf::st_drop_geometry() %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, tract, SP) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, SP) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'cbsa') { + out <- out_dat %>% + sf::st_drop_geometry() %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, SP) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, SP) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) + } + if (geo_large == 'csa') { + out <- out_dat %>% + sf::st_drop_geometry() %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, SP) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, SP) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) + } + if (geo_large == 'metro') { + out <- out_dat %>% + sf::st_drop_geometry() %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, SP) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, SP) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) + } + + out <- out %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out_dat <- out_dat %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(sp = out, sp_data = out_dat, missing = missingYN) + + return(out) +} diff --git a/README.md b/README.md index 91bdda7..deb42a9 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ [![DOI](https://zenodo.org/badge/521439746.svg)](https://zenodo.org/badge/latestdoi/521439746) -**Date repository last updated**: 2024-08-19 +**Date repository last updated**: 2024-08-20 ### Overview -The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation index (*NDI*) are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the *ndi* package can also compute the (1) spatial Racial Isolation Index (*RI*) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (*EI*) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (*ICE*) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (*DI*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (*DI*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (*II*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), and (10) aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index (*G*) based on [Gini (1921)](https://doi.org/10.2307/2223319). +The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation index (*NDI*) are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the *ndi* package can also compute the (1) spatial Racial Isolation Index (*RI*) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (*EI*) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (*ICE*) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (*DI*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (*DI*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (*II*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), (10) aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089), and (11) an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index (*G*) based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -71,7 +71,7 @@ To install the development version from GitHub: hoover -Compute the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089). +Compute the aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089) krieger @@ -93,6 +93,10 @@ To install the development version from GitHub: white Compute the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) + +white_blau +Compute an index of spatial proximity (SP) based on White (1986) and Blau (1977; ISBN-13:978-0-029-03660-0) + @@ -1011,13 +1015,64 @@ ggplot() + ![](man/figures/del.png) +```r +# --------------------------------------------- # +# Compute an index of spatial proximity (White) # +# --------------------------------------------- # + +# An index of spatial proximity based on White (1986) & Blau (1977) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: census tract +## Selected small geography: census block group +sp2020DC <- white_blau( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB', + subgroup_ref = 'NHoLW' +) + +# Obtain the 2020 census tracts from the 'tigris' package +tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) + +# Join the SP (White) values to the census tract geometry +sp2020DC <- tract2020DC %>% + left_join(sp2020DC$sp, by = 'GEOID') + +ggplot() + + geom_sf( + data = sp2020DC, + aes(fill = SP), + color = 'white' + ) + + theme_bw() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + midpoint = 1 + ) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'An index of spatial proximity (White)\n + Washington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) +``` + +![](man/figures/sp.png) + ### Funding This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of [DLH, LLC](https://www.dlhcorp.com) (formerly Social & Scientific Systems, Inc.). ### Acknowledgments -The [`messer()`](R/messer.R) function functionalizes the code found in [Hruska et al. (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x). The [`messer()`](R/messer.R) function also allows for the computation of NDI (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute NDI (Powell-Wiley) included in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002), but the package author worked directly with the latter manuscript authors to replicate their [*SAS*](https://www.sas.com) code in [**R**](https://cran.r-project.org/) for the [`powell_wiley()`](R/powell_wiley.R) function. Please note: the NDI (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., [*SPSS*](https://www.ibm.com/spss) and [*SAS*](https://www.sas.com), respectively) that intrinsically calculate the principal component analysis differently from [**R**](https://cran.r-project.org/). The internal function to calculate the Atkinson Index is based on the [`atkinson()`](R/atkinson.R) function in the [*DescTools*](https://cran.r-project.org/package=DescTools) package. +The [`messer()`](R/messer.R) function functionalizes the code found in [Hruska et al. (2022)](https://doi.org/10.1016/j.janxdis.2022.102529) available on an [OSF repository](https://doi.org/10.17605/OSF.IO/M2SAV), but with percent with income less than $30K added to the computation based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x). The [`messer()`](R/messer.R) function also allows for the computation of *NDI* (Messer) for each year between 2010-2020 (when the U.S. census characteristics are available to date). There was no code companion to compute *NDI* (Powell-Wiley) included in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) or [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) only a [description](https://www.gis.cancer.gov/research/NeighDeprvIndex_Methods.pdf), but the package author worked directly with the latter manuscript authors to replicate their [*SAS*](https://www.sas.com) code in [**R**](https://cran.r-project.org/) for the [`powell_wiley()`](R/powell_wiley.R) function. See the Accumulating Data to Optimally Predict Obesity Treatment [(ADOPT)](https://gis.cancer.gov/research/adopt.html) Core Measures Project for more details. Please note: the *NDI* (Powell-Wiley) values will not exactly match (but will highly correlate with) those found in [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) because the two studies used a different statistical platform (i.e., [*SPSS*](https://www.ibm.com/spss) and [*SAS*](https://www.sas.com), respectively) that intrinsically calculate the principal component analysis differently from [**R**](https://cran.r-project.org/). The internal function to calculate the Atkinson Index is based on the `atkinson()` function in the [*DescTools*](https://cran.r-project.org/package=DescTools) package. When citing this package for publication, please follow: diff --git a/cran-comments.md b/cran-comments.md index 9713195..2f19724 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -2,15 +2,18 @@ * Actions taken since previous submission: * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) - * Added `geo_large = 'cbsa'` for computing Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()` functions. - * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) + * Added `white_blau()` function to compute an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0) + * Added `geo_large = 'cbsa'` for Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()`, `white_blau()` functions. * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA - * `tigris` is now Imports + * `tigris` and `units` are now Imports * 'package.R' deprecated. Replaced with 'ndi-package.R' * Re-formatted code and documentation throughout for consistent readability * Updated documentation about value range of *V* (White) from `{0 to 1}` to `{-Inf to Inf}` - * Updated examples in vignette (& README) an example for `hoover()` and a larger variety of U.S. states - * Updated documentation formatting of metric names in most functions + * Add examples for `hoover()` and `white_blau()` in vignette and README + * Reformatted functions for consistent internal structure + * Updated examples in vignette to showcase a larger variety of U.S. states + * Updated examples in functions to better describe the metrics + * Updated documentation formatting of metric names in all functions * Documentation for DESCRIPTION, README, NEWS, and vignette references the following DOIs, which throws a NOTE but are a valid URL: * diff --git a/inst/CITATION b/inst/CITATION index 76fb190..3b26249 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,6 +1,6 @@ bibentry(bibtype = 'manual', title = 'ndi: Neighborhood Deprivation Indices', - author = c(as.person('Ian D. Buller')), + author = as.person('Ian D. Buller'), publisher = 'The Comprehensive R Archive Network', year = '2024', number = '0.1.6.9000.', @@ -42,7 +42,7 @@ bibentry(bibtype = 'Article', bibentry(bibtype = 'Article', title = 'On the measurement of inequality', - author = c(as.person('Anthony B. Atkinson')), + author = as.person('Anthony B. Atkinson'), journal = 'Journal of economic theory', year = '1970', volume = '2', @@ -81,7 +81,7 @@ bibentry(bibtype = 'Book', bibentry(bibtype = 'Article', title = 'A Probability Model for the Measurement of Ecological Segregation', - author = c(as.person('Wendell Bell')), + author = as.person('Wendell Bell'), journal = 'Social Forces', year = '1954', volume = '32', @@ -162,7 +162,7 @@ bibentry(bibtype = 'Article', bibentry(bibtype = 'Article', title = 'Measurement of Inequality of Incomes', - author = c(as.person('Corrado Gini')), + author = as.person('Corrado Gini'), journal = 'The Economic Journal', year = '1921', volume = '31', @@ -307,7 +307,7 @@ bibentry(bibtype = 'Article', bibentry(bibtype = 'Article', title = 'Social Structure and Anomie', - author = c(as.person('Robert K. Merton')), + author = as.person('Robert K. Merton'), journal = 'American Sociological Review', year = '1938', volume = '3', @@ -348,7 +348,7 @@ bibentry(bibtype = 'Article', bibentry(bibtype = 'Article', title = 'A Probability Model for the Measurement of Ecological Segregation', - author = c(as.person('Wendell Bell')), + author = as.person('Wendell Bell'), journal = 'Social Forces', year = '1954', volume = '32', @@ -367,7 +367,7 @@ bibentry(bibtype = 'Article', bibentry(bibtype = 'Article', title = 'Segregation and Diversity Measures in Population Distribution', - author = c(as.person('Michael J. White')), + author = as.person('Michael J. White'), journal = 'Population Index', year = '1986', volume = '52', @@ -386,7 +386,7 @@ bibentry(bibtype = 'Article', bibentry(bibtype = 'Article', title = 'Interstate Redistribution of Population, 1850-1940', - author = c(as.person('Edgar M. Hoover')), + author = as.person('Edgar M. Hoover'), journal = 'Journal of Economic History', year = '1941', volume = '1', @@ -419,3 +419,38 @@ bibentry(bibtype = 'Book', header = 'And (2):' ) + +bibentry(bibtype = 'Article', + title = 'Segregation and Diversity Measures in Population Distribution', + author = as.person('Michael J. White'), + journal = 'Population Index', + year = '1986', + volume = '52', + issue = '2', + pages = '198--221', + doi = '10.2307/3644339', + + textVersion = + paste('Michael J. White (1986).', + 'Segregation and Diversity Measures in Population Distribution.', + 'Population Index, 52(2), 198-221.', + 'DOI:10.2307/3644339'), + + header = 'If you computed SP (White) values, please also cite (1):' +) + +bibentry(bibtype = 'Book', + title = 'Inequality and Heterogeneity: A Primitive Theory of Social Structure', + author = as.person('Peter M. Blau'), + year = '1977', + publisher = 'Free Press', + isbn = '978-0-029-03660-0', + + textVersion = + paste('Peter M. Blau (1977).', + 'Inequality and Heterogeneity: A Primitive Theory of Social Structure.', + 'Free Press', + 'ISBN-13:978-0-029-03660-0'), + + header = 'And (2):' +) diff --git a/man/anthopolos.Rd b/man/anthopolos.Rd index d99df3b..8d4039b 100644 --- a/man/anthopolos.Rd +++ b/man/anthopolos.Rd @@ -63,7 +63,8 @@ A census geography (and its neighbors) that has nearly all of its population who \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Tract-level metric (2020) + # Racial Isolation Index of Black populations + ## of census tracts within Georgia, U.S.A., counties (2020) anthopolos( geo = 'tract', state = 'GA', @@ -71,14 +72,6 @@ A census geography (and its neighbors) that has nearly all of its population who subgroup = c('NHoLB', 'HoLB') ) - # County-level metric (2020) - anthopolos( - geo = 'county', - state = 'GA', - year = 2020, - subgroup = c('NHoLB', 'HoLB') - ) - } } diff --git a/man/atkinson.Rd b/man/atkinson.Rd index e6b94a7..9212295 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -83,14 +83,14 @@ Larger geographies available include state \code{geo_large = 'state'}, county \c \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Atkinson Index of non-Hispanic Black populations - ## of census tracts within Georgia, U.S.A., counties (2020) + # Atkinson Index (a measure of the evenness) of Black populations + ## of census tracts within counties within Georgia, U.S.A., counties (2020) atkinson( geo_large = 'county', geo_small = 'tract', state = 'GA', year = 2020, - subgroup = 'NHoLB' + subgroup = c('NHoLB', 'HoLB') ) } diff --git a/man/bell.Rd b/man/bell.Rd index b505124..3ef41bf 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -82,7 +82,7 @@ Larger geographies available include state \code{geo_large = 'state'}, county \c # Wrapped in \dontrun{} because these examples require a Census API key. # Isolation of non-Hispanic Black vs. non-Hispanic white populations - ## of census tracts within Georgia, U.S.A., counties (2020) + ## of census tracts within counties within Georgia, U.S.A., counties (2020) bell( geo_large = 'county', geo_small = 'tract', diff --git a/man/bemanian_beyer.Rd b/man/bemanian_beyer.Rd index 83e32db..1fabd38 100644 --- a/man/bemanian_beyer.Rd +++ b/man/bemanian_beyer.Rd @@ -83,8 +83,8 @@ Larger geographies available include state \code{geo_large = 'state'}, county \c \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Isolation of non-Hispanic Black vs. non-Hispanic white populations - ## of census tracts within Georgia, U.S.A., counties (2020) + # Local Exposure and Isolation of non-Hispanic Black vs. non-Hispanic white populations + ## of census tracts within counties within Georgia, U.S.A., counties (2020) bemanian_beyer( geo_large = 'county', geo_small = 'tract', diff --git a/man/bravo.Rd b/man/bravo.Rd index be407d8..1559273 100644 --- a/man/bravo.Rd +++ b/man/bravo.Rd @@ -49,7 +49,8 @@ A census geography (and its neighbors) that has nearly all of its population wit \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Tract-level metric (2020) + # Educational Isolation Index of less than some college or associate's degree attainment + ## of census tracts within Georgia, U.S.A., counties (2020) bravo( geo = 'tract', state = 'GA', @@ -57,14 +58,6 @@ A census geography (and its neighbors) that has nearly all of its population wit subgroup = c('LtHS', 'HSGiE') ) - # County-level metric (2020) - bravo( - geo = 'county', - state = 'GA', - year = 2020, - subgroup = c('LtHS', 'HSGiE') - ) - } } diff --git a/man/duncan.Rd b/man/duncan.Rd index eaae01b..77966d5 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -82,7 +82,7 @@ Larger geographies available include state \code{geo_large = 'state'}, county \c # Wrapped in \dontrun{} because these examples require a Census API key. # Dissimilarity Index of non-Hispanic Black vs. non-Hispanic white populations - ## of census tracts within Georgia, U.S.A., counties (2020) + ## of census tracts within counties within Georgia, U.S.A., counties (2020) duncan( geo_large = 'county', geo_small = 'tract', diff --git a/man/figures/sp.png b/man/figures/sp.png new file mode 100644 index 0000000000000000000000000000000000000000..295e813c08752c962e377ceecbc8b1dbe2b454a7 GIT binary patch literal 301227 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 + left_join(whiteblau2014GA$sp, by = 'GEOID') %>% + filter(!st_is_empty(.)) %>% + filter(!is.na(SP)) %>% + st_filter(state2014 %>% filter(STUSPS == 'GA')) %>% + st_make_valid() +``` + +```{r white_blau_plot, fig.height = 7, fig.width = 7} +# Visualize the SP values (2010-2014 5-year ACS) for Georgia, U.S.A., CSAs +ggplot() + + geom_sf( + data = GA2010whiteblau, + aes(fill = SP), + # size = 0.05, + # color = 'white' + ) + + geom_sf( + data = state2014 %>% filter(STUSPS == 'GA'), + fill = 'transparent', + color = 'black', + size = 0.2 + ) + + theme_minimal() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + midpoint = 1 + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2010-2014 estimates') + + ggtitle( + 'An index of spatial proximity (White)\nCensus tracts to Combined Statistical Areas in Georgia', + subtitle = 'Black non-Hispanic vs. white non-Hispanic' + ) +``` + ```{r system} sessionInfo() ``` diff --git a/vignettes/vignette.html b/vignettes/vignette.html index 6d60e41..eb50ec3 100644 --- a/vignettes/vignette.html +++ b/vignettes/vignette.html @@ -12,7 +12,7 @@ - + ndi: Neighborhood Deprivation Indices @@ -340,28 +340,28 @@

    ndi: Neighborhood Deprivation Indices

    Ian D. Buller (GitHub: @idblr)

    -

    2024-07-06

    +

    2024-08-20

    Start with the necessary packages for the vignette.

    -
    loadedPackages <- c('dplyr', 'ggplot2', 'ndi', 'tidycensus', 'tigris')
    +
    loadedPackages <- c('dplyr', 'ggplot2', 'ndi', 'sf', 'tidycensus', 'tigris')
     invisible(lapply(loadedPackages, library, character.only = TRUE))
     options(tigris_use_cache = TRUE)

    Set your U.S. Census Bureau access key. Follow this link to obtain one. Specify your access key in the messer() or powell_wiley() functions using the key -argument of the get_acs() function from the -tidycensus package called within each or by using the -census_api_key() function from the tidycensus +argument of the get_acs() function from the tidycensus +package called within each or by using the census_api_key() +function from the tidycensus package before running the messer() or powell_wiley() functions (see an example of the latter below).

    census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API
    -

    Compute NDI (Messer)

    -

    Compute the NDI (Messer) values (2006-2010 5-year ACS) for Georgia, -U.S.A., census tracts. This metric is based on Messer et +

    Compute NDI (Messer)

    +

    Compute the NDI (Messer) values (2006-2010 5-year ACS) for +Georgia, U.S.A., census tracts. This metric is based on Messer et al. (2006) with the following socio-economic status (SES) variables:

    @@ -432,8 +432,8 @@

    Compute NDI (Messer)

    messer2010GA <- messer(state = 'GA', year = 2010, round_output = TRUE)

    One output from the messer() function is a tibble -containing the identification, geographic name, NDI (Messer) values, and -raw census characteristics for each tract.

    +containing the identification, geographic name, NDI (Messer) +values, and raw census characteristics for each tract.

    messer2010GA$ndi
    ## # A tibble: 1,969 × 14
     ##    GEOID state county tract     NDI NDIQuart   OCC   CWD   POV   FHH   PUB   U30
    @@ -451,8 +451,8 @@ 

    Compute NDI (Messer)

    ## # ℹ 1,959 more rows ## # ℹ 2 more variables: EDU <dbl>, EMP <dbl>

    A second output from the messer() function is the -results from the principal component analysis used to compute the NDI -(Messer) values.

    +results from the principal component analysis used to compute the +NDI (Messer) values.

    messer2010GA$pca
    ## Principal Components Analysis
     ## Call: psych::principal(r = ndi_data_pca, nfactors = 1, n.obs = nrow(ndi_data_pca), 
    @@ -481,7 +481,7 @@ 

    Compute NDI (Messer)

    ## Fit based upon off diagonal values = 0.95

    A third output from the messer() function is a tibble containing a breakdown of the missingness of the census characteristics -used to compute the NDI (Messer) values.

    +used to compute the NDI (Messer) values.

    messer2010GA$missing
    ## # A tibble: 8 × 4
     ##   variable total n_missing percent_missing
    @@ -494,9 +494,10 @@ 

    Compute NDI (Messer)

    ## 6 POV 1969 14 0.71 % ## 7 PUB 1969 14 0.71 % ## 8 U30 1969 14 0.71 %
    -

    We can visualize the NDI (Messer) values geographically by linking -them to spatial information from the tigris package and -plotting with the ggplot2 package suite.

    +

    We can visualize the NDI (Messer) values geographically by +linking them to spatial information from the [tigris](tidycensus +package and plotting with the [ggplot2](tidycensus +package suite.

    # Obtain the 2010 counties from the 'tigris' package
     county2010GA <- counties(state = 'GA', year = 2010, cb = TRUE)
     # Remove first 9 characters from GEOID for compatibility with tigris information
    @@ -566,8 +567,8 @@ 

    Compute NDI (Messer)

    subtitle = 'GA census tracts as the referent' )

    -

    The results above are at the tract level. The NDI (Messer) values can -also be calculated at the county level.

    +

    The results above are at the tract level. The NDI (Messer) +values can also be calculated at the county level.

    messer2010GA_county <- messer(geo = 'county', state = 'GA', year = 2010)
     
     # Join the NDI (Messer) values to the county geometry
    @@ -620,10 +621,10 @@ 

    Compute NDI (Messer)

    -

    Compute NDI (Powell-Wiley)

    -

    Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for -Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., census -tracts. This metric is based on Andrews et +

    Compute NDI (Powell-Wiley)

    +

    Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) +for Maryland, Virginia, Washington, D.C., and West Virginia, U.S.A., +census tracts. This metric is based on Andrews et al. (2020) and Slotman et al. (2022) with socio-economic status (SES) variables chosen by Roux and Mair (2010):

    @@ -729,7 +730,7 @@

    Compute NDI (Powell-Wiley)

    More information about the codebook and computation -of the NDI (Powell-Wiley) can be found on a GIS Portal for +of the NDI (Powell-Wiley) can be found on a GIS Portal for Cancer Research website.

    powell_wiley2020DMVW <- powell_wiley(
       state = c('DC', 'MD', 'VA', 'WV'),
    @@ -737,8 +738,9 @@ 

    Compute NDI (Powell-Wiley)

    round_output = TRUE )

    One output from the powell_wiley() function is a tibble -containing the identification, geographic name, NDI (Powell-Wiley) -values, and raw census characteristics for each tract.

    +containing the identification, geographic name, NDI +(Powell-Wiley) values, and raw census characteristics for each +tract.

    powell_wiley2020DMVW$ndi
    ## # A tibble: 4,425 × 20
     ##    GEOID       state  county tract   NDI NDIQuint MedHHInc PctRecvIDR PctPubAsst
    @@ -759,8 +761,8 @@ 

    Compute NDI (Powell-Wiley)

    ## # PctNComPlmb <dbl>, PctEducHSPlus <dbl>, PctEducBchPlus <dbl>, ## # PctFamBelowPov <dbl>, PctUnempl <dbl>, TotalPop <dbl>

    A second output from the powell_wiley() function is the -results from the principal component analysis used to compute the NDI -(Powell-Wiley) values.

    +results from the principal component analysis used to compute the +NDI (Powell-Wiley) values.

    powell_wiley2020DMVW$pca
    ## $loadings
     ## 
    @@ -837,7 +839,8 @@ 

    Compute NDI (Powell-Wiley)

    ## Cumulative Proportion 0.5157997 0.8761900 1.00000000

    A third output from the powell_wiley() function is a tibble containing a breakdown of the missingness of the census -characteristics used to compute the NDI (Powell-Wiley) values.

    +characteristics used to compute the NDI (Powell-Wiley) +values.

    powell_wiley2020DMVW$missing
    ## # A tibble: 13 × 4
     ##    variable        total n_missing percent_missing
    @@ -860,9 +863,11 @@ 

    Compute NDI (Powell-Wiley)

    value greater than 0.7 is desired.

    powell_wiley2020DMVW$cronbach
    ## [1] 0.9321693
    -

    We can visualize the NDI (Powell-Wiley) values geographically by -linking them to spatial information from the tigris package -and plotting with the ggplot2 package suite.

    +

    We can visualize the NDI (Powell-Wiley) values +geographically by linking them to spatial information from the +[tigris](tidycensus +package and plotting with the [ggplot2](tidycensus +package suite.

    # Obtain the 2020 counties from the 'tigris' package
     county2020 <- counties(cb = TRUE)
     county2020DMVW <- county2020[county2020$STUSPS %in% c('DC', 'MD', 'VA', 'WV'), ]
    @@ -920,8 +925,8 @@ 

    Compute NDI (Powell-Wiley)

    subtitle = 'DC, MD, VA, and WV tracts as the referent' )

    -

    Like the NDI (Messer), we also compute county-level NDI -(Powell-Wiley).

    +

    Like the NDI (Messer), we also compute county-level +NDI (Powell-Wiley).

    # Obtain the 2020 counties from the 'tigris' package
     county2020DMVW <- counties(state = c('DC', 'MD', 'VA', 'WV'), year = 2020, cb = TRUE)
     
    @@ -989,12 +994,12 @@ 

    Imputing missing census variables

    In the messer() and powell_wiley() functions, missing census characteristics can be imputed using the missing and impute arguments of the -pca() function in the psych package called -within the messer() and powell_wiley() -functions. Impute values using the logical imp argument -(currently only calls impute = 'median' by default, which -assigns the median values of each missing census variable for a -geography).

    +pca() function in the psych +package called within the messer() and +powell_wiley() functions. Impute values using the logical +imp argument (currently only calls +impute = 'median' by default, which assigns the median +values of each missing census variable for a geography).

    powell_wiley2020DC <- powell_wiley(state = 'DC', year = 2020) # without imputation
     powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # with imputation
     
    @@ -1098,12 +1103,13 @@ 

    Imputing missing census variables

    Assign the referent (U.S.-Standardized Metric)

    -

    To conduct a contiguous US-standardized index, compute an NDI for all -states as in the example below that replicates the nationally -standardized NDI (Powell-Wiley) values (2013-2017 ACS-5) found in Slotman et +

    To conduct a contiguous US-standardized index, compute an +NDI for all states as in the example below that replicates the +nationally standardized NDI (Powell-Wiley) values (2013-2017 +ACS-5) found in Slotman et al. (2022) and available from a GIS Portal for Cancer Research website. To replicate the nationally standardized -NDI (Powell-Wiley) values (2006-2010 ACS-5) found in Andrews et +NDI (Powell-Wiley) values (2006-2010 ACS-5) found in Andrews et al. (2020) change the year argument to 2010 (i.e., year = 2010).

    us <- states()
    @@ -1128,55 +1134,60 @@ 

    Assign the referent (U.S.-Standardized Metric)

    subtitle = 'U.S. census tracts as the referent (including AK, HI, and DC)' )

    -

    The process to compute a US-standardized NDI (Powell-Wiley) took -about 2.7 minutes to run on a machine with the features listed at the -end of the vignette.

    +

    The process to compute a US-standardized NDI (Powell-Wiley) +took about 2.8 minutes to run on a machine with the features listed at +the end of the vignette.

    Additional metrics socio-economic deprivation and disparity

    -

    Since version v0.1.1, the ndi package can compute -additional metrics of socio-economic deprivation and disparity beyond -neighborhood deprivation indices with data from the ACS-5, -including:

    +

    Since version v0.1.1, the ndi package +can compute additional metrics of socio-economic deprivation and +disparity beyond neighborhood deprivation indices with data from the +ACS-5, including:

    1. anthopolos() function that computes the Racial -Isolation Index (RI) based on Anthopolos et +Isolation Index (RI) based on Anthopolos et al. (2011)
    2. bravo() function that computes the Educational -Isolation Index (EI) based on Bravo et +Isolation Index (EI) based on Bravo et al. (2021)
    3. -
    4. gini() function that retrieves the Gini Index based on -Gini (1921)
    5. +
    6. gini() function that retrieves the Gini Index +(G) based on Gini +(1921)
    7. krieger() function that computes the Index of -Concentration at the Extremes based on based on Feldman et +Concentration at the Extremes (ICE) based on based on Feldman et al. (2015) and Krieger et al. (2016)
    8. duncan() function that computes the Dissimilarity Index -based on Duncan & Duncan -(1955)
    9. +(DI) based on Duncan +& Duncan (1955)
    10. atkinson() function that computes the Atkinson Index -based on Atkinson +(AI) based on Atkinson (1970)
    11. bell() function that computes the aspatial -racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; -ISBN-13:978-0-837-15637-8) and Bell (1954)
    12. +racial/ethnic Isolation Index (II) based on Shevky & +Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954)
    13. white() function that computes the aspatial -racial/ethnic Correlation Ratio based on Bell (1954) and White (1986)
    14. +racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986)
    15. sudano() function that computes the aspatial -racial/ethnic Location Quotient based on Merton (1939) and Sudano et +racial/ethnic Location Quotient (LQ) based on Merton (1939) and Sudano et al. (2013)
    16. bemanian_beyer() function that computes the aspatial -racial/ethnic Local Exposure and Isolation metric based on Bemanian & +racial/ethnic Local Exposure and Isolation (LEx/Is) metric +based on Bemanian & Beyer (2017)
    17. hoover() function that computes the aspatial -racial/ethnic Delta based on Hoover (1941) and +racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; LC:60007089)
    18. +
    19. white_blau() function that computes an index of spatial +proximity (SP) based on White (1986) and Blau (1977; +ISBN-13:978-0-029-03660-0)
    -

    Compute Racial Isolation Index (RI)

    -

    Compute the spatial RI values (2006-2010 5-year ACS) for North -Carolina, U.S.A., census tracts. This metric is based on Anthopolos et +

    Compute Racial Isolation Index (RI)

    +

    Compute the spatial RI values (2006-2010 5-year ACS) for +North Carolina, U.S.A., census tracts. This metric is based on Anthopolos et al. (2011) that assessed the racial isolation of the population that identifies as non-Hispanic or Latino, Black or African American alone. Multiple racial/ethnic subgroups are available in the @@ -1304,10 +1315,11 @@

    Compute Racial Isolation Index (RI)

    A census geography (and its neighbors) that has nearly all of its population who identify with the specified race/ethnicity subgroup(s) (e.g., Not Hispanic or Latino, Black or African American alone) will -have an RI value close to 1. In contrast, a census geography (and its -neighbors) that is nearly none of its population who identify with the -specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or Latino, -Black or African American alone) will have an RI value close to 0.

    +have an RI value close to 1. In contrast, a census geography +(and its neighbors) that is nearly none of its population who identify +with the specified race/ethnicity subgroup(s) (e.g., not Not Hispanic or +Latino, Black or African American alone) will have an RI value +close to 0.

    anthopolos2010NC <- anthopolos(state = 'NC', year = 2010, subgroup = 'NHoLB')
     
     # Obtain the 2010 census tracts from the 'tigris' package
    @@ -1343,14 +1355,15 @@ 

    Compute Racial Isolation Index (RI)

    subtitle = 'NC census tracts (not corrected for edge effects)' )

    -

    The current version of the ndi package does not correct -for edge effects (e.g., census geographies along the specified spatial -extent border, coastline, or U.S.-Mexico / U.S.-Canada border) may have -few neighboring census geographies, and RI values in these census -geographies may be unstable. A stop-gap solution for the former source -of edge effect is to compute the RI for neighboring census geographies -(i.e., the states bordering a study area of interest) and then use the -estimates of the study area of interest.

    +

    The current version of the ndi package +does not correct for edge effects (e.g., census geographies along the +specified spatial extent border, coastline, or U.S.-Mexico / U.S.-Canada +border) may have few neighboring census geographies, and RI +values in these census geographies may be unstable. A stop-gap solution +for the former source of edge effect is to compute the RI for +neighboring census geographies (i.e., the states bordering a study area +of interest) and then use the estimates of the study area of +interest.

    # Compute RI for all census tracts in neighboring states
     anthopolos2010GNSTV <- anthopolos(
       state = c('GA', 'NC', 'SC', 'TN', 'VA'),
    @@ -1397,9 +1410,9 @@ 

    Compute Racial Isolation Index (RI)

    -

    Compute Educational Isolation Index (EI)

    -

    Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) for -Oklahoma, U.S.A., census tracts. This metric is based on Bravo et al. (2021) +

    Compute Educational Isolation Index (EI)

    +

    Compute the spatial EI (Bravo) values (2006-2010 5-year ACS) +for Oklahoma, U.S.A., census tracts. This metric is based on Bravo et al. (2021) that assessed the educational isolation of the population without a four-year college degree. Multiple educational attainment categories are available in the bravo() function, including:

    @@ -1447,11 +1460,11 @@

    Compute Educational Isolation Index (EI)

    Note: The ACS-5 data (2005-2009) uses the ‘B15002’ question.

    A census geography (and its neighbors) that has nearly all of its population with the specified educational attainment category (e.g., a -four-year college degree or more) will have an EI (Bravo) value close to -1. In contrast, a census geography (and its neighbors) that is nearly -none of its population with the specified educational attainment -category (e.g., with a four-year college degree) will have an EI (Bravo) -value close to 0.

    +four-year college degree or more) will have an EI (Bravo) value +close to 1. In contrast, a census geography (and its neighbors) that is +nearly none of its population with the specified educational attainment +category (e.g., with a four-year college degree) will have an +EI (Bravo) value close to 0.

    bravo2010OK <- bravo(state = 'OK', year = 2010, subgroup = c('LtHS', 'HSGiE', 'SCoAD'))
     
     # Obtain the 2010 census tracts from the 'tigris' package
    @@ -1488,13 +1501,15 @@ 

    Compute Educational Isolation Index (EI)

    )

    Can correct one source of edge effect in the same manner as shown for -the RI metric.

    +the RI metric.

    -
    -

    Retrieve the Gini Index

    -

    Retrieve the aspatial Gini Index values (2006-2010 5-year ACS) for -Massachusetts, U.S.A., census tracts. This metric is based on Gini (1921), and the -gini() function retrieves the estimate from the ACS-5.

    +
    +

    Retrieve the Gini Index (G)

    +

    Retrieve the aspatial Gini Index (G) values (2006-2010 +5-year ACS) for Massachusetts, U.S.A., census tracts. This metric is +based on Gini (1921), and +the gini() function retrieves the estimate from the +ACS-5.

    According to the U.S. Census Bureau: ‘The Gini Index is a summary measure of income inequality. The Gini coefficient incorporates the detailed shares data @@ -1502,9 +1517,10 @@

    Retrieve the Gini Index

    across the entire income distribution. The Gini coefficient ranges from 0, indicating perfect equality (where everyone receives an equal share), to 1, perfect inequality (where only one recipient or group of -recipients receives all the income). The Gini is based on the difference -between the Lorenz curve (the observed cumulative income distribution) -and the notion of a perfectly equal income distribution.’

    +recipients receives all the income). G is based on the +difference between the Lorenz curve (the observed cumulative income +distribution) and the notion of a perfectly equal income +distribution.’

    gini2010MA <- gini(state = 'MA', year = 2010)
     
     # Obtain the 2010 census tracts from the 'tigris' package
    @@ -1540,7 +1556,7 @@ 

    Retrieve the Gini Index

    -

    Index of Concentration at the Extremes (ICE)

    +

    Index of Concentration at the Extremes (ICE)

    Compute the aspatial Index of Concentration at the Extremes values (2006-2010 5-year ACS) for Wayne County, Michigan, U.S.A., census tracts. Wayne County is the home of Detroit, Michigan, a highly @@ -1549,8 +1565,8 @@

    Index of Concentration at the Extremes (ICE)

    al. (2016) who expanded the metric designed by Massey in a chapter of Booth & Crouter (2001) initially designed for residential segregation. The -krieger() function computes five ICE metrics using the -following ACS-5 groups:

    +krieger() function computes five ICE metrics using +the following ACS-5 groups:

    @@ -1560,7 +1576,7 @@

    Index of Concentration at the Extremes (ICE)

    - + @@ -1594,12 +1610,13 @@

    Index of Concentration at the Extremes (ICE)

    ACS table groupICE metricICE metric Comparison
    -

    ICE metrics can range in value from −1 (most deprived) to 1 (most -privileged). A value of 0 can thus represent two possibilities: (1) none -of the residents are in the most privileged or most deprived categories, -or (2) an equal number of persons are in the most privileged and most -deprived categories, and in both cases indicates that the area is not -dominated by extreme concentrations of either of the two groups.

    +

    ICE metrics can range in value from −1 (most deprived) to 1 +(most privileged). A value of 0 can thus represent two possibilities: +(1) none of the residents are in the most privileged or most deprived +categories, or (2) an equal number of persons are in the most privileged +and most deprived categories, and in both cases indicates that the area +is not dominated by extreme concentrations of either of the two +groups.

    ice2020WC <- krieger(state = 'MI', county = 'Wayne', year = 2010)
     
     # Obtain the 2010 census tracts from the 'tigris' package
    @@ -1719,16 +1736,16 @@ 

    Index of Concentration at the Extremes (ICE)

    )

    -

    Compute racial/ethnic Dissimilarity Index (DI)

    -

    Compute the aspatial racial/ethnic DI values (2006-2010 5-year ACS) -for Pennsylvania, U.S.A., counties from census tracts. This metric is -based on Duncan & Duncan -(1955) that assessed the racial/ethnic isolation of students that -identify as non-Hispanic or Latino, Black or African American alone -compared to students that identify as non-Hispanic or Latino, white -alone between schools and school districts. Multiple racial/ethnic -subgroups are available in the duncan() function, -including:

    +

    Compute racial/ethnic Dissimilarity Index (DI)

    +

    Compute the aspatial racial/ethnic DI values (2006-2010 +5-year ACS) for Pennsylvania, U.S.A., counties from census tracts. This +metric is based on Duncan +& Duncan (1955) that assessed the racial/ethnic isolation of +students that identify as non-Hispanic or Latino, Black or African +American alone compared to students that identify as non-Hispanic or +Latino, white alone between schools and school districts. Multiple +racial/ethnic subgroups are available in the duncan() +function, including:

    @@ -1850,13 +1867,13 @@

    Compute racial/ethnic Dissimilarity Index (DI)

    -

    DI is a measure of the evenness of racial/ethnic residential +

    DI is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones -within which the smaller geographical areas are located. DI can range in -value from 0 to 1 and represents the proportion of racial/ethnic -subgroup members that would have to change their area of residence to -achieve an even distribution within the larger geographical area under -conditions of maximum segregation.

    +within which the smaller geographical areas are located. DI can +range in value from 0 to 1 and represents the proportion of +racial/ethnic subgroup members that would have to change their area of +residence to achieve an even distribution within the larger geographical +area under conditions of maximum segregation.

    duncan2010PA <- duncan(
       geo_large = 'county',
       geo_small = 'tract',
    @@ -1898,10 +1915,11 @@ 

    Compute racial/ethnic Dissimilarity Index (DI)

    -

    Compute aspatial income or racial/ethnic Atkinson Index (AI)

    -

    Compute the aspatial income or racial/ethnic AI values (2017-2021 -5-year ACS) for Kentucky, U.S.A., counties from census block groups. -This metric is based on Atkinson (1970) that assessed +

    Compute aspatial income or racial/ethnic Atkinson Index +(AI)

    +

    Compute the aspatial income or racial/ethnic AI values +(2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block +groups. This metric is based on Atkinson (1970) that assessed the distribution of income within 12 counties but has since been adapted to study racial/ethnic segregation (see James & Taeuber 1985). To compare median household income, specify @@ -2028,19 +2046,20 @@

    Compute aspatial income or racial/ethnic Atkinson Index (AI)

    -

    AI is a measure of the inequality and, in the context of residential -race/ethnicity, segregation when comparing smaller geographical areas to -larger ones within which the smaller geographical areas are located. AI -can range in value from 0 to 1 and smaller values of the index indicate -lower levels of inequality (e.g., less segregation).

    -

    AI is sensitive to the choice of epsilon argument or the -shape parameter that determines how to weight the increments to -inequality (segregation) contributed by different proportions of the -Lorenz curve. A user must explicitly decide how heavily to weight -smaller geographical units at different points on the Lorenz curve -(i.e., whether the index should take greater account of differences -among areas of over- or under-representation). The epsilon -argument must have values between 0 and 1.0. For +

    AI is a measure of the inequality and, in the context of +residential race/ethnicity, segregation when comparing smaller +geographical areas to larger ones within which the smaller geographical +areas are located. AI can range in value from 0 to 1 and +smaller values of the index indicate lower levels of inequality (e.g., +less segregation).

    +

    AI is sensitive to the choice of epsilon +argument or the shape parameter that determines how to weight the +increments to inequality (segregation) contributed by different +proportions of the Lorenz curve. A user must explicitly decide how +heavily to weight smaller geographical units at different points on the +Lorenz curve (i.e., whether the index should take greater account of +differences among areas of over- or under-representation). The +epsilon argument must have values between 0 and 1.0. For 0 <= epsilon < 0.5 or less ‘inequality-averse,’ smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to @@ -2092,13 +2111,13 @@

    Compute aspatial income or racial/ethnic Atkinson Index (AI)

    -

    Compute racial/ethnic Isolation Index (II)

    -

    Compute the aspatial racial/ethnic II values (2017-2021 5-year ACS) -for Ohio, U.S.A., counties from census block groups. This metric is -based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and -adapted by Bell (1954). -Multiple racial/ethnic subgroups are available in the -bell() function, including:

    +

    Compute racial/ethnic Isolation Index (II)

    +

    Compute the aspatial racial/ethnic II values (2017-2021 +5-year ACS) for Ohio, U.S.A., counties from census block groups. This +metric is based on Shevky & Williams (1949; +ISBN-13:978-0-837-15637-8) and adapted by Bell (1954). Multiple +racial/ethnic subgroups are available in the bell() +function, including:

    @@ -2220,12 +2239,12 @@

    Compute racial/ethnic Isolation Index (II)

    -

    II is some measure of the probability that a member of one +

    II is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation) when comparing smaller geographical areas to larger ones -within which the smaller geographical areas are located. II can range in -value from 0 to 1.

    +within which the smaller geographical areas are located. II can +range in value from 0 to 1.

    bell2021OH <- bell(
       geo_large = 'county',
       geo_small = 'tract',
    @@ -2265,13 +2284,13 @@ 

    Compute racial/ethnic Isolation Index (II)

    -

    Compute Correlation Ratio (V)

    -

    Compute the aspatial racial/ethnic V values (2017-2021 5-year ACS) -for South Carolina, U.S.A., counties from census tracts. This metric is -based on Bell (1954) and -adapted by White (1986). -Multiple racial/ethnic subgroups are available in the -white() function, including:

    +

    Compute Correlation Ratio (V)

    +

    Compute the aspatial racial/ethnic V values (2017-2021 +5-year ACS) for South Carolina, U.S.A., counties from census tracts. +This metric is based on Bell +(1954) and adapted by White (1986). Multiple +racial/ethnic subgroups are available in the white() +function, including:

    @@ -2392,13 +2411,14 @@

    Compute Correlation Ratio (V)

    -

    V removes the asymmetry from the Isolation Index by controlling for -the effect of population composition when comparing smaller geographical -areas to larger ones within which the smaller geographical areas are -located. The Isolation Index is some measure of the probability that a -member of one subgroup(s) will meet or interact with a member of another -subgroup(s) with higher values signifying higher probability of -interaction (less isolation). V can range in value from -Inf to Inf.

    +

    V removes the asymmetry from the Isolation Index by +controlling for the effect of population composition when comparing +smaller geographical areas to larger ones within which the smaller +geographical areas are located. The Isolation Index is some measure of +the probability that a member of one subgroup(s) will meet or interact +with a member of another subgroup(s) with higher values signifying +higher probability of interaction (less isolation). V can range +in value from -Inf to Inf.

    white2021SC <- white(
       geo_large = 'county',
       geo_small = 'tract',
    @@ -2437,11 +2457,11 @@ 

    Compute Correlation Ratio (V)

    -

    Compute Location Quotient (LQ)

    -

    Compute the aspatial racial/ethnic LQ values (2017-2021 5-year ACS) -for Tennessee, U.S.A., counties vs. the state. This metric is based on -Merton (1939) and adapted -by Sudano et +

    Compute Location Quotient (LQ)

    +

    Compute the aspatial racial/ethnic LQ values (2017-2021 +5-year ACS) for Tennessee, U.S.A., counties vs. the state. This metric +is based on Merton (1939) +and adapted by Sudano et al. (2013). Multiple racial/ethnic subgroups are available in the sudano() function, including:

    @@ -2564,17 +2584,17 @@

    Compute Location Quotient (LQ)

    -

    LQ is some measure of relative racial homogeneity of each smaller -geography within a larger geography. LQ can range in value from 0 to -infinity because it is ratio of two proportions in which the numerator -is the proportion of subgroup population in a smaller geography and the -denominator is the proportion of subgroup population in its larger -geography. For example, a smaller geography with an LQ of 5 means that -the proportion of the subgroup population living in the smaller -geography is five times the proportion of the subgroup population in its -larger geography. Unlike the previous metrics that aggregate to the -larger geography, LQ computes values for each smaller geography relative -to the larger geography.

    +

    LQ is some measure of relative racial homogeneity of each +smaller geography within a larger geography. LQ can range in +value from 0 to infinity because it is ratio of two proportions in which +the numerator is the proportion of subgroup population in a smaller +geography and the denominator is the proportion of subgroup population +in its larger geography. For example, a smaller geography with an +LQ of 5 means that the proportion of the subgroup population +living in the smaller geography is five times the proportion of the +subgroup population in its larger geography. Unlike the previous metrics +that aggregate to the larger geography, LQ computes values for +each smaller geography relative to the larger geography.

    sudano2021TN <- sudano(
       geo_large = 'state',
       geo_small = 'county',
    @@ -2613,7 +2633,7 @@ 

    Compute Location Quotient (LQ)

    -

    Compute Local Exposure and Isolation (LEx/Is)

    +

    Compute Local Exposure and Isolation (LEx/Is)

    Compute the aspatial racial/ethnic Local Exposure and Isolation metric (2017-2021 5-year ACS) for Mississippi, U.S.A., counties vs. the state. This metric is based on Bemanian & @@ -2739,26 +2759,27 @@

    Compute Local Exposure and Isolation (LEx/Is)

    -

    LEx/Is is a measure of the probability that two individuals living -within a specific smaller geography (e.g., census tract) of either -different (i.e., exposure) or the same (i.e., isolation) racial/ethnic -subgroup(s) will interact, assuming that individuals within a smaller -geography are randomly mixed. LEx/Is is standardized with a logit -transformation and centered against an expected case that all -races/ethnicities are evenly distributed across a larger geography. -LEx/Is can range from negative infinity to infinity. If LEx/Is is zero -then the estimated probability of the interaction between two people of -the given subgroup(s) within a smaller geography is equal to the -expected probability if the subgroup(s) were perfectly mixed in the -larger geography. If LEx/Is is greater than zero then the interaction is -more likely to occur within the smaller geography than in the larger -geography, and if LEx/Is is less than zero then the interaction is less -likely to occur within the smaller geography than in the larger -geography. Note: the exponentiation of each LEx/Is metric results in the +

    LEx/Is is a measure of the probability that two individuals +living within a specific smaller geography (e.g., census tract) of +either different (i.e., exposure) or the same (i.e., isolation) +racial/ethnic subgroup(s) will interact, assuming that individuals +within a smaller geography are randomly mixed. LEx/Is is +standardized with a logit transformation and centered against an +expected case that all races/ethnicities are evenly distributed across a +larger geography. LEx/Is can range from negative infinity to +infinity. If LEx/Is is zero then the estimated probability of +the interaction between two people of the given subgroup(s) within a +smaller geography is equal to the expected probability if the +subgroup(s) were perfectly mixed in the larger geography. If +LEx/Is is greater than zero then the interaction is more likely +to occur within the smaller geography than in the larger geography, and +if LEx/Is is less than zero then the interaction is less likely +to occur within the smaller geography than in the larger geography. +Note: the exponentiation of each LEx/Is metric results in the odds ratio of the specific exposure or isolation of interest in a -smaller geography relative to the larger geography. Similar to LQ -(Sudano), LEx/Is computes values for each smaller geography relative to -the larger geography.

    +smaller geography relative to the larger geography. Similar to +LQ (Sudano), LEx/Is computes values for each smaller +geography relative to the larger geography.

    bemanian_beyer2021MS <- bemanian_beyer(
       geo_large = 'state',
       geo_small = 'county',
    @@ -2826,12 +2847,12 @@ 

    Compute Local Exposure and Isolation (LEx/Is)

    -

    Compute Delta (DEL)

    -

    Compute the aspatial racial/ethnic DEL values (2017-2021 5-year ACS) -for Alabama, U.S.A., counties from census tracts. This metric is based -on Hoover (1941) -and Duncan et al. (1961; LC:60007089). Multiple racial/ethnic subgroups -are available in the hoover() function, including:

    +

    Compute Delta (DEL)

    +

    Compute the aspatial racial/ethnic DEL values (2017-2021 +5-year ACS) for Alabama, U.S.A., counties from census tracts. This +metric is based on Hoover (1941) and +Duncan et al. (1961; LC:60007089). Multiple racial/ethnic subgroups are +available in the hoover() function, including:

    @@ -2952,11 +2973,12 @@

    Compute Delta (DEL)

    -

    DEL is a measure of the proportion of members of one subgroup(s) -residing in geographic units with above average density of members of -the subgroup(s). The index provides the proportion of a subgroup -population that would have to move across geographic units to achieve a -uniform density. DEL can range in value from 0 to 1.

    +

    DEL is a measure of the proportion of members of one +subgroup(s) residing in geographic units with above average density of +members of the subgroup(s). The index provides the proportion of a +subgroup population that would have to move across geographic units to +achieve a uniform density. DEL can range in value from 0 to +1.

    hoover2021AL <- hoover(
       geo_large = 'county',
       geo_small = 'tract',
    @@ -2993,8 +3015,195 @@ 

    Compute Delta (DEL)

    subtitle = 'Black non-Hispanic' )

    -
    sessionInfo()
    -
    ## R version 4.4.0 (2024-04-24 ucrt)
    +
    +
    +

    Compute an index of spatial proximity (SP)

    +

    Compute an index of spatial proximity (2010-2014 5-year ACS) for +Atlanta, GA, metropolitan area from census tracts. This metric is based +on White (1986) and Blau +(1977; ISBN-13:978-0-029-03660-0) that designed the metric to identify +racial or ethnic enclaves. Multiple racial/ethnic subgroups are +available in the white_blau() function, including:

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ACS table sourceracial/ethnic subgroupcharacter for subgroup or subgroup_ref +arguments
    B03002_002not Hispanic or LatinoNHoL
    B03002_003not Hispanic or Latino, white aloneNHoLW
    B03002_004not Hispanic or Latino, Black or African American aloneNHoLB
    B03002_005not Hispanic or Latino, American Indian and Alaska Native aloneNHoLAIAN
    B03002_006not Hispanic or Latino, Asian aloneNHoLA
    B03002_007not Hispanic or Latino, Native Hawaiian and Other Pacific Islander +aloneNHoLNHOPI
    B03002_008not Hispanic or Latino, some other race aloneNHoLSOR
    B03002_009not Hispanic or Latino, two or more racesNHoLTOMR
    B03002_010not Hispanic or Latino, two races including some other raceNHoLTRiSOR
    B03002_011not Hispanic or Latino, two races excluding some other race, and +three or more racesNHoLTReSOR
    B03002_012Hispanic or LatinoHoL
    B03002_013Hispanic or Latino, white aloneHoLW
    B03002_014Hispanic or Latino, Black or African American aloneHoLB
    B03002_015Hispanic or Latino, American Indian and Alaska Native aloneHoLAIAN
    B03002_016Hispanic or Latino, Asian aloneHoLA
    B03002_017Hispanic or Latino, Native Hawaiian and other Pacific Islander +aloneHoLNHOPI
    B03002_018Hispanic or Latino, some other race aloneHoLSOR
    B03002_019Hispanic or Latino, two or more racesHoLTOMR
    B03002_020Hispanic or Latino, two races including some other raceHoLTRiSOR
    B03002_021Hispanic or Latino, two races excluding some other race, and three +or more racesHoLTReSOR
    +

    SP is a measure of clustering of racial/ethnic populations +within smaller geographical areas that are located within larger +geographical areas. SP can range in value from 0 to Inf and +represents the degree to which an area is a racial or ethnic enclave. A +value of 1 indicates there is no differential clustering between +subgroup and referent group members. A value greater than 1 indicates +subgroup members live nearer to one another than to referent subgroup +members. A value less than 1 indicates subgroup live nearer to and +referent subgroup members than to their own subgroup members.

    +
    whiteblau2014GA <- white_blau(
    +  geo_large = 'csa',
    +  geo_small = 'tract',
    +  state = c('GA', 'AL', 'TN', 'FL'),
    +  year = 2014,
    +  subgroup = 'NHoLB',
    +  subgroup_ref = 'NHoLW'
    +)
    +
    +# Obtain the 2014 Combined Statistical Areas from the 'tigris' package
    +csa2014 <- combined_statistical_areas(year = 2014, cb = TRUE)
    +# Obtain the 2014 state from the 'tigris' package
    +state2014 <- states(cb = TRUE)
    +
    +# Join the SP values to the CSA geometries and filter for Georgia
    +GA2010whiteblau <- csa2014 %>%
    +  left_join(whiteblau2014GA$sp, by = 'GEOID') %>%
    +  filter(!st_is_empty(.)) %>%
    +  filter(!is.na(SP)) %>%
    +  st_filter(state2014 %>% filter(STUSPS == 'GA')) %>%
    +  st_make_valid()
    +
    # Visualize the SP values (2010-2014 5-year ACS) for Georgia, U.S.A., CSAs 
    +ggplot() +
    +  geom_sf(
    +    data = GA2010whiteblau,
    +    aes(fill = SP),
    +   # size = 0.05,
    +   # color = 'white'
    +  ) +
    +  geom_sf(
    +    data = state2014 %>% filter(STUSPS == 'GA'),
    +    fill = 'transparent',
    +    color = 'black',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_gradient2(
    +    low = '#998ec3', 
    +    mid = '#f7f7f7', 
    +    high = '#f1a340', 
    +    midpoint = 1
    +  ) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2010-2014 estimates') +
    +  ggtitle(
    +    'An index of spatial proximity (White)\nCensus tracts to Combined Statistical Areas in Georgia',
    +    subtitle = 'Black non-Hispanic vs. white non-Hispanic'
    +  )
    +

    +
    sessionInfo()
    +
    ## R version 4.4.1 (2024-06-14 ucrt)
     ## Platform: x86_64-w64-mingw32/x64
     ## Running under: Windows 10 x64 (build 19045)
     ## 
    @@ -3015,29 +3224,29 @@ 

    Compute Delta (DEL)

    ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] tigris_2.1 tidycensus_1.6.3 ndi_0.1.6.9000 ggplot2_3.5.1 -## [5] dplyr_1.1.4 knitr_1.46 +## [1] tigris_2.1 tidycensus_1.6.5 sf_1.0-16 ndi_0.1.6.9000 +## [5] ggplot2_3.5.1 dplyr_1.1.4 knitr_1.48 ## ## loaded via a namespace (and not attached): -## [1] gtable_0.3.5 xfun_0.43 bslib_0.7.0 psych_2.4.6.26 +## [1] gtable_0.3.5 xfun_0.47 bslib_0.8.0 psych_2.4.6.26 ## [5] lattice_0.22-6 tzdb_0.4.0 Cairo_1.6-2 vctrs_0.6.5 -## [9] tools_4.4.0 generics_0.1.3 curl_5.2.1 parallel_4.4.0 -## [13] tibble_3.2.1 proxy_0.4-27 fansi_1.0.6 highr_0.10 -## [17] pkgconfig_2.0.3 Matrix_1.7-0 KernSmooth_2.23-22 uuid_1.2-0 -## [21] lifecycle_1.0.4 farver_2.1.2 compiler_4.4.0 stringr_1.5.1 +## [9] tools_4.4.1 generics_0.1.3 curl_5.2.1 parallel_4.4.1 +## [13] tibble_3.2.1 proxy_0.4-27 fansi_1.0.6 highr_0.11 +## [17] pkgconfig_2.0.3 Matrix_1.7-0 KernSmooth_2.23-24 uuid_1.2-1 +## [21] lifecycle_1.0.4 farver_2.1.2 compiler_4.4.1 stringr_1.5.1 ## [25] munsell_0.5.1 mnormt_2.1.1 carData_3.0-5 htmltools_0.5.8.1 -## [29] class_7.3-22 sass_0.4.9 yaml_2.3.8 pillar_1.9.0 -## [33] car_3.1-2 crayon_1.5.2 jquerylib_0.1.4 tidyr_1.3.1 -## [37] MASS_7.3-60.2 classInt_0.4-10 cachem_1.0.8 wk_0.9.1 -## [41] abind_1.4-5 nlme_3.1-164 tidyselect_1.2.1 rvest_1.0.4 -## [45] digest_0.6.35 stringi_1.8.3 sf_1.0-16 purrr_1.0.2 -## [49] labeling_0.4.3 fastmap_1.1.1 grid_4.4.0 colorspace_2.1-0 -## [53] cli_3.6.3 magrittr_2.0.3 utf8_1.2.4 e1071_1.7-14 -## [57] readr_2.1.5 withr_3.0.0 scales_1.3.0 rappdirs_0.3.3 -## [61] rmarkdown_2.26 httr_1.4.7 hms_1.1.3 evaluate_0.23 -## [65] viridisLite_0.4.2 s2_1.1.6 rlang_1.1.4 Rcpp_1.0.12 -## [69] glue_1.7.0 DBI_1.2.2 xml2_1.3.6 rstudioapi_0.16.0 -## [73] jsonlite_1.8.8 R6_2.5.1 units_0.8-5
    +## [29] class_7.3-22 sass_0.4.9 yaml_2.3.10 pillar_1.9.0 +## [33] car_3.1-2 crayon_1.5.3 jquerylib_0.1.4 tidyr_1.3.1 +## [37] MASS_7.3-61 classInt_0.4-10 cachem_1.1.0 wk_0.9.2 +## [41] abind_1.4-5 nlme_3.1-166 tidyselect_1.2.1 rvest_1.0.4 +## [45] digest_0.6.36 stringi_1.8.4 purrr_1.0.2 labeling_0.4.3 +## [49] fastmap_1.2.0 grid_4.4.1 colorspace_2.1-1 cli_3.6.3 +## [53] magrittr_2.0.3 utf8_1.2.4 e1071_1.7-14 readr_2.1.5 +## [57] withr_3.0.1 scales_1.3.0 rappdirs_0.3.3 rmarkdown_2.28 +## [61] httr_1.4.7 hms_1.1.3 evaluate_0.24.0 viridisLite_0.4.2 +## [65] s2_1.1.7 rlang_1.1.4 Rcpp_1.0.13 glue_1.7.0 +## [69] DBI_1.2.3 xml2_1.3.6 rstudioapi_0.16.0 jsonlite_1.8.8 +## [73] R6_2.5.1 units_0.8-5
    From 2828b07085a1f67a9ec633945a5b1cbb0e79b2f4 Mon Sep 17 00:00:00 2001 From: Ian D Buller Date: Fri, 23 Aug 2024 09:30:19 -0400 Subject: [PATCH 23/23] =?UTF-8?q?=F0=9F=94=80=20Merge=20`branch:dev=5Flieb?= =?UTF-8?q?erson`=20into=20`branch:main`=20(#17)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * :sparkles: Initial commit for branch "dev_lieberson" (ndi v0.1.6.9002) * Added `lieberson()` function to compute he aspatial racial/ethnic Isolation Index (_xPx\*_) based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and and [Bell (1954)](https://doi.org/10.2307/2574118) * `bell()` function computes the Interaction Index (Bell) not the Isolation Index as previously documented. Updated documentation throughout * Renamed *AI* as *A*, *DI* as *D*, *Gini* as *G*, and *II* as _xPx\*_ to align with the definitions from [Massey & Denton (1988)](https://doi.org/10.1093/sf/67.2.281). The output for `atkinson()` now produces `a` instead of `ai`. The output for `duncan()` now produces `d` instead of `ai`. The output for `gini()` now produces `g` instead of `gini`. The output for `bell()` now produces `xPx_star` instead of `II`. The internal functions `ai_fun()`, `di_fun()` and `ii_fun()` were renamed `a_fun()`, `d_fun()` and `xpx_star_fun()`, respectively. * :memo: Updated vignette for v0.1.6.9002 --- DESCRIPTION | 22 +- NAMESPACE | 1 + NEWS.md | 15 +- R/atkinson.R | 52 ++--- R/bell.R | 56 ++--- R/duncan.R | 52 ++--- R/gini.R | 12 +- R/globals.R | 10 +- R/lieberson.R | 390 ++++++++++++++++++++++++++++++++ R/ndi-package.R | 10 +- R/utils.R | 83 ++++--- R/white.R | 2 +- README.md | 332 ++++++++++++++++----------- cran-comments.md | 6 +- inst/CITATION | 52 ++++- man/atkinson.Rd | 12 +- man/bell.Rd | 18 +- man/duncan.Rd | 12 +- man/figures/a.png | Bin 0 -> 384062 bytes man/figures/ai.png | Bin 384217 -> 0 bytes man/figures/d.png | Bin 0 -> 385890 bytes man/figures/di.png | Bin 385788 -> 0 bytes man/figures/ei.png | Bin 392328 -> 381044 bytes man/figures/g.png | Bin 0 -> 370462 bytes man/figures/gini.png | Bin 381753 -> 0 bytes man/figures/ice1.png | Bin 312823 -> 305346 bytes man/figures/ice2.png | Bin 321924 -> 315875 bytes man/figures/ice3.png | Bin 337174 -> 329680 bytes man/figures/ice4.png | Bin 286295 -> 313795 bytes man/figures/ice5.png | Bin 248787 -> 290209 bytes man/figures/ii.png | Bin 381640 -> 0 bytes man/figures/lexis.png | Bin 319461 -> 319253 bytes man/figures/lq.png | Bin 375431 -> 375449 bytes man/figures/messer1.png | Bin 389244 -> 381448 bytes man/figures/messer2.png | Bin 381540 -> 375130 bytes man/figures/powell_wiley1.png | Bin 385603 -> 377516 bytes man/figures/powell_wiley2.png | Bin 393031 -> 386407 bytes man/figures/powell_wiley3.png | Bin 388297 -> 380267 bytes man/figures/powell_wiley4.png | Bin 393490 -> 387181 bytes man/figures/ri.png | Bin 391053 -> 380282 bytes man/figures/sp.png | Bin 301227 -> 305587 bytes man/figures/v.png | Bin 383068 -> 265021 bytes man/figures/xpx_star.png | Bin 0 -> 374665 bytes man/figures/xpy_star.png | Bin 0 -> 382438 bytes man/gini.Rd | 2 +- man/lieberson.Rd | 96 ++++++++ man/ndi-package.Rd | 10 +- man/white.Rd | 2 +- tests/testthat/test-lieberson.R | 79 +++++++ vignettes/vignette.Rmd | 146 +++++++++--- vignettes/vignette.html | 300 +++++++++++++++++++----- 51 files changed, 1373 insertions(+), 399 deletions(-) create mode 100644 R/lieberson.R create mode 100644 man/figures/a.png delete mode 100644 man/figures/ai.png create mode 100644 man/figures/d.png delete mode 100644 man/figures/di.png create mode 100644 man/figures/g.png delete mode 100644 man/figures/gini.png delete mode 100644 man/figures/ii.png create mode 100644 man/figures/xpx_star.png create mode 100644 man/figures/xpy_star.png create mode 100644 man/lieberson.Rd create mode 100644 tests/testthat/test-lieberson.R diff --git a/DESCRIPTION b/DESCRIPTION index dd6e0a2..d334694 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ndi Title: Neighborhood Deprivation Indices -Version: 0.1.6.9001 -Date: 2024-08-20 +Version: 0.1.6.9002 +Date: 2024-08-22 Authors@R: c(person(given = "Ian D.", family = "Buller", @@ -31,10 +31,10 @@ Description: Computes various metrics of socio-economic deprivation and disparit Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) , (4) compute the aspatial racial/ethnic - Dissimilarity Index (DI) based on Duncan & Duncan (1955) , (5) - compute the aspatial income or racial/ethnic Atkinson Index (AI) based on Atkinson - (1970) , (6) aspatial racial/ethnic Isolation - Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell + Dissimilarity Index (D) based on Duncan & Duncan (1955) , (5) + compute the aspatial income or racial/ethnic Atkinson Index (A) based on Atkinson + (1970) , (6) aspatial racial/ethnic Interaction + Index (xPy*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) , (7) aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986) , (8) aspatial racial/ethnic Location Quotient (LQ) based on Merton (1939) @@ -43,10 +43,12 @@ Description: Computes various metrics of socio-economic deprivation and disparit Exposure and Isolation (LEx/Is) metric based on Bemanian & Beyer (2017) , (10) aspatial racial/ethnic Delta (DEL) based on Hoover (1941) and Duncan et al. (1961; - LC:60007089), and (11) an index of spatial proximity based on White (1986) - and Blau (1977; ISBN-13:978-0-029-03660-0). Also using data - from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini Index - (G) based Gini (1921) . + LC:60007089), (11) an index of spatial proximity (SP) based on White (1986) + and Blau (1977; ISBN-13:978-0-029-03660-0), and (12) the + aspatial racial/ethnic Isolatoin Index (xPx*) based on Lieberson (1981; + ISBN-13:978-1-032-53884-6) and Bell (1954) . Also using data + from the ACS-5 (2005-2009 onward), the package can retrieve the aspatial Gini + Index (G) based Gini (1921) . License: Apache License (>= 2.0) Encoding: UTF-8 LazyData: true diff --git a/NAMESPACE b/NAMESPACE index cf60a1e..36af877 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -9,6 +9,7 @@ export(duncan) export(gini) export(hoover) export(krieger) +export(lieberson) export(messer) export(powell_wiley) export(sudano) diff --git a/NEWS.md b/NEWS.md index ab7835a..49bd22f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,15 +1,18 @@ # ndi (development version) -## ndi v0.1.6.9001 +## ndi v0.1.6.9002 ### New Features * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) * Added `white_blau()` function to compute an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0) -* Added `geo_large = 'cbsa'` for Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()`, `white_blau()` functions. +* Added `lieberson()` function to compute he aspatial racial/ethnic Isolation Index (_xPx\*_) based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and and [Bell (1954)](https://doi.org/10.2307/2574118) +* Added `geo_large = 'cbsa'` for Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `lieberson()`, `sudano()`, and `white()`, `white_blau()` functions. * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) ### Updates -* Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA +* `bell()` function computes the Interaction Index (Bell) not the Isolation Index as previously documented. Updated documentation throughout +* Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` functions when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA +* Renamed *AI* as *A*, *DI* as *D*, *Gini* as *G*, and *II* as _xPy\*_ to align with the definitions from [Massey & Denton (1988)](https://doi.org/10.1093/sf/67.2.281). The output for `atkinson()` now produces `a` instead of `ai`. The output for `duncan()` now produces `d` instead of `ai`. The output for `gini()` now produces `g` instead of `gini`. The output for `bell()` now produces `xPy_star` instead of `II`. The internal functions `ai_fun()`, `di_fun()` and `ii_fun()` were renamed `a_fun()`, `d_fun()` and `xpy_star_fun()`, respectively. * `tigris` and `units` are now Imports * 'package.R' deprecated. Replaced with 'ndi-package.R' * Re-formatted code and documentation throughout for consistent readability @@ -34,8 +37,8 @@ ## ndi v0.1.4 ### New Features -* Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (*AI*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward -* Added `bell()` function to compute the aspatial racial/ethnic Isolation Index (*II*) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) +* Added `atkinson()` function to compute the aspatial income or racial/ethnic Atkinson Index (*A*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6) for specified counties/tracts 2009 onward +* Added `bell()` function to compute the aspatial racial/ethnic Interaction Index (_xPy\*_) based on Shevky & Williams (1949; ISBN-13:978-0837156378) and [Bell (1954)](https://doi.org/10.2307/2574118) * Added `white()` function to compute the aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339) * Added `sudano()` function to compute the aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015) * Added `bemanian_beyer()` function to compute the aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926) @@ -56,7 +59,7 @@ ## ndi v0.1.3 ### New Features -* Added `duncan()` function to compute the Dissimilarity Index (*DI*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) for specified counties/tracts 2009 onward +* Added `duncan()` function to compute the Dissimilarity Index (*D*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328) for specified counties/tracts 2009 onward * Thank you for the feature suggestion, [Jessica Madrigal](https://orcid.org/0000-0001-5303-5109) * Added 'utils.R' file with internal `di_fun()` function for `duncan()` function diff --git a/R/atkinson.R b/R/atkinson.R index f853eb0..5d38eb7 100644 --- a/R/atkinson.R +++ b/R/atkinson.R @@ -11,7 +11,7 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Atkinson Index (\emph{AI}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{AI} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Atkinson Index (\emph{A}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{A} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ @@ -39,18 +39,18 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' \emph{AI} is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{AI} can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). +#' \emph{A} is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{A} can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). #' #' The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{AI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{AI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{AI} computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{A} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{A} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{A} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and \emph{AI} at specified larger census geographies.} -#' \item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{AI}.} +#' \item{\code{a}}{An object of class 'tbl' for the GEOID, name, and \emph{A} at specified larger census geographies.} +#' \item{\code{a_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{A}.} #' } #' #' @import dplyr @@ -151,7 +151,7 @@ atkinson <- function(geo_large = 'county', out_names <- names(selected_vars) # save for output in_subgroup <- paste0(subgroup, 'E') - # Acquire AI variables and sf geometries + # Acquire A variables and sf geometries out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, @@ -183,7 +183,7 @@ atkinson <- function(geo_large = 'county', ) } - # Grouping IDs for AI computation + # Grouping IDs for A computation if (geo_large == 'state') { out_dat <- out_dat %>% dplyr::mutate( @@ -278,7 +278,7 @@ atkinson <- function(geo_large = 'county', dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) } - # Compute AI + # Compute A ## From Atkinson (1970) https://doi.org/10.1016/0022-0531(70)90039-6 ## A_{\epsilon}(x_{1},...,x_{n}) = \begin{Bmatrix} ## 1 - (\frac{1}{n}\sum_{i=1}^{n}x_{i}^{1-\epsilon})^{1/(1-\epsilon)}/(\frac{1}{n}\sum_{i=1}^{n}x_{i}) & \mathrm{if\:} \epsilon \neq 1 \\ @@ -291,19 +291,19 @@ atkinson <- function(geo_large = 'county', ## (\frac{1}{n}\sum_{i=1}^{n}x_{i}^{p})^{1/p} & \mathrm{if\:} p \neq 0 \\ ## (\prod_{i=1}^{n}x_{i})^{1/n} & \mathrm{if\:} p = 0 \\ ## \end{Bmatrix} - ## then AI is + ## then A is ## A_{\epsilon}(x_{1},...,x_{n}) = 1 - \frac{M_{1-\epsilon}(x_{1},...,x_{n})}{M_{1}(x_{1},...,x_{n})} ## Compute out_tmp <- out_dat %>% split(., f = list(out_dat$oid)) %>% - lapply(., FUN = ai_fun, epsilon = epsilon, omit_NAs = omit_NAs) %>% + lapply(., FUN = a_fun, epsilon = epsilon, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate( - AI = values, + A = values, oid = ind ) %>% - dplyr::select(AI, oid) + dplyr::select(A, oid) # Warning for missingness of census characteristics missingYN <- as.data.frame(out_dat[, in_subgroup]) @@ -332,37 +332,37 @@ atkinson <- function(geo_large = 'county', if (geo_large == 'state') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, AI) %>% + dplyr::select(oid, state, A) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, AI) %>% + dplyr::select(GEOID, state, A) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'county') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, county, AI) %>% + dplyr::select(oid, state, county, A) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, AI) %>% + dplyr::select(GEOID, state, county, A) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, county, tract, AI) %>% + dplyr::select(oid, state, county, tract, A) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, tract, AI) %>% + dplyr::select(GEOID, state, county, tract, A) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, cbsa, AI) %>% + dplyr::select(oid, cbsa, A) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, cbsa, AI) %>% + dplyr::select(GEOID, cbsa, A) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -370,10 +370,10 @@ atkinson <- function(geo_large = 'county', if (geo_large == 'csa') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, csa, AI) %>% + dplyr::select(oid, csa, A) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, csa, AI) %>% + dplyr::select(GEOID, csa, A) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -381,10 +381,10 @@ atkinson <- function(geo_large = 'county', if (geo_large == 'metro') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, metro, AI) %>% + dplyr::select(oid, metro, A) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, metro, AI) %>% + dplyr::select(GEOID, metro, A) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -398,7 +398,7 @@ atkinson <- function(geo_large = 'county', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ai = out, ai_data = out_dat, missing = missingYN) + out <- list(a = out, a_data = out_dat, missing = missingYN) return(out) } diff --git a/R/bell.R b/R/bell.R index c1097b4..5abef97 100644 --- a/R/bell.R +++ b/R/bell.R @@ -1,6 +1,6 @@ -#' Isolation Index based on Shevky & Williams (1949) and Bell (1954) +#' Interaction Index based on Shevky & Williams (1949) and Bell (1954) #' -#' Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' Compute the aspatial Interaction Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. #' #' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. #' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. @@ -11,7 +11,7 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Isolation Index (\emph{II}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of \emph{II} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Interaction Index (_xPy\*_) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of _xPy\*_ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ @@ -39,16 +39,16 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' \emph{II} is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{II} can range in value from 0 to 1. +#' _xPy\*_ is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). _xPy\*_ can range in value from 0 to 1. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{II} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{II} computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the _xPy\*_ value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the _xPy\*_ computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the _xPy\*_ computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and \emph{II} at specified larger census geographies.} -#' \item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{II}.} +#' \item{\code{xpy_star}}{An object of class 'tbl' for the GEOID, name, and _xPy\*_ at specified larger census geographies.} +#' \item{\code{xpy_star_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute _xPy\*_.} #' } #' #' @import dplyr @@ -66,7 +66,7 @@ #' \dontrun{ #' # Wrapped in \dontrun{} because these examples require a Census API key. #' -#' # Isolation of non-Hispanic Black vs. non-Hispanic white populations +#' # Interaction of non-Hispanic Black vs. non-Hispanic white populations #' ## of census tracts within counties within Georgia, U.S.A., counties (2020) #' bell( #' geo_large = 'county', @@ -175,7 +175,7 @@ bell <- function(geo_large = 'county', in_subgroup <- paste0(subgroup, 'E') in_subgroup_ixn <- paste0(subgroup_ixn, 'E') - # Acquire II variables and sf geometries + # Acquire xPy* variables and sf geometries out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, @@ -207,7 +207,7 @@ bell <- function(geo_large = 'county', ) } - # Grouping IDs for II computation + # Grouping IDs for xPy* computation if (geo_large == 'state') { out_dat <- out_dat %>% dplyr::mutate( @@ -310,7 +310,7 @@ bell <- function(geo_large = 'county', dplyr::mutate(subgroup_ixn = rowSums(.[, in_subgroup_ixn])) } - # Compute II + # Compute xPy* ## From Bell (1954) https://doi.org/10.2307/2574118 ## _{x}P_{y}^* = \sum_{i=1}^{k} \left ( \frac{x_{i}}{X}\right )\left ( \frac{y_{i}}{n_{i}}\right ) ## Where for k geographical units i: @@ -323,13 +323,13 @@ bell <- function(geo_large = 'county', ## Compute out_tmp <- out_dat %>% split(., f = list(out_dat$oid)) %>% - lapply(., FUN = ii_fun, omit_NAs = omit_NAs) %>% + lapply(., FUN = xpy_star_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate( - II = values, + xPy_star = values, oid = ind ) %>% - dplyr::select(II, oid) + dplyr::select(xPy_star, oid) # Warning for missingness of census characteristics missingYN <- out_dat[, c('TotalPopE', in_subgroup, in_subgroup_ixn)] @@ -358,37 +358,37 @@ bell <- function(geo_large = 'county', if (geo_large == 'state') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, II) %>% + dplyr::select(oid, state, xPy_star) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, II) %>% + dplyr::select(GEOID, state, xPy_star) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'county') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, county, II) %>% + dplyr::select(oid, state, county, xPy_star) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, II) %>% + dplyr::select(GEOID, state, county, xPy_star) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, county, tract, II) %>% + dplyr::select(oid, state, county, tract, xPy_star) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, tract, II) %>% + dplyr::select(GEOID, state, county, tract, xPy_star) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, cbsa, II) %>% + dplyr::select(oid, cbsa, xPy_star) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, cbsa, II) %>% + dplyr::select(GEOID, cbsa, xPy_star) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -396,10 +396,10 @@ bell <- function(geo_large = 'county', if (geo_large == 'csa') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, csa, II) %>% + dplyr::select(oid, csa, xPy_star) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, csa, II) %>% + dplyr::select(GEOID, csa, xPy_star) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -407,10 +407,10 @@ bell <- function(geo_large = 'county', if (geo_large == 'metro') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, metro, II) %>% + dplyr::select(oid, metro, xPy_star) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, metro, II) %>% + dplyr::select(GEOID, metro, xPy_star) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -424,7 +424,7 @@ bell <- function(geo_large = 'county', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(ii = out, ii_data = out_dat, missing = missingYN) + out <- list(xpy_star = out, xpy_star_data = out_dat, missing = missingYN) return(out) } diff --git a/R/duncan.R b/R/duncan.R index e95bd29..7f7a563 100644 --- a/R/duncan.R +++ b/R/duncan.R @@ -11,7 +11,7 @@ #' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. #' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics #' -#' @details This function will compute the aspatial Dissimilarity Index (\emph{DI}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{DI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' @details This function will compute the aspatial Dissimilarity Index (\emph{D}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{D} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). #' #' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: #' \itemize{ @@ -39,16 +39,16 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' \emph{DI} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{DI} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. +#' \emph{D} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{D} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. #' -#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{DI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DI} computation. +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{D} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{D} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{D} computation. #' #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and \emph{DI} at specified larger census geographies.} -#' \item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{DI}.} +#' \item{\code{di}}{An object of class 'tbl' for the GEOID, name, and \emph{D} at specified larger census geographies.} +#' \item{\code{d_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{D}.} #' } #' #' @import dplyr @@ -174,7 +174,7 @@ duncan <- function(geo_large = 'county', in_subgroup <- paste0(subgroup, 'E') in_subgroup_ref <- paste0(subgroup_ref, 'E') - # Acquire DI variables and sf geometries + # Acquire D variables and sf geometries out_dat <- suppressMessages(suppressWarnings( tidycensus::get_acs( geography = geo_small, @@ -206,7 +206,7 @@ duncan <- function(geo_large = 'county', ) } - # Grouping IDs for DI computation + # Grouping IDs for D computation if (geo_large == 'state') { out_dat <- out_dat %>% dplyr::mutate( @@ -309,11 +309,11 @@ duncan <- function(geo_large = 'county', dplyr::mutate(subgroup_ref = rowSums(.[, in_subgroup_ref])) } - # Compute DI + # Compute D ## From Duncan & Duncan (1955) https://doi.org/10.2307/2088328 ## D_{jt} = 1/2 \sum_{i=1}^{k} | \frac{x_{ijt}}{X_{jt}}-\frac{y_{ijt}}{Y_{jt}}| ## Where for k smaller geographies: - ## D_{jt} denotes the DI of larger geography j at time t + ## D_{jt} denotes the D of larger geography j at time t ## x_{ijt} denotes the racial/ethnic subgroup population of smaller geography i within larger geography j at time t ## X_{jt} denotes the racial/ethnic subgroup population of larger geography j at time t ## y_{ijt} denotes the racial/ethnic referent subgroup population of smaller geography i within larger geography j at time t @@ -322,13 +322,13 @@ duncan <- function(geo_large = 'county', ## Compute out_tmp <- out_dat %>% split(., f = list(out_dat$oid)) %>% - lapply(., FUN = di_fun, omit_NAs = omit_NAs) %>% + lapply(., FUN = d_fun, omit_NAs = omit_NAs) %>% utils::stack(.) %>% dplyr::mutate( - DI = values, + D = values, oid = ind ) %>% - dplyr::select(DI, oid) + dplyr::select(D, oid) # Warning for missingness of census characteristics missingYN <- out_dat[, c(in_subgroup, in_subgroup_ref)] @@ -357,37 +357,37 @@ duncan <- function(geo_large = 'county', if (geo_large == 'state') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, DI) %>% + dplyr::select(oid, state, D) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, DI) %>% + dplyr::select(GEOID, state, D) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'county') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, county, DI) %>% + dplyr::select(oid, state, county, D) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, DI) %>% + dplyr::select(GEOID, state, county, D) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'tract') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, state, county, tract, DI) %>% + dplyr::select(oid, state, county, tract, D) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, state, county, tract, DI) %>% + dplyr::select(GEOID, state, county, tract, D) %>% .[.$GEOID != 'NANA',] } if (geo_large == 'cbsa') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, cbsa, DI) %>% + dplyr::select(oid, cbsa, D) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, cbsa, DI) %>% + dplyr::select(GEOID, cbsa, D) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -395,10 +395,10 @@ duncan <- function(geo_large = 'county', if (geo_large == 'csa') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, csa, DI) %>% + dplyr::select(oid, csa, D) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, csa, DI) %>% + dplyr::select(GEOID, csa, D) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -406,10 +406,10 @@ duncan <- function(geo_large = 'county', if (geo_large == 'metro') { out <- out_dat %>% dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% - dplyr::select(oid, metro, DI) %>% + dplyr::select(oid, metro, D) %>% unique(.) %>% dplyr::mutate(GEOID = oid) %>% - dplyr::select(GEOID, metro, DI) %>% + dplyr::select(GEOID, metro, D) %>% .[.$GEOID != 'NANA', ] %>% dplyr::distinct(GEOID, .keep_all = TRUE) %>% dplyr::filter(stats::complete.cases(.)) @@ -423,7 +423,7 @@ duncan <- function(geo_large = 'county', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(di = out, di_data = out_dat, missing = missingYN) + out <- list(d = out, d_data = out_dat, missing = missingYN) return(out) } diff --git a/R/gini.R b/R/gini.R index 0f97d2b..299c54f 100644 --- a/R/gini.R +++ b/R/gini.R @@ -18,7 +18,7 @@ #' @return An object of class 'list'. This is a named list with the following components: #' #' \describe{ -#' \item{\code{gini}}{An object of class 'tbl' for the GEOID, name, and \emph{G} of specified census geographies.} +#' \item{\code{g}}{An object of class 'tbl' for the GEOID, name, and \emph{G} of specified census geographies.} #' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for \emph{G}.} #' } #' @@ -73,11 +73,11 @@ gini <- function(geo = 'tract', } tmp_dat <- tmp_dat %>% - dplyr::mutate(gini = giniE) + dplyr::mutate(G = giniE) # Warning for missingness of census characteristics missingYN <- tmp_dat %>% - dplyr::select(gini) %>% + dplyr::select(G) %>% tidyr::pivot_longer( cols = dplyr::everything(), names_to = 'variable', @@ -99,10 +99,10 @@ gini <- function(geo = 'tract', if (geo == 'tract') { out <- tmp_dat %>% - dplyr::select(GEOID, state, county, tract, gini) + dplyr::select(GEOID, state, county, tract, G) } else { out <- tmp_dat %>% - dplyr::select(GEOID, state, county, gini) + dplyr::select(GEOID, state, county, G) } out <- out %>% @@ -113,7 +113,7 @@ gini <- function(geo = 'tract', dplyr::arrange(GEOID) %>% dplyr::as_tibble() - out <- list(gini = out, missing = missingYN) + out <- list(g = out, missing = missingYN) return(out) } diff --git a/R/globals.R b/R/globals.R index 94e0022..2c0cd46 100644 --- a/R/globals.R +++ b/R/globals.R @@ -248,14 +248,16 @@ globalVariables( 'ind', 'oid', 'block.group', - 'DI', - 'AI', - 'II', 'V', 'LQ', 'LExIs', 'DEL', 'SP', - 'km' + 'km', + 'A', + 'D', + 'G', + 'xPx_star', + 'xPy_star' ) ) diff --git a/R/lieberson.R b/R/lieberson.R new file mode 100644 index 0000000..07c13ec --- /dev/null +++ b/R/lieberson.R @@ -0,0 +1,390 @@ +#' Isolation Index based on Lieberson (1981) and Bell (1954) +#' +#' Compute the aspatial Isolation Index (Lieberson) of a selected racial/ethnic subgroup(s) and U.S. geographies. +#' +#' @param geo_large Character string specifying the larger geographical unit of the data. The default is counties \code{geo_large = 'county'}. +#' @param geo_small Character string specifying the smaller geographical unit of the data. The default is census tracts \code{geo_large = 'tract'}. +#' @param year Numeric. The year to compute the estimate. The default is 2020, and the years 2009 onward are currently available. +#' @param subgroup Character string specifying the racial/ethnic subgroup(s). See Details for available choices. +#' @param omit_NAs Logical. If FALSE, will compute index for a larger geographical unit only if all of its smaller geographical units have values. The default is TRUE. +#' @param quiet Logical. If TRUE, will display messages about potential missing census information. The default is FALSE. +#' @param ... Arguments passed to \code{\link[tidycensus]{get_acs}} to select state, county, and other arguments for census characteristics +#' +#' @details This function will compute the aspatial Isolation Index (_xPx\*_) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of _xPx\*_ for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +#' +#' The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: +#' \itemize{ +#' \item \strong{B03002_002}: not Hispanic or Latino \code{'NHoL'} +#' \item \strong{B03002_003}: not Hispanic or Latino, white alone \code{'NHoLW'} +#' \item \strong{B03002_004}: not Hispanic or Latino, Black or African American alone \code{'NHoLB'} +#' \item \strong{B03002_005}: not Hispanic or Latino, American Indian and Alaska Native alone \code{'NHoLAIAN'} +#' \item \strong{B03002_006}: not Hispanic or Latino, Asian alone \code{'NHoLA'} +#' \item \strong{B03002_007}: not Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'NHoLNHOPI'} +#' \item \strong{B03002_008}: not Hispanic or Latino, Some other race alone \code{'NHoLSOR'} +#' \item \strong{B03002_009}: not Hispanic or Latino, Two or more races \code{'NHoLTOMR'} +#' \item \strong{B03002_010}: not Hispanic or Latino, Two races including Some other race \code{'NHoLTRiSOR'} +#' \item \strong{B03002_011}: not Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'NHoLTReSOR'} +#' \item \strong{B03002_012}: Hispanic or Latino \code{'HoL'} +#' \item \strong{B03002_013}: Hispanic or Latino, white alone \code{'HoLW'} +#' \item \strong{B03002_014}: Hispanic or Latino, Black or African American alone \code{'HoLB'} +#' \item \strong{B03002_015}: Hispanic or Latino, American Indian and Alaska Native alone \code{'HoLAIAN'} +#' \item \strong{B03002_016}: Hispanic or Latino, Asian alone \code{'HoLA'} +#' \item \strong{B03002_017}: Hispanic or Latino, Native Hawaiian and Other Pacific Islander alone \code{'HoLNHOPI'} +#' \item \strong{B03002_018}: Hispanic or Latino, Some other race alone \code{'HoLSOR'} +#' \item \strong{B03002_019}: Hispanic or Latino, Two or more races \code{'HoLTOMR'} +#' \item \strong{B03002_020}: Hispanic or Latino, Two races including Some other race \code{'HoLTRiSOR'} +#' \item \strong{B03002_021}: Hispanic or Latino, Two races excluding Some other race, and three or more races \code{'HoLTReSOR'} +#' } +#' +#' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. +#' +#' _xPx\*_ is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of their subgroup(s) with higher values signifying higher probability of interaction (less isolation). _xPx\*_ can range in value from 0 to 1. +#' +#' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the _xPx\*_ value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the _xPx\*_ computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the _xPx\*_ computation. +#' +#' @return An object of class 'list'. This is a named list with the following components: +#' +#' \describe{ +#' \item{\code{xpx_star}}{An object of class 'tbl' for the GEOID, name, and _xPx\*_ at specified larger census geographies.} +#' \item{\code{xpx_star_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +#' \item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute _xPx\*_.} +#' } +#' +#' @import dplyr +#' @importFrom sf st_drop_geometry st_within +#' @importFrom stats complete.cases +#' @importFrom tidycensus get_acs +#' @importFrom tidyr pivot_longer separate +#' @importFrom tigris combined_statistical_areas core_based_statistical_areas metro_divisions +#' @importFrom utils stack +#' @export +#' +#' @seealso \code{\link[tidycensus]{get_acs}} for additional arguments for geographic extent selection (i.e., \code{state} and \code{county}). +#' +#' @examples +#' \dontrun{ +#' # Wrapped in \dontrun{} because these examples require a Census API key. +#' +#' # Interaction of non-Hispanic Black vs. non-Hispanic white populations +#' ## of census tracts within counties within Georgia, U.S.A., counties (2020) +#' bell( +#' geo_large = 'county', +#' geo_small = 'tract', +#' state = 'GA', +#' year = 2020, +#' subgroup = 'NHoLB' +#' ) +#' +#' } +#' +lieberson <- function(geo_large = 'county', + geo_small = 'tract', + year = 2020, + subgroup, + omit_NAs = TRUE, + quiet = FALSE, + ...) { + + # Check arguments + match.arg(geo_large, choices = c('state', 'county', 'tract', 'cbsa', 'csa', 'metro')) + match.arg(geo_small, choices = c('county', 'tract', 'block group')) + stopifnot(is.numeric(year), year >= 2009) # all variables available 2009 onward + match.arg( + subgroup, + several.ok = TRUE, + choices = c( + 'NHoL', + 'NHoLW', + 'NHoLB', + 'NHoLAIAN', + 'NHoLA', + 'NHoLNHOPI', + 'NHoLSOR', + 'NHoLTOMR', + 'NHoLTRiSOR', + 'NHoLTReSOR', + 'HoL', + 'HoLW', + 'HoLB', + 'HoLAIAN', + 'HoLA', + 'HoLNHOPI', + 'HoLSOR', + 'HoLTOMR', + 'HoLTRiSOR', + 'HoLTReSOR' + ) + ) + + # Select census variables + vars <- c( + TotalPop = 'B03002_001', + NHoL = 'B03002_002', + NHoLW = 'B03002_003', + NHoLB = 'B03002_004', + NHoLAIAN = 'B03002_005', + NHoLA = 'B03002_006', + NHoLNHOPI = 'B03002_007', + NHoLSOR = 'B03002_008', + NHoLTOMR = 'B03002_009', + NHoLTRiSOR = 'B03002_010', + NHoLTReSOR = 'B03002_011', + HoL = 'B03002_012', + HoLW = 'B03002_013', + HoLB = 'B03002_014', + HoLAIAN = 'B03002_015', + HoLA = 'B03002_016', + HoLNHOPI = 'B03002_017', + HoLSOR = 'B03002_018', + HoLTOMR = 'B03002_019', + HoLTRiSOR = 'B03002_020', + HoLTReSOR = 'B03002_021' + ) + + selected_vars <- vars[c('TotalPop', subgroup)] + out_names <- names(selected_vars) # save for output + in_subgroup <- paste0(subgroup, 'E') + + # Acquire xPx* variables and sf geometries + out_dat <- suppressMessages(suppressWarnings( + tidycensus::get_acs( + geography = geo_small, + year = year, + output = 'wide', + variables = selected_vars, + geometry = TRUE, + keep_geo_vars = TRUE, + ... + ) + )) + + # Format output + if (geo_small == 'county') { + out_dat <- out_dat %>% + tidyr::separate(NAME.y, into = c('county', 'state'), sep = ',') + } + if (geo_small == 'tract') { + out_dat <- out_dat %>% + tidyr::separate(NAME.y, into = c('tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate(tract = gsub('[^0-9\\.]', '', tract)) + } + if (geo_small == 'block group') { + out_dat <- out_dat %>% + tidyr::separate(NAME.y, into = c('block.group', 'tract', 'county', 'state'), sep = ',') %>% + dplyr::mutate( + tract = gsub('[^0-9\\.]', '', tract), + block.group = gsub('[^0-9\\.]', '', block.group) + ) + } + + # Grouping IDs for xPx* computation + if (geo_large == 'state') { + out_dat <- out_dat %>% + dplyr::mutate( + oid = STATEFP, + state = stringr::str_trim(state) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'county') { + out_dat <- out_dat %>% + dplyr::mutate( + oid = paste0(STATEFP, COUNTYFP), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'tract') { + out_dat <- out_dat %>% + dplyr::mutate( + oid = paste0(STATEFP, COUNTYFP, TRACTCE), + state = stringr::str_trim(state), + county = stringr::str_trim(county) + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'cbsa') { + stopifnot(is.numeric(year), year >= 2010) # CBSAs only available 2010 onward + lgeom <- suppressMessages(suppressWarnings(tigris::core_based_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% + dplyr::mutate( + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + cbsa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'csa') { + stopifnot(is.numeric(year), year >= 2011) # CSAs only available 2011 onward + lgeom <- suppressMessages(suppressWarnings(tigris::combined_statistical_areas(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% + dplyr::mutate( + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 2] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + csa = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 3] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + if (geo_large == 'metro') { + stopifnot(is.numeric(year), year >= 2011) # Metro Divisions only available 2011 onward + lgeom <- suppressMessages(suppressWarnings(tigris::metro_divisions(year = year))) + wlgeom <- sf::st_within(out_dat, lgeom) + out_dat <- out_dat %>% + dplyr::mutate( + oid = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 4] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist(), + metro = lapply(wlgeom, function(x) { + tmp <- lgeom[x, 5] %>% sf::st_drop_geometry() + lapply(tmp, function(x) { if (length(x) == 0) NA else x }) + }) %>% + unlist() + ) %>% + sf::st_drop_geometry() + } + + # Count of racial/ethnic subgroup populations + ## Count of racial/ethnic comparison subgroup population + if (length(in_subgroup) == 1) { + out_dat <- out_dat %>% + dplyr::mutate(subgroup = .[, in_subgroup]) + } else { + out_dat <- out_dat %>% + dplyr::mutate(subgroup = rowSums(.[, in_subgroup])) + } + + # Compute xPx* + ## From Lieberson (1981) in ISBN-13:978-1-032-53884-6 + ## _{x}P_{x}^* = \sum_{i=1}^{k} \left ( \frac{x_{i}}{X}\right )\left ( \frac{x_{i}}{n_{i}}\right ) + ## Where for k geographical units i: + ## X denotes the total number of subgroup population in study (reference) area + ## x_{i} denotes the number of subgroup population X in geographical unit i + ## n_{i} denotes the total population of geographical unit i + + ## Compute + out_tmp <- out_dat %>% + split(., f = list(out_dat$oid)) %>% + lapply(., FUN = xpx_star_fun, omit_NAs = omit_NAs) %>% + utils::stack(.) %>% + dplyr::mutate( + xPx_star = values, + oid = ind + ) %>% + dplyr::select(xPx_star, oid) + + # Warning for missingness of census characteristics + missingYN <- out_dat[, c('TotalPopE', in_subgroup)] + names(missingYN) <- out_names + missingYN <- missingYN %>% + tidyr::pivot_longer( + cols = dplyr::everything(), + names_to = 'variable', + values_to = 'val' + ) %>% + dplyr::group_by(variable) %>% + dplyr::summarise( + total = dplyr::n(), + n_missing = sum(is.na(val)), + percent_missing = paste0(round(mean(is.na(val)) * 100, 2), ' %') + ) + + if (quiet == FALSE) { + # Warning for missing census data + if (sum(missingYN$n_missing) > 0) { + message('Warning: Missing census data') + } + } + + # Format output + if (geo_large == 'state') { + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, xPx_star) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, xPx_star) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'county') { + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, xPx_star) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, xPx_star) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'tract') { + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, state, county, tract, xPx_star) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, state, county, tract, xPx_star) %>% + .[.$GEOID != 'NANA',] + } + if (geo_large == 'cbsa') { + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, cbsa, xPx_star) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, cbsa, xPx_star) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) + } + if (geo_large == 'csa') { + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, csa, xPx_star) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, csa, xPx_star) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) + } + if (geo_large == 'metro') { + out <- out_dat %>% + dplyr::left_join(out_tmp, by = dplyr::join_by(oid)) %>% + dplyr::select(oid, metro, xPx_star) %>% + unique(.) %>% + dplyr::mutate(GEOID = oid) %>% + dplyr::select(GEOID, metro, xPx_star) %>% + .[.$GEOID != 'NANA', ] %>% + dplyr::distinct(GEOID, .keep_all = TRUE) %>% + dplyr::filter(stats::complete.cases(.)) + } + + out <- out %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out_dat <- out_dat %>% + dplyr::arrange(GEOID) %>% + dplyr::as_tibble() + + out <- list(xpx_star = out, xpx_star_data = out_dat, missing = missingYN) + + return(out) +} diff --git a/R/ndi-package.R b/R/ndi-package.R index ccaab32..29cb891 100644 --- a/R/ndi-package.R +++ b/R/ndi-package.R @@ -10,15 +10,15 @@ #' #' \code{\link{anthopolos}} Computes the spatial Racial Isolation Index (\emph{RI}) based on Anthopolos (2011) \doi{10.1016/j.sste.2011.06.002}. #' -#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (\emph{AI}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. +#' \code{\link{atkinson}} Computes the aspatial income or racial/ethnic Atkinson Index (\emph{A}) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. #' -#' \code{\link{bell}} Computes the aspatial racial/ethnic Isolation Index (\emph{II}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. +#' \code{\link{bell}} Computes the aspatial racial/ethnic Interaction Index (\emph{xPy\*}) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. #' #' \code{\link{bemanian_beyer}} Computes the aspatial racial/ethnic Local Exposure and Isolation (\emph{LEx/Is}) metric based on Bemanian & Beyer (2017) \doi{10.1158/1055-9965.EPI-16-0926}. #' #' \code{\link{bravo}} Computes the spatial Educational Isolation Index (\emph{EI}) based on Bravo (2021) \doi{10.3390/ijerph18179384}. #' -#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (\emph{DI}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. +#' \code{\link{duncan}} Computes the aspatial racial/ethnic Dissimilarity Index (\emph{D}) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. #' #' \code{\link{gini}} Retrieves the aspatial Gini Index (\emph{G}) based on Gini (1921) \doi{10.2307/2223319}. #' @@ -26,6 +26,8 @@ #' #' \code{\link{krieger}} Computes the aspatial Index of Concentration at the Extremes based on Feldman et al. (2015) \doi{10.1136/jech-2015-205728} and Krieger et al. (2016) \doi{10.2105/AJPH.2015.302955}. #' +#' \code{\link{lieberson}} Computes the aspatial racial/ethnic Isolation Index (\emph{xPx\*}) based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and Bell (1954) \doi{10.2307/2574118}. +#' #' \code{\link{messer}} Computes the aspatial Neighborhood Deprivation Index (\emph{NDI}) based on Messer et al. (2006) \doi{10.1007/s11524-006-9094-x}. #' #' \code{\link{powell_wiley}} Computes the aspatial Neighborhood Deprivation Index (\emph{NDI}) based on Andrews et al. (2020) \doi{10.1080/17445647.2020.1750066} and Slotman et al. (2022) \doi{10.1016/j.dib.2022.108002} who use variables chosen by Roux and Mair (2010) \doi{10.1111/j.1749-6632.2009.05333.x}. @@ -34,7 +36,7 @@ #' #' \code{\link{white}} Computes the aspatial racial/ethnic Correlation Ratio (\emph{V}) based on Bell (1954) \doi{10.2307/2574118} and White (1986) \doi{10.2307/3644339}. #' -#' \code{\link{white_blau}} Computes an index of spatial proximity based on White (1986) \doi{10.2307/3644339} and Blau (1977; ISBN-13:978-0-029-03660-0). +#' \code{\link{white_blau}} Computes an index of spatial proximity (\emph{SP}) based on White (1986) \doi{10.2307/3644339} and Blau (1977; ISBN-13:978-0-029-03660-0). #' #' \bold{Pre-formatted U.S. Census Data} #' diff --git a/R/utils.R b/R/utils.R index f7d859d..c52e8ca 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,24 +1,24 @@ # Internal function for the Dissimilarity Index (Duncan & Duncan 1955) ## Returns NA value if only one smaller geography in a larger geography -di_fun <- function(x, omit_NAs) { +d_fun <- function(x, omit_NAs) { xx <- x[ , c('subgroup', 'subgroup_ref')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - 0.5 * sum( - abs( - xx$subgroup / sum(xx$subgroup, na.rm = TRUE) - - xx$subgroup_ref / sum(xx$subgroup_ref, na.rm = TRUE) - ), - na.rm = TRUE) + x_i <- xx$subgroup + n_i <- sum(xx$subgroup, na.rm = TRUE) + y_i <- xx$subgroup_ref + m_i <- sum(xx$subgroup_ref, na.rm = TRUE) + D <- 0.5 * sum(abs((x_i/n_i) - (y_i/m_i)), na.rm = TRUE) + return(D) } } # Internal function for the Atkinson Index (Atkinson 1970) ## Returns NA value if only one smaller geography in a larger geography ## If denoting the Hölder mean -ai_fun <- function(x, epsilon, omit_NAs) { +a_fun <- function(x, epsilon, omit_NAs) { if (omit_NAs == TRUE) { xx <- stats::na.omit(x$subgroup) } else { @@ -36,18 +36,36 @@ ai_fun <- function(x, epsilon, omit_NAs) { } } -# Internal function for the aspatial Racial Isolation Index (Bell 1954) +# Internal function for the aspatial Interaction Index (Bell 1954) ## Returns NA value if only one smaller geography in a larger geography -ii_fun <- function(x, omit_NAs) { +xpy_star_fun <- function(x, omit_NAs) { xx <- x[ , c('TotalPopE', 'subgroup', 'subgroup_ixn')] if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - sum( - (xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup_ixn / xx$TotalPopE), - na.rm = TRUE - ) + x_i <- xx$subgroup + X <- sum(xx$subgroup, na.rm = TRUE) + y_i <- xx$subgroup_ixn + t_i <- xx$TotalPopE + xPy_star <- sum((x_i / X) * (y_i / t_i), na.rm = TRUE) + return(xPy_star) + } +} + +# Internal function for the aspatial Isolation Index (Lieberson 1981) +## Returns NA value if only one smaller geography in a larger geography +xpx_star_fun <- function(x, omit_NAs) { + xx <- x[ , c('TotalPopE', 'subgroup')] + if (omit_NAs == TRUE) { xx <- xx[stats::complete.cases(xx), ] } + if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { + NA + } else { + x_i <- xx$subgroup + X <- sum(xx$subgroup, na.rm = TRUE) + t_i <- xx$TotalPopE + xPx_star <- sum((x_i / X) * (x_i / t_i), na.rm = TRUE) + return(xPx_star) } } @@ -59,12 +77,14 @@ v_fun <- function(x, omit_NAs) { if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - xxx <- sum( - (xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) * (xx$subgroup / xx$TotalPopE), - na.rm = TRUE - ) - px <- sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE) - (xxx - px) / (1 - px) + x_i <- xx$subgroup + X <- sum(xx$subgroup, na.rm = TRUE) + t_i <- xx$TotalPopE + N <- sum(xx$TotalPopE, na.rm = TRUE) + xPx_star <- sum((x_i / X) * (x_i / t_i), na.rm = TRUE) + P <- X / N + V <- (xPx_star - P) / (1 - P) + return(V) } } @@ -76,14 +96,20 @@ lq_fun <- function(x, omit_NAs) { if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - p_im <- xx$subgroup / xx$TotalPopE - if (anyNA(p_im)) { p_im[is.na(p_im)] <- 0 } - LQ <- p_im / (sum(xx$subgroup, na.rm = TRUE) / sum(xx$TotalPopE, na.rm = TRUE)) + x_i <- xx$subgroup # x_im + t_i <- xx$TotalPopE # X_i + p_i <- x_i / t_i # p_im + X <- sum(xx$subgroup, na.rm = TRUE) # X_m + N <- sum(xx$TotalPopE, na.rm = TRUE) # X + if (anyNA(p_i)) { p_i[is.na(p_i)] <- 0 } + LQ <- p_i / (X / N) # (x_im/X_i)/(X_m/X) df <- data.frame(LQ = LQ, GEOID = xx$GEOID) return(df) } } + + # Internal function for the aspatial Local Exposure & Isolation (Bemanian & Beyer 2017) metric ## Returns NA value if only one smaller geography in a larger geography lexis_fun <- function(x, omit_NAs) { @@ -112,11 +138,12 @@ del_fun <- function(x, omit_NAs) { if (nrow(x) < 2 || any(xx < 0) || any(is.na(xx))) { NA } else { - 0.5 * sum( - abs((xx$subgroup / sum(xx$subgroup, na.rm = TRUE)) - (xx$ALAND / sum(xx$ALAND, na.rm = TRUE)) - ), - na.rm = TRUE - ) + x_i <- xx$subgroup + X <- sum(xx$subgroup, na.rm = TRUE) + a_i <- xx$ALAND + A <- sum(xx$ALAND, na.rm = TRUE) + DEL <- 0.5 * sum(abs((x_i / X) - (a_i / A)), na.rm = TRUE) + return(DEL) } } diff --git a/R/white.R b/R/white.R index 8a0628c..fdd32f0 100644 --- a/R/white.R +++ b/R/white.R @@ -38,7 +38,7 @@ #' #' Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. #' -#' \emph{V} removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{V} can range in value from -Inf to Inf. +#' \emph{V} removes the asymmetry from the Isolation Index (Bell) by controlling for the effect of population composition. The Isolation Index (Bell) is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{V} can range in value from 0 to Inf. #' #' Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{V} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{V} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{V} computation. #' diff --git a/README.md b/README.md index deb42a9..6cb02f9 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ [![DOI](https://zenodo.org/badge/521439746.svg)](https://zenodo.org/badge/latestdoi/521439746) -**Date repository last updated**: 2024-08-20 +**Date repository last updated**: 2024-08-22 ### Overview -The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation index (*NDI*) are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the *ndi* package can also compute the (1) spatial Racial Isolation Index (*RI*) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (*EI*) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (*ICE*) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (*DI*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (*DI*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Isolation Index (*II*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), (10) aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089), and (11) an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index (*G*) based on [Gini (1921)](https://doi.org/10.2307/2223319). +The *ndi* package is a suite of [**R**](https://cran.r-project.org/) functions to compute various metrics of socio-economic deprivation and disparity in the United States. Some metrics are considered 'spatial' because they consider the values of neighboring (i.e., adjacent) census geographies in their computation, while other metrics are 'aspatial' because they only consider the value within each census geography. Two types of aspatial neighborhood deprivation index (*NDI*) are available: (1) based on [Messer et al. (2006)](https://doi.org/10.1007/s11524-006-9094-x) and (2) based on [Andrews et al. (2020)](https://doi.org/10.1080/17445647.2020.1750066) and [Slotman et al. (2022)](https://doi.org/10.1016/j.dib.2022.108002) who use variables chosen by [Roux and Mair (2010)](https://doi.org/10.1111/j.1749-6632.2009.05333.x). Both are a decomposition of various demographic characteristics from the U.S. Census Bureau American Community Survey 5-year estimates (ACS-5; 2006-2010 onward) pulled by the [tidycensus](https://CRAN.R-project.org/package=tidycensus) package. Using data from the ACS-5 (2005-2009 onward), the *ndi* package can also compute the (1) spatial Racial Isolation Index (*RI*) based on [Anthopolos et al. (2011)](https://doi.org/10.1016/j.sste.2011.06.002), (2) spatial Educational Isolation Index (*EI*) based on [Bravo et al. (2021)](https://doi.org/10.3390/ijerph18179384), (3) aspatial Index of Concentration at the Extremes (*ICE*) based on [Feldman et al. (2015)](https://doi.org/10.1136/jech-2015-205728) and [Krieger et al. (2016)](https://doi.org/10.2105/AJPH.2015.302955), (4) aspatial racial/ethnic Dissimilarity Index (*D*) based on [Duncan & Duncan (1955)](https://doi.org/10.2307/2088328), (5) aspatial income or racial/ethnic Atkinson Index (*A*) based on [Atkinson (1970)](https://doi.org/10.1016/0022-0531(70)90039-6), (6) aspatial racial/ethnic Interaction Index (_xPy\*_) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and [Bell (1954)](https://doi.org/10.2307/2574118), (7) aspatial racial/ethnic Correlation Ratio (*V*) based on [Bell (1954)](https://doi.org/10.2307/2574118) and [White (1986)](https://doi.org/10.2307/3644339), (8) aspatial racial/ethnic Location Quotient (*LQ*) based on [Merton (1939)](https://doi.org/10.2307/2084686) and [Sudano et al. (2013)](https://doi.org/10.1016/j.healthplace.2012.09.015), (9) aspatial racial/ethnic Local Exposure and Isolation (*LEx/Is*) metric based on [Bemanian & Beyer (2017)](https://doi.org/10.1158/1055-9965.EPI-16-0926), (10) aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089), (11) an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0), and (12) the aspatial racial/ethnic Isolation Index (_xPx\*_) based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and [Bell (1954)](https://doi.org/10.2307/2574118). Also using data from the ACS-5 (2005-2009 onward), the *ndi* package can retrieve the aspatial Gini Index (*G*) based on [Gini (1921)](https://doi.org/10.2307/2223319). ### Installation @@ -48,11 +48,11 @@ To install the development version from GitHub: atkinson -Compute the aspatial Atkinson Index (AI) based on Atkinson (1970) +Compute the aspatial Atkinson Index (A) based on Atkinson (1970) bell -Compute the aspatial racial/ethnic Isolation Index (II) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) +Compute the aspatial racial/ethnic Interaction Index (xPy*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) bemanian_beyer @@ -64,7 +64,7 @@ To install the development version from GitHub: duncan -Compute the aspatial racial/ethnic Dissimilarity Index (DI) based on Duncan & Duncan (1955) +Compute the aspatial racial/ethnic Dissimilarity Index (D) based on Duncan & Duncan (1955) gini Retrieve the aspatial Gini Index (G) based on Gini (1921) @@ -78,6 +78,10 @@ To install the development version from GitHub: Compute the aspatial Index of Concentration at the Extremes (ICE) based on Feldman et al. (2015) and Krieger et al. (2016) +lieberson +Compute the aspatial racial/ethnic Isolation Index (xPx*) based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and Bell (1954) + + messer Compute the aspatial Neighborhood Deprivation Index (NDI) based on Messer et al. (2006) @@ -152,7 +156,7 @@ Thank you to those who suggested additional metrics, including: ### Getting Started * Step 1: Obtain a unique access key from the U.S. Census Bureau. Follow [this link](http://api.census.gov/data/key_signup.html) to obtain one. -* Step 2: Specify your access key in the [`anthopolos()`](R/anthopolos.R), [`atkinson()`](R/atkinson.R), [`bell()`](R/bell.R), [`bemanian_beyer()`](R/bemanian_beyer.R), [`bravo()`](R/bravo.R), [`duncan()`](R/duncan.R), [`gini()`](R/gini.R), [`hoover()`](R/hoover.R), [`krieger()`](R/krieger.R), [`messer()`](R/messer.R), [`powell_wiley()`](R/powell_wiley.R), [`sudano()`](R/sudano.R), or [`white()`](R/white.R) functions using the internal `key` argument or by using the `census_api_key()` function from the [*tidycensus*](https://cran.r-project.org/package=tidycensus) package before running the [`anthopolos()`](R/anthopolos.R), [`atkinson()`](R/atkinson.R), [`bell()`](R/bell.R), [`bemanian_beyer()`](R/bemanian_beyer.R), [`bravo()`](R/bravo.R), [`duncan()`](R/duncan.R), [`gini()`](R/gini.R), [`hoover()`](R/hoover.R), [`krieger()`](R/krieger.R), [`messer()`](R/messer.R), [`powell_wiley()`](R/powell_wiley.R), [`sudano()`](R/sudano.R), or [`white()`](R/white.R) functions (see an example below). +* Step 2: Specify your access key in the [`anthopolos()`](R/anthopolos.R), [`atkinson()`](R/atkinson.R), [`bell()`](R/bell.R), [`bemanian_beyer()`](R/bemanian_beyer.R), [`bravo()`](R/bravo.R), [`duncan()`](R/duncan.R), [`gini()`](R/gini.R), [`hoover()`](R/hoover.R), [`krieger()`](R/krieger.R), [`lieberson()`](R/lieberson.R), [`messer()`](R/messer.R), [`powell_wiley()`](R/powell_wiley.R), [`sudano()`](R/sudano.R), or [`white()`](R/white.R) functions using the internal `key` argument or by using the `census_api_key()` function from the [*tidycensus*](https://cran.r-project.org/package=tidycensus) package before running the [`anthopolos()`](R/anthopolos.R), [`atkinson()`](R/atkinson.R), [`bell()`](R/bell.R), [`bemanian_beyer()`](R/bemanian_beyer.R), [`bravo()`](R/bravo.R), [`duncan()`](R/duncan.R), [`gini()`](R/gini.R), [`hoover()`](R/hoover.R), [`krieger()`](R/krieger.R), [`lieberson()`](R/lieberson.R), [`messer()`](R/messer.R), [`powell_wiley()`](R/powell_wiley.R), [`sudano()`](R/sudano.R), or [`white()`](R/white.R) functions (see an example below). ### Usage @@ -162,6 +166,7 @@ Thank you to those who suggested additional metrics, including: # ------------------ # library(ndi) +library(dplyr) library(ggplot2) library(sf) # dependency fo the 'ndi' package library(tidycensus) # a dependency for the 'ndi' package @@ -180,7 +185,7 @@ census_api_key('...') # INSERT YOUR OWN KEY FROM U.S. CENSUS API # ---------------------- # # Compute the NDI (Messer) values (2016-2020 5-year ACS) for Washington, D.C. census tracts -messer2020DC <- messer(state = 'DC', year = 2020) +messer_2020_DC <- messer(state = 'DC', year = 2020) # ------------------------------ # # Outputs from messer() function # @@ -188,32 +193,32 @@ messer2020DC <- messer(state = 'DC', year = 2020) # A tibble containing the identification, geographic name, NDI (Messer) values, NDI (Messer) # quartiles, and raw census characteristics for each tract -messer2020DC$ndi +messer_2020_DC$ndi # The results from the principal component analysis used to compute the NDI (Messer) values -messer2020DC$pca +messer_2020_DC$pca # A tibble containing a breakdown of the missingingness of the census characteristics # used to compute the NDI (Messer) values -messer2020DC$missing +messer_2020_DC$missing # -------------------------------------- # # Visualize the messer() function output # # -------------------------------------- # # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (Messer) values to the census tract geometry -DC2020messer <- tract2020DC %>% - left_join(messer2020DC$ndi, by = 'GEOID') +DC_2020_messer <- tract_2020_DC %>% + left_join(messer_2020_DC$ndi, by = 'GEOID') # Visualize the NDI (Messer) values (2016-2020 5-year ACS) for Washington, D.C. census tracts ## Continuous Index ggplot() + geom_sf( - data = DC2020messer, + data = DC_2020_messer, aes(fill = NDI), color = 'white' ) + @@ -230,19 +235,19 @@ ggplot() + ## Categorical Index (Quartiles) ### Rename '9-NDI not avail' level as NA for plotting -DC2020messer$NDIQuartNA <- +DC_2020_messer$NDIQuartNA <- factor( replace( - as.character(DC2020messer$NDIQuart), - DC2020messer$NDIQuart == '9-NDI not avail', + as.character(DC_2020_messer$NDIQuart), + DC_2020_messer$NDIQuart == '9-NDI not avail', NA ), - c(levels(DC2020messer$NDIQuart)[-5], NA) + c(levels(DC_2020_messer$NDIQuart)[-5], NA) ) ggplot() + geom_sf( - data = DC2020messer, + data = DC_2020_messer, aes(fill = NDIQuartNA), color = 'white' ) + @@ -270,9 +275,9 @@ ggplot() + # Compute the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for # Washington, D.C. census tracts -powell_wiley2020DC <- powell_wiley(state = 'DC', year = 2020) +powell_wiley_2020_DC <- powell_wiley(state = 'DC', year = 2020) # impute missing values -powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) +powell_wiley_2020_DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # ------------------------------------ # # Outputs from powell_wiley() function # @@ -280,28 +285,28 @@ powell_wiley2020DCi <- powell_wiley(state = 'DC', year = 2020, imp = TRUE) # A tibble containing the identification, geographic name, NDI (Powell-Wiley) value, and # raw census characteristics for each tract -powell_wiley2020DC$ndi +powell_wiley_2020_DC$ndi # The results from the principal component analysis used to # compute the NDI (Powell-Wiley) values -powell_wiley2020DC$pca +powell_wiley_2020_DC$pca # A tibble containing a breakdown of the missingingness of the census characteristics used to # compute the NDI (Powell-Wiley) values -powell_wiley2020DC$missing +powell_wiley_2020_DC$missing # -------------------------------------------- # # Visualize the powell_wiley() function output # # -------------------------------------------- # # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the NDI (powell_wiley) values to the census tract geometry -DC2020powell_wiley <- tract2020DC - left_join(powell_wiley2020DC$ndi, by = 'GEOID') -DC2020powell_wiley <- DC2020powell_wiley - left_join(powell_wiley2020DCi$ndi, by = 'GEOID') +DC_2020_powell_wiley <- tract_2020_DC %>% + left_join(powell_wiley_2020_DC$ndi, by = 'GEOID') +DC_2020_powell_wiley <- DC_2020_powell_wiley %>% + left_join(powell_wiley_2020_DCi$ndi, by = 'GEOID') # Visualize the NDI (Powell-Wiley) values (2016-2020 5-year ACS) for # Washington, D.C. census tracts @@ -309,7 +314,7 @@ DC2020powell_wiley <- DC2020powell_wiley ## Non-imputed missing tracts (Continuous) ggplot() + geom_sf( - data = DC2020powell_wiley, + data = DC_2020_powell_wiley, aes(fill = NDI.x), color = 'white' ) + @@ -326,19 +331,18 @@ ggplot() + ## Non-imputed missing tracts (Categorical quintiles) ### Rename '9-NDI not avail' level as NA for plotting -DC2020powell_wiley$NDIQuintNA.x <- factor( +DC_2020_powell_wiley$NDIQuintNA.x <- factor( replace( - as.character(DC2020powell_wiley$NDIQuint.x), - DC2020powell_wiley$NDIQuint.x == '9-NDI not avail', + as.character(DC_2020_powell_wiley$NDIQuint.x), + DC_2020_powell_wiley$NDIQuint.x == '9-NDI not avail', NA ), - c(levels(DC2020powell_wiley$NDIQuint.x)[-6], NA) + c(levels(DC_2020_powell_wiley$NDIQuint.x)[-6], NA) ) - ggplot() + geom_sf( - data = DC2020powell_wiley, + data = DC_2020_powell_wiley, aes(fill = NDIQuintNA.x), color = 'white' ) + @@ -365,7 +369,7 @@ ggplot() + ## Imputed missing tracts (Continuous) ggplot() + geom_sf( - data = DC2020powell_wiley, + data = DC_2020_powell_wiley, aes(fill = NDI.y), color = 'white' ) + @@ -382,18 +386,18 @@ ggplot() + ## Imputed missing tracts (Categorical quintiles) ### Rename '9-NDI not avail' level as NA for plotting -DC2020powell_wiley$NDIQuintNA.y <- factor( +DC_2020_powell_wiley$NDIQuintNA.y <- factor( replace( - as.character(DC2020powell_wiley$NDIQuint.y), - DC2020powell_wiley$NDIQuint.y == '9-NDI not avail', + as.character(DC_2020_powell_wiley$NDIQuint.y), + DC_2020_powell_wiley$NDIQuint.y == '9-NDI not avail', NA ), - c(levels(DC2020powell_wiley$NDIQuint.y)[-6], NA) + c(levels(DC_2020_powell_wiley$NDIQuint.y)[-6], NA) ) ggplot() + geom_sf( - data = DC2020powell_wiley, + data = DC_2020_powell_wiley, aes(fill = NDIQuintNA.y), color = 'white' ) + @@ -421,18 +425,18 @@ ggplot() + # --------------------------- # # Merge the two NDI metrics (Messer and Powell-Wiley, imputed) -ndi2020DC <- messer2020DC$ndi %>% +NDI_2020_DC <- messer_2020_DC$ndi %>% left_join( - powell_wiley2020DCi$ndi, + powell_wiley_2020_DCi$ndi, by = 'GEOID', suffix = c('.messer', '.powell_wiley') ) # Check the correlation of two NDI metrics (Messer & Powell-Wiley, imputed) as continuous values -cor(ndi2020DC$NDI.messer, ndi2020DC$NDI.powell_wiley, use = 'complete.obs') # Pearson's r=0.975 +cor(NDI_2020_DC$NDI.messer, NDI_2020_DC$NDI.powell_wiley, use = 'complete.obs') # Pearson's r=0.975 # Check the similarity of the two NDI metrics (Messer and Powell-Wiley, imputed) as quartiles -table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) +table(NDI_2020_DC$NDIQuart, NDI_2020_DC$NDIQuint) ``` ``` r @@ -441,19 +445,19 @@ table(ndi2020DC$NDIQuart, ndi2020DC$NDIQuint) # ---------------------------- # # Gini Index based on Gini (1921) from the ACS-5 -gini2020DC <- gini(state = 'DC', year = 2020) +G_2020_DC <- gini(state = 'DC', year = 2020) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) -# Join the Gini Index values to the census tract geometry -gini2020DC <- tract2020DC %>% - left_join(gini2020DC$gini, by = 'GEOID') +# Join the G (Gini) values to the census tract geometry +G_2020_DC <- tract_2020_DC %>% + left_join(G_2020_DC$g, by = 'GEOID') ggplot() + geom_sf( - data = gini2020DC, - aes(fill = gini), + data = G_2020_DC, + aes(fill = G), color = 'white' ) + theme_bw() + @@ -468,7 +472,7 @@ ggplot() + ) ``` -![](man/figures/gini.png) +![](man/figures/g.png) ``` r # ---------------------------------------------------- # @@ -477,18 +481,18 @@ ggplot() + # Racial Isolation Index based on Anthopolos et al. (2011) ## Selected subgroup: Not Hispanic or Latino, Black or African American alone -ri2020DC <- anthopolos(state = 'DC', year = 2020, subgroup = 'NHoLB') +RI_2020_DC <- anthopolos(state = 'DC', year = 2020, subgroup = 'NHoLB') # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the RI (Anthopolos) values to the census tract geometry -ri2020DC <- tract2020DC %>% - left_join(ri2020DC$ri, by = 'GEOID') +RI_2020_DC <- tract_2020_DC %>% + left_join(RI_2020_DC$ri, by = 'GEOID') ggplot() + geom_sf( - data = ri2020DC, + data = RI_2020_DC, aes(fill = RI), color = 'white' ) + @@ -514,18 +518,18 @@ ggplot() + # Educational Isolation Index based on Bravo et al. (2021) ## Selected subgroup: without four-year college degree -ei2020DC <- bravo(state = 'DC', year = 2020, subgroup = c('LtHS', 'HSGiE', 'SCoAD')) +EI_2020_DC <- bravo(state = 'DC', year = 2020, subgroup = c('LtHS', 'HSGiE', 'SCoAD')) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the EI (Bravo) values to the census tract geometry -ei2020DC <- tract2020DC %>% - left_join(ei2020DC$ei, by = 'GEOID') +EI_2020_DC <- tract_2020_DC %>% + left_join(EI_2020_DC$ei, by = 'GEOID') ggplot() + geom_sf( - data = ei2020DC, + data = EI_2020_DC, aes(fill = EI), color = 'white' ) + @@ -551,19 +555,19 @@ ggplot() + # Five Indices of Concentration at the Extremes based on Feldman et al. (2015) and # Krieger et al. (2016) -ice2020DC <- krieger(state = 'DC', year = 2020) +ICE_2020_DC <- krieger(state = 'DC', year = 2020) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the ICEs (Krieger) values to the census tract geometry -ice2020DC <- tract2020DC %>% - left_join(ice2020DC$ice, by = 'GEOID') +ICE_2020_DC <- tract_2020_DC %>% + left_join(ICE_2020_DC$ice, by = 'GEOID') # Plot ICE for Income ggplot() + geom_sf( - data = ice2020DC, + data = ICE_2020_DC, aes(fill = ICE_inc), color = 'white' ) + @@ -590,7 +594,7 @@ ggplot() + # Plot ICE for Education ggplot() + geom_sf( - data = ice2020DC, + data = ICE_2020_DC, aes(fill = ICE_edu), color = 'white' ) + @@ -617,7 +621,7 @@ ggplot() + # Plot ICE for Race/Ethnicity ggplot() + geom_sf( - data = ice2020DC, + data = ICE_2020_DC, aes(fill = ICE_rewb), color = 'white' ) + @@ -646,7 +650,7 @@ ggplot() + ## black (including Hispanic) in 20th income percentile ggplot() + geom_sf( - data = ice2020DC, + data = ICE_2020_DC, aes(fill = ICE_wbinc), color = 'white' ) + @@ -675,7 +679,7 @@ ggplot() + ## white non-Hispanic in 80th income percentile vs. white non-Hispanic in 20th income percentile ggplot() + geom_sf( - data = ice2020DC, + data = ICE_2020_DC, aes(fill = ICE_wpcinc), color = 'white' ) + @@ -709,7 +713,7 @@ ggplot() + ## Selected subgroup reference: Not Hispanic or Latino, white alone ## Selected large geography: census tract ## Selected small geography: census block group -di2020DC <- duncan( +D_2020_DC <- duncan( geo_large = 'tract', geo_small = 'block group', state = 'DC', @@ -719,16 +723,16 @@ di2020DC <- duncan( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) -# Join the DI (Duncan & Duncan) values to the census tract geometry -di2020DC <- tract2020DC %>% - left_join(di2020DC$di, by = 'GEOID') +# Join the D (Duncan & Duncan) values to the census tract geometry +D_2020_DC <- tract_2020_DC %>% + left_join(D_2020_DC$d, by = 'GEOID') ggplot() + geom_sf( - data = di2020DC, - aes(fill = DI), + data = D_2020_DC, + aes(fill = D), color = 'white' ) + theme_bw() + @@ -738,12 +742,13 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Dissimilarity Index (Duncan & Duncan)\nWashington, D.C. census block groups to tracts', + 'Dissimilarity Index (Duncan & Duncan)\n + Washington, D.C. census block groups to tracts', subtitle = 'Black non-Hispanic vs. white non-Hispanic' ) ``` -![](man/figures/di.png) +![](man/figures/d.png) ```r # -------------------------------------------------------- # @@ -755,7 +760,7 @@ ggplot() + ## Selected large geography: census tract ## Selected small geography: census block group ## Default epsilon (0.5 or over- and under-representation contribute equally) -ai2020DC <- atkinson( +A_2020_DC <- atkinson( geo_large = 'tract', geo_small = 'block group', state = 'DC', @@ -764,16 +769,16 @@ ai2020DC <- atkinson( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the AI (Atkinson) values to the census tract geometry -ai2020DC <- tract2020DC %>% - left_join(ai2020DC$ai, by = 'GEOID') +A_2020_DC <- tract_2020_DC %>% + left_join(A_2020_DC$a, by = 'GEOID') ggplot() + geom_sf( - data = ai2020DC, - aes(fill = AI), + data = A_2020_DC, + aes(fill = A), color = 'white' ) + theme_bw() + @@ -783,24 +788,25 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Atkinson Index (Atkinson)\nWashington, D.C. census block groups to tracts', + 'Atkinson Index (Atkinson)\n + Washington, D.C. census block groups to tracts', subtitle = expression(paste('Black non-Hispanic (', epsilon, ' = 0.5)')) ) ``` -![](man/figures/ai.png) +![](man/figures/a.png) ```r -# ----------------------------------------------------- # -# Compute aspatial racial/ethnic Isolation Index (Bell) # -# ----------------------------------------------------- # +# ------------------------------------------------------- # +# Compute aspatial racial/ethnic Interaction Index (Bell) # +# ------------------------------------------------------- # -# Isolation Index based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) +# Interaction Index based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -ii2020DC <- bell( +xPy_star_2020_DC <- bell( geo_large = 'tract', geo_small = 'block group', state = 'DC', @@ -810,16 +816,16 @@ ii2020DC <- bell( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) -# Join the II (Bell) values to the census tract geometry -ii2020DC <- tract2020DC %>% - left_join(ii2020DC$ii, by = 'GEOID') +# Join the xPy* (Bell) values to the census tract geometry +xPy_star_2020_DC <- tract_2020_DC %>% + left_join(xPy_star_2020_DC$xpy_star, by = 'GEOID') ggplot() + geom_sf( - data = ii2020DC, - aes(fill = II), + data = xPy_star_2020_DC, + aes(fill = xPy_star), color = 'white' ) + theme_bw() + @@ -829,12 +835,13 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Isolation Index (Bell)\nWashington, D.C. census block groups to tracts', + 'Interaction Index (Bell)\n + Washington, D.C. census block groups to tracts', subtitle = 'Black non-Hispanic vs. white non-Hispanic' ) ``` -![](man/figures/ii.png) +![](man/figures/xpy_star.png) ```r # -------------------------------------------------------- # @@ -845,7 +852,7 @@ ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -v2020DC <- white( +V_2020_DC <- white( geo_large = 'tract', geo_small = 'block group', state = 'DC', @@ -854,28 +861,35 @@ v2020DC <- white( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the V (White) values to the census tract geometry -v2020DC <- tract2020DC %>% - left_join(v2020DC$v, by = 'GEOID') +V_2020_DC <- tract_2020_DC %>% + left_join(V_2020_DC$v, by = 'GEOID') ggplot() + geom_sf( - data = v2020DC, + data = V_2020_DC, aes(fill = V), color = 'white' ) + theme_bw() + - scale_fill_viridis_c(limits = c(0, 1)) + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + midpoint = 0 + ) + labs( fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Correlation Ratio (White)\nWashington, D.C. census block groups to tracts', + 'Correlation Ratio (White)\n + Washington, D.C. census block groups to tracts', subtitle = 'Black non-Hispanic' ) + ggsave('man/figures/v.png', width = 7, height = 7) ``` ![](man/figures/v.png) @@ -889,7 +903,7 @@ ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: state ## Selected small geography: census tract -lq2020DC <- sudano( +LQ_2020_DC <- sudano( geo_large = 'state', geo_small = 'tract', state = 'DC', @@ -898,15 +912,15 @@ lq2020DC <- sudano( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the LQ (Sudano) values to the census tract geometry -lq2020DC <- tract2020DC %>% - left_join(lq2020DC$lq, by = 'GEOID') +LQ_2020_DC <- tract_2020_DC %>% + left_join(LQ_2020_DC$lq, by = 'GEOID') ggplot() + geom_sf( - data = lq2020DC, + data = LQ_2020_DC, aes(fill = LQ), color = 'white' ) + @@ -917,7 +931,8 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Location Quotient (Sudano)\nWashington, D.C. census tracts vs. 'state'', + 'Location Quotient (Sudano)\n + Washington, D.C. census tracts vs. "state"', subtitle = 'Black non-Hispanic' ) ``` @@ -934,7 +949,7 @@ ggplot() + ## Selected interaction subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: state ## Selected small geography: census tract -lexis2020DC <- bemanian_beyer( +LExIs_2020_DC <- bemanian_beyer( geo_large = 'state', geo_small = 'tract', state = 'DC', @@ -944,20 +959,25 @@ lexis2020DC <- bemanian_beyer( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the LEx/Is (Bemanian & Beyer) values to the census tract geometry -lexis2020DC <- tract2020DC %>% - left_join(lexis2020DC$lexis, by = 'GEOID') +LExIs_2020_DC <- tract_2020_DC %>% + left_join(LExIs_2020_DC$lexis, by = 'GEOID') ggplot() + geom_sf( - data = lexis2020DC, + data = LExIs_2020_DC, aes(fill = LExIs), color = 'white' ) + theme_bw() + - scale_fill_viridis_c() + + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + midpoint = 0 + ) + labs( fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2016-2020 estimates' @@ -980,7 +1000,7 @@ ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -del2020DC <- hoover( +DEL_2020_DC <- hoover( geo_large = 'tract', geo_small = 'block group', state = 'DC', @@ -989,15 +1009,15 @@ del2020DC <- hoover( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the DEL (Hoover) values to the census tract geometry -del2020DC <- tract2020DC %>% - left_join(del2020DC$del, by = 'GEOID') +DEL_2020_DC <- tract_2020_DC %>% + left_join(DEL_2020_DC$del, by = 'GEOID') ggplot() + geom_sf( - data = del2020DC, + data = DEL_2020_DC, aes(fill = DEL), color = 'white' ) + @@ -1008,7 +1028,8 @@ ggplot() + caption = 'Source: U.S. Census ACS 2016-2020 estimates' ) + ggtitle( - 'Delta (Hoover)\nWashington, D.C. census block groups to tracts', + 'Delta (Hoover)\n + Washington, D.C. census block groups to tracts', subtitle = 'Black non-Hispanic' ) ``` @@ -1024,7 +1045,7 @@ ggplot() + ## Selected subgroup: Not Hispanic or Latino, Black or African American alone ## Selected large geography: census tract ## Selected small geography: census block group -sp2020DC <- white_blau( +SP_2020_DC <- white_blau( geo_large = 'tract', geo_small = 'block group', state = 'DC', @@ -1034,15 +1055,15 @@ sp2020DC <- white_blau( ) # Obtain the 2020 census tracts from the 'tigris' package -tract2020DC <- tracts(state = 'DC', year = 2020, cb = TRUE) +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) # Join the SP (White) values to the census tract geometry -sp2020DC <- tract2020DC %>% - left_join(sp2020DC$sp, by = 'GEOID') +SP_2020_DC <- tract_2020_DC %>% + left_join(SP_2020_DC$sp, by = 'GEOID') ggplot() + geom_sf( - data = sp2020DC, + data = SP_2020_DC, aes(fill = SP), color = 'white' ) + @@ -1066,6 +1087,51 @@ ggplot() + ![](man/figures/sp.png) +```r +# ---------------------------------------------------------- # +# Compute aspatial racial/ethnic Isolation Index (Lieberson) # +# ---------------------------------------------------------- # + +# Interaction Index based on Lieberson (1981; ISBN-13:978-1-032-53884-6) and Bell (1954) +## Selected subgroup: Not Hispanic or Latino, Black or African American alone +## Selected large geography: census tract +## Selected small geography: census block group +xPx_star_2020_DC <- lieberson( + geo_large = 'tract', + geo_small = 'block group', + state = 'DC', + year = 2020, + subgroup = 'NHoLB' +) + +# Obtain the 2020 census tracts from the 'tigris' package +tract_2020_DC <- tracts(state = 'DC', year = 2020, cb = TRUE) + +# Join the xPx* (Lieberson) values to the census tract geometry +xPx_star_2020_DC <- tract_2020_DC %>% + left_join(xPx_star_2020_DC$xpx_star, by = 'GEOID') + +ggplot() + + geom_sf( + data = xPx_star_2020_DC, + aes(fill = xPx_star), + color = 'white' + ) + + theme_bw() + + scale_fill_viridis_c(limits = c(0, 1)) + + labs( + fill = 'Index (Continuous)', + caption = 'Source: U.S. Census ACS 2016-2020 estimates' + ) + + ggtitle( + 'Isolation Index (Lieberson)\n + Washington, D.C. census block groups to tracts', + subtitle = 'Black non-Hispanic' + ) +``` + +![](man/figures/xpx_star.png) + ### Funding This package was originally developed while the author was a postdoctoral fellow supported by the [Cancer Prevention Fellowship Program](https://cpfp.cancer.gov) at the [National Cancer Institute](https://www.cancer.gov). Any modifications since December 05, 2022 were made while the author was an employee of [DLH, LLC](https://www.dlhcorp.com) (formerly Social & Scientific Systems, Inc.). diff --git a/cran-comments.md b/cran-comments.md index 2f19724..4abd0c8 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -3,8 +3,12 @@ * Actions taken since previous submission: * Added `hoover()` function to compute the aspatial racial/ethnic Delta (*DEL*) based on [Hoover (1941)](https://doi.org/10.1017/S0022050700052980) and Duncan et al. (1961; LC:60007089) * Added `white_blau()` function to compute an index of spatial proximity (*SP*) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0) + * Added `lieberson()` function to compute he aspatial racial/ethnic Isolation Index (_xPx\*_) based on [White (1986)](https://doi.org/10.2307/3644339) and Blau (1977; ISBN-13:978-0-029-03660-0) * Added `geo_large = 'cbsa'` for Core Based Statistical Areas, `geo_large = 'csa'` for Combined Statistical Areas, and `geo_large = 'metro'` for Metropolitan Divisions as the larger geographical unit in `atkinson()`, `bell()`, `bemanian_beyer()`, `duncan()`, `hoover()`, `sudano()`, and `white()`, `white_blau()` functions. - * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA + * Thank you for the feature suggestions, [Symielle Gaston](https://orcid.org/0000-0001-9495-1592) + * `bell()` function computes the Interaction Index (Bell) not the Isolation Index as previously documented. Updated documentation throughout + * Fixed bug in `bell()`, `bemanian_beyer()`, `duncan()`, `sudano()`, and `white()` functions when a smaller geography contains n=0 total population, will assign a value of zero (0) in the internal calculation instead of NA + * Renamed *AI* as *A*, *DI* as *D*, *Gini* as *G*, and *II* as _xPy\*_ to align with the definitions from [Massey & Denton (1988)](https://doi.org/10.1093/sf/67.2.281). The output for `atkinson()` now produces `a` instead of `ai`. The output for `duncan()` now produces `d` instead of `ai`. The output for `gini()` now produces `g` instead of `gini`. The output for `bell()` now produces `xPy_star` instead of `II`. The internal functions `ai_fun()`, `di_fun()` and `ii_fun()` were renamed `a_fun()`, `d_fun()` and `xpy_star_fun()`, respectively. * `tigris` and `units` are now Imports * 'package.R' deprecated. Replaced with 'ndi-package.R' * Re-formatted code and documentation throughout for consistent readability diff --git a/inst/CITATION b/inst/CITATION index 3b26249..96b2b88 100755 --- a/inst/CITATION +++ b/inst/CITATION @@ -56,7 +56,7 @@ bibentry(bibtype = 'Article', 'Journal of economic theory, 2(3), 244-263.', 'DOI:10.1016/0022-0531(70)90039-6'), - header = 'If you computed AI (Atkinson) values, please also cite:' + header = 'If you computed A (Atkinson) values, please also cite:' ) bibentry(bibtype = 'Book', @@ -76,7 +76,7 @@ bibentry(bibtype = 'Book', 'Los Angeles:John Randolph Haynes and Dora Haynes Foundation.', 'ISBN-13:978-0-837-15637-8'), - header = 'If you computed II (Bell) values, please also cite (1):' + header = 'If you computed xPy* (Bell) values, please also cite (1):' ) bibentry(bibtype = 'Article', @@ -157,7 +157,7 @@ bibentry(bibtype = 'Article', 'American Sociological Review, 20(2), 210-217.', 'DOI:10.2307/2088328'), - header = 'If you computed DI (Duncan & Duncan) values, please also cite:' + header = 'If you computed D (Duncan & Duncan) values, please also cite:' ) bibentry(bibtype = 'Article', @@ -176,7 +176,7 @@ bibentry(bibtype = 'Article', 'The Economic Journal, 31(121), 124-126.', 'DOI:10.2307/2223319'), - header = 'If you retrieved Gini Index values, please also cite:' + header = 'If you retrieved G (Gini) values, please also cite:' ) bibentry(bibtype = 'Article', @@ -454,3 +454,47 @@ bibentry(bibtype = 'Book', header = 'And (2):' ) + +bibentry(bibtype = 'InBook', + title = 'Ethnic Segregation in Cities', + author = as.person('Stanley Lieberson'), + chapter = 'An Asymmetrical Approach to Segregation', + year = '1981', + edition = '1st edition', + editor = c(as.person('Ceri Peach'), + as.person('Vaughan Robinson'), + as.person('Susan Smith')), + city = 'London', + publisher = 'Croom Helm', + isbn = '978-1-032-53884-6', + + textVersion = + paste('Stanley Lieberson (1981).', + '"An Asymmetrical Approach to Segregation." Pp. 61-82 in', + 'Ethnic Segregation in Cities,', + 'edited by Ceri Peach, Vaughan Robinson, and Susan Smith.', + '1st Ed.', + 'London:Croom Helm.', + 'ISBN-13:978-1-032-53884-6'), + + header = 'If you computed xPx* (Lieberson) values, please also cite (1):' +) + +bibentry(bibtype = 'Article', + title = 'A Probability Model for the Measurement of Ecological Segregation', + author = as.person('Wendell Bell'), + journal = 'Social Forces', + year = '1954', + volume = '32', + issue = '4', + pages = '357--364', + doi = '10.2307/2574118', + + textVersion = + paste('Wendell Bell (1954).', + 'A Probability Model for the Measurement of Ecological Segregation.', + 'Social Forces, 32(4), 357-364.', + 'DOI:10.2307/2574118'), + + header = 'And (2):' +) diff --git a/man/atkinson.Rd b/man/atkinson.Rd index 9212295..dfc5941 100644 --- a/man/atkinson.Rd +++ b/man/atkinson.Rd @@ -36,16 +36,16 @@ atkinson( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ai}}{An object of class 'tbl' for the GEOID, name, and \emph{AI} at specified larger census geographies.} -\item{\code{ai_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{AI}.} +\item{\code{a}}{An object of class 'tbl' for the GEOID, name, and \emph{A} at specified larger census geographies.} +\item{\code{a_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{A}.} } } \description{ Compute the aspatial Atkinson Index of income or selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Atkinson Index (\emph{AI}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{AI} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Atkinson Index (\emph{A}) of income or selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Atkinson (1970) \doi{10.1016/0022-0531(70)90039-6}. This function provides the computation of \emph{A} for median household income and any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. When \code{subgroup = 'MedHHInc'}, the metric will be computed for median household income ('B19013_001'). The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ @@ -73,11 +73,11 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -\emph{AI} is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{AI} can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). +\emph{A} is a measure of the evenness of residential inequality (e.g., racial/ethnic segregation) when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{A} can range in value from 0 to 1 with smaller values indicating lower levels of inequality (e.g., less segregation). The \code{epsilon} argument that determines how to weight the increments to inequality contributed by different proportions of the Lorenz curve. A user must explicitly decide how heavily to weight smaller geographical units at different points on the Lorenz curve (i.e., whether the index should take greater account of differences among areas of over- or under-representation). The \code{epsilon} argument must have values between 0 and 1.0. For \code{0 <= epsilon < 0.5} or less 'inequality-averse,' smaller geographical units with a subgroup proportion smaller than the subgroup proportion of the larger geographical unit contribute more to inequality ('over-representation'). For \code{0.5 < epsilon <= 1.0} or more 'inequality-averse,' smaller geographical units with a subgroup proportion larger than the subgroup proportion of the larger geographical unit contribute more to inequality ('under-representation'). If \code{epsilon = 0.5} (the default), units of over- and under-representation contribute equally to the index. See Section 2.3 of Saint-Jacques et al. (2020) \doi{10.48550/arXiv.2002.05819} for one method to select \code{epsilon}. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{AI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{AI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{AI} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{A} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{A} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{A} computation. } \examples{ \dontrun{ diff --git a/man/bell.Rd b/man/bell.Rd index 3ef41bf..02fc8ba 100644 --- a/man/bell.Rd +++ b/man/bell.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/bell.R \name{bell} \alias{bell} -\title{Isolation Index based on Shevky & Williams (1949) and Bell (1954)} +\title{Interaction Index based on Shevky & Williams (1949) and Bell (1954)} \usage{ bell( geo_large = "county", @@ -36,16 +36,16 @@ bell( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{ii}}{An object of class 'tbl' for the GEOID, name, and \emph{II} at specified larger census geographies.} -\item{\code{ii_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{II}.} +\item{\code{xpy_star}}{An object of class 'tbl' for the GEOID, name, and \emph{xPy\*} at specified larger census geographies.} +\item{\code{xpy_star_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{xPy\*}.} } } \description{ -Compute the aspatial Isolation Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. +Compute the aspatial Interaction Index (Bell) of a selected racial/ethnic subgroup(s) and U.S. geographies. } \details{ -This function will compute the aspatial Isolation Index (\emph{II}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of \emph{II} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Interaction Index (\emph{xPy\*}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954) \doi{10.2307/2574118}. This function provides the computation of \emph{xPy\*} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ @@ -73,15 +73,15 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -\emph{II} is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{II} can range in value from 0 to 1. +\emph{xPy\*} is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). \emph{xPy\*} can range in value from 0 to 1. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{II} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{II} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{II} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{xPy\*} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{xPy\*} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{xPy\*} computation. } \examples{ \dontrun{ # Wrapped in \dontrun{} because these examples require a Census API key. - # Isolation of non-Hispanic Black vs. non-Hispanic white populations + # Interaction of non-Hispanic Black vs. non-Hispanic white populations ## of census tracts within counties within Georgia, U.S.A., counties (2020) bell( geo_large = 'county', diff --git a/man/duncan.Rd b/man/duncan.Rd index 77966d5..a55a080 100644 --- a/man/duncan.Rd +++ b/man/duncan.Rd @@ -36,16 +36,16 @@ duncan( An object of class 'list'. This is a named list with the following components: \describe{ -\item{\code{di}}{An object of class 'tbl' for the GEOID, name, and \emph{DI} at specified larger census geographies.} -\item{\code{di_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} -\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{DI}.} +\item{\code{di}}{An object of class 'tbl' for the GEOID, name, and \emph{D} at specified larger census geographies.} +\item{\code{d_data}}{An object of class 'tbl' for the raw census values at specified smaller census geographies.} +\item{\code{missing}}{An object of class 'tbl' of the count and proportion of missingness for each census variable used to compute \emph{D}.} } } \description{ Compute the aspatial Dissimilarity Index (Duncan & Duncan) of selected racial/ethnic subgroup(s) and U.S. geographies } \details{ -This function will compute the aspatial Dissimilarity Index (\emph{DI}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{DI} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). +This function will compute the aspatial Dissimilarity Index (\emph{D}) of selected racial/ethnic subgroups and U.S. geographies for a specified geographical extent (e.g., the entire U.S. or a single state) based on Duncan & Duncan (1955) \doi{10.2307/2088328}. This function provides the computation of \emph{D} for any of the U.S. Census Bureau race/ethnicity subgroups (including Hispanic and non-Hispanic individuals). The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Census Bureau 5-year American Community Survey characteristics used for the aspatial computation. The yearly estimates are available for 2009 onward when ACS-5 data are available (2010 onward for \code{geo_large = 'cbsa'} and 2011 onward for \code{geo_large = 'csa'} or \code{geo_large = 'metro'}) but may be available from other U.S. Census Bureau surveys. The twenty racial/ethnic subgroups (U.S. Census Bureau definitions) are: \itemize{ @@ -73,9 +73,9 @@ The function uses the \code{\link[tidycensus]{get_acs}} function to obtain U.S. Use the internal \code{state} and \code{county} arguments within the \code{\link[tidycensus]{get_acs}} function to specify geographic extent of the data output. -\emph{DI} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{DI} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. +\emph{D} is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones within which the smaller geographical areas are located. \emph{D} can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical area under conditions of maximum segregation. -Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{DI} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{DI} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{DI} computation. +Larger geographies available include state \code{geo_large = 'state'}, county \code{geo_large = 'county'}, census tract \code{geo_large = 'tract'}, Core Based Statistical Area \code{geo_large = 'cbsa'}, Combined Statistical Area \code{geo_large = 'csa'}, and Metropolitan Division \code{geo_large = 'metro'} levels. Smaller geographies available include, county \code{geo_small = 'county'}, census tract \code{geo_small = 'tract'}, and census block group \code{geo_small = 'block group'} levels. If a larger geographical area is comprised of only one smaller geographical area (e.g., a U.S county contains only one census tract), then the \emph{D} value returned is NA. If the larger geographical unit is Combined Based Statistical Areas \code{geo_large = 'csa'} or Core Based Statistical Areas \code{geo_large = 'cbsa'}, only the smaller geographical units completely within a larger geographical unit are considered in the \emph{D} computation (see internal \code{\link[sf]{st_within}} function for more information) and recommend specifying all states within which the interested larger geographical unit are located using the internal \code{state} argument to ensure all appropriate smaller geographical units are included in the \emph{D} computation. } \examples{ \dontrun{ diff --git a/man/figures/a.png b/man/figures/a.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf95ead8b592addc1ce972c7039e39c8f4632ef GIT binary patch literal 384062 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 I@(O`yEgl47fbU_G#= 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 RktVt7h-8y+o<#IBY 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

    b=`?q_e!aV)SFR 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 DSoDOH literal 0 HcmV?d00001 diff --git a/man/figures/ai.png b/man/figures/ai.png deleted file mode 100644 index a7d7aec39ae54c7b4d80d7c8be883b34a1287425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384217 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 an0;nQ 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%0AYfh10s=X3 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⪚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�W*DtHTY7dqg@km+C=(`LpWk=N^BAjduJ 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�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

    `!u!5;dAHjx#Z*`m4*-zjrC@NnS2AtB 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

      CvNi&wUZwnr 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 literal 0 HcmV?d00001 diff --git a/man/figures/di.png b/man/figures/di.png deleted file mode 100644 index b4529b7c7e37f5bad6ecfab1de00b6dd1e260373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 385788 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�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

    The process to compute a US-standardized NDI (Powell-Wiley) -took about 2.8 minutes to run on a machine with the features listed at +took about 24.7 minutes to run on a machine with the features listed at the end of the vignette.

    @@ -1160,13 +1160,13 @@

    Additional metrics socio-economic deprivation and disparity

    al. (2015) and Krieger et al. (2016)
  • duncan() function that computes the Dissimilarity Index -(DI) based on Duncan +(D) based on Duncan & Duncan (1955)
  • atkinson() function that computes the Atkinson Index -(AI) based on Atkinson +(A) based on Atkinson (1970)
  • bell() function that computes the aspatial -racial/ethnic Isolation Index (II) based on Shevky & +racial/ethnic Interaction Index (xPy*) based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and Bell (1954)
  • white() function that computes the aspatial racial/ethnic Correlation Ratio (V) based on Bell (1954) and White (1986)
  • @@ -1183,6 +1183,9 @@

    Additional metrics socio-economic deprivation and disparity

  • white_blau() function that computes an index of spatial proximity (SP) based on White (1986) and Blau (1977; ISBN-13:978-0-029-03660-0)
  • +
  • lieberson() function that computes the aspatial +racial/ethnic Isolation Index (xPx*) based on Lieberson (1981; +ISBN-13:978-1-032-53884-6) and Bell (1954)
  • Compute Racial Isolation Index (RI)

    @@ -1531,14 +1534,14 @@

    Retrieve the Gini Index (G)

    # Obtain the 2010 counties from the 'tigris' package county2010MA <- counties(state = 'MA', year = 2010, cb = TRUE) -# Join the Gini Index values to the census tract geometry +# Join the G (Gini) values to the census tract geometry MA2010gini <- tract2010MA %>% - left_join(gini2010MA$gini, by = 'GEOID')
    -
    # Visualize the Gini Index values (2006-2010 5-year ACS) for Massachusetts, U.S.A., census tracts 
    +  left_join(gini2010MA$g, by = 'GEOID')
    +
    # Visualize the G (Gini) values (2006-2010 5-year ACS) for Massachusetts, U.S.A., census tracts 
     ggplot() +
       geom_sf(
         data = MA2010gini,
    -    aes(fill = gini),
    +    aes(fill = G),
         size = 0.05,
         color = 'transparent'
       ) +
    @@ -1735,9 +1738,9 @@ 

    Index of Concentration at the Extremes (ICE)

    subtitle = 'white non-Hispanic (WNH) in 80th inc pctl vs. WNH in 20th inc pctl' )

    -
    -

    Compute racial/ethnic Dissimilarity Index (DI)

    -

    Compute the aspatial racial/ethnic DI values (2006-2010 +

    +

    Compute racial/ethnic Dissimilarity Index (D)

    +

    Compute the aspatial racial/ethnic D values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties from census tracts. This metric is based on Duncan & Duncan (1955) that assessed the racial/ethnic isolation of @@ -1867,9 +1870,9 @@

    Compute racial/ethnic Dissimilarity Index (DI)

    -

    DI is a measure of the evenness of racial/ethnic residential +

    D is a measure of the evenness of racial/ethnic residential segregation when comparing smaller geographical areas to larger ones -within which the smaller geographical areas are located. DI can +within which the smaller geographical areas are located. D can range in value from 0 to 1 and represents the proportion of racial/ethnic subgroup members that would have to change their area of residence to achieve an even distribution within the larger geographical @@ -1888,14 +1891,14 @@

    Compute racial/ethnic Dissimilarity Index (DI)

    # Remove first 9 characters from GEOID for compatibility with tigris information county2010PA$GEOID <- substring(county2010PA$GEO_ID, 10) -# Join the DI values to the county geometry +# Join the D values to the county geometry PA2010duncan <- county2010PA %>% - left_join(duncan2010PA$di, by = 'GEOID')
    -
    # Visualize the DI values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties 
    +  left_join(duncan2010PA$d, by = 'GEOID')
    +
    # Visualize the D values (2006-2010 5-year ACS) for Pennsylvania, U.S.A., counties 
     ggplot() +
       geom_sf(
         data = PA2010duncan,
    -    aes(fill = DI),
    +    aes(fill = D),
         size = 0.05,
         color = 'white'
       ) +
    @@ -1914,10 +1917,10 @@ 

    Compute racial/ethnic Dissimilarity Index (DI)

    )

    -
    +

    Compute aspatial income or racial/ethnic Atkinson Index -(AI)

    -

    Compute the aspatial income or racial/ethnic AI values +(A)

    +

    Compute the aspatial income or racial/ethnic A values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties from census block groups. This metric is based on Atkinson (1970) that assessed the distribution of income within 12 counties but has since been adapted @@ -2046,13 +2049,13 @@

    Compute aspatial income or racial/ethnic Atkinson Index -

    AI is a measure of the inequality and, in the context of +

    A is a measure of the inequality and, in the context of residential race/ethnicity, segregation when comparing smaller geographical areas to larger ones within which the smaller geographical -areas are located. AI can range in value from 0 to 1 and -smaller values of the index indicate lower levels of inequality (e.g., -less segregation).

    -

    AI is sensitive to the choice of epsilon +areas are located. A can range in value from 0 to 1 and smaller +values of the index indicate lower levels of inequality (e.g., less +segregation).

    +

    A is sensitive to the choice of epsilon argument or the shape parameter that determines how to weight the increments to inequality (segregation) contributed by different proportions of the Lorenz curve. A user must explicitly decide how @@ -2084,14 +2087,14 @@

    Compute aspatial income or racial/ethnic Atkinson Index # Obtain the 2021 census counties from the 'tigris' package county2021KY <- counties(state = 'KY', year = 2021, cb = TRUE) -# Join the AI values to the county geometry +# Join the A values to the county geometry KY2021atkinson <- county2021KY %>% - left_join(atkinson2021KY$ai, by = 'GEOID') -
    # Visualize the AI values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
    +  left_join(atkinson2021KY$a, by = 'GEOID')
    +
    # Visualize the A values (2017-2021 5-year ACS) for Kentucky, U.S.A., counties
     ggplot() +
       geom_sf(
         data = KY2021atkinson,
    -    aes(fill = AI),
    +    aes(fill = A),
         size = 0.05,
         color = 'white'
       ) +
    @@ -2110,14 +2113,14 @@ 

    Compute aspatial income or racial/ethnic Atkinson Index )

    -
    -

    Compute racial/ethnic Isolation Index (II)

    -

    Compute the aspatial racial/ethnic II values (2017-2021 -5-year ACS) for Ohio, U.S.A., counties from census block groups. This -metric is based on Shevky & Williams (1949; -ISBN-13:978-0-837-15637-8) and adapted by Bell (1954). Multiple -racial/ethnic subgroups are available in the bell() -function, including:

    +
    +

    Compute racial/ethnic Interaction Index (xPy*)

    +

    Compute the aspatial racial/ethnic xPy* values (2017-2021 +5-year ACS) for Ohio, U.S.A., counties from census tracts. This metric +is based on Shevky & Williams (1949; ISBN-13:978-0-837-15637-8) and +adapted by Bell (1954). +Multiple racial/ethnic subgroups are available in the +bell() function, including:

    @@ -2128,7 +2131,7 @@

    Compute racial/ethnic Isolation Index (II)

    - @@ -2239,12 +2242,12 @@

    Compute racial/ethnic Isolation Index (II)

    ACS table source racial/ethnic subgroupcharacter for subgroup or or subgroup_ref +character for subgroup or subgroup_ixn argument
    -

    II is some measure of the probability that a member of one +

    xPy* is some measure of the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation) when comparing smaller geographical areas to larger ones -within which the smaller geographical areas are located. II can -range in value from 0 to 1.

    +within which the smaller geographical areas are located. xPy* +can range in value from 0 to 1.

    bell2021OH <- bell(
       geo_large = 'county',
       geo_small = 'tract',
    @@ -2257,14 +2260,14 @@ 

    Compute racial/ethnic Isolation Index (II)

    # Obtain the 2021 census counties from the 'tigris' package county2021OH <- counties(state = 'OH', year = 2021, cb = TRUE) -# Join the II values to the county geometry +# Join the xPy* values to the county geometry OH2021bell <- county2021OH %>% - left_join(bell2021OH$ii, by = 'GEOID')
    -
    # Visualize the II values (2017-2021 5-year ACS) for Ohio, U.S.A., counties
    +  left_join(bell2021OH$xpy_star, by = 'GEOID')
    +
    # Visualize the xPy* values (2017-2021 5-year ACS) for Ohio, U.S.A., counties
     ggplot() +
       geom_sf(
         data = OH2021bell,
    -    aes(fill = II),
    +    aes(fill = xPy_star),
         size = 0.05,
         color = 'white'
       ) +
    @@ -2278,10 +2281,10 @@ 

    Compute racial/ethnic Isolation Index (II)

    scale_fill_viridis_c(limits = c(0, 1)) + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + ggtitle( - 'Isolation Index (Bell)\nOhio census tracts to counties', + 'Interaction Index (Bell)\nOhio census tracts to counties', subtitle = 'Black non-Hispanic vs. white non-Hispanic' )
    -

    +

    Compute Correlation Ratio (V)

    @@ -2418,7 +2421,7 @@

    Compute Correlation Ratio (V)

    the probability that a member of one subgroup(s) will meet or interact with a member of another subgroup(s) with higher values signifying higher probability of interaction (less isolation). V can range -in value from -Inf to Inf.

    +in value from 0 to Inf.

    white2021SC <- white(
       geo_large = 'county',
       geo_small = 'tract',
    @@ -2448,13 +2451,18 @@ 

    Compute Correlation Ratio (V)

    size = 0.2 ) + theme_minimal() + - scale_fill_viridis_c() + - labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + - ggtitle( - 'Correlation Ratio (White)\nSouth Carolina census tracts to counties', - subtitle = 'Black non-Hispanic' - )
    -

    + scale_fill_gradient2( + low = '#998ec3', + mid = '#f7f7f7', + high = '#f1a340', + midpoint = 1 + ) + + labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2017-2021 estimates') + + ggtitle( + 'Correlation Ratio (White)\nSouth Carolina census tracts to counties', + subtitle = 'Black non-Hispanic' + )
    +

    Compute Location Quotient (LQ)

    @@ -2649,7 +2657,8 @@

    Compute Local Exposure and Isolation (LEx/Is)

    ACS table source racial/ethnic subgroup -character for subgroup argument +character for subgroup or subgroup_ixn +argument @@ -3202,7 +3211,178 @@

    Compute an index of spatial proximity (SP)

    subtitle = 'Black non-Hispanic vs. white non-Hispanic' )

    -
    sessionInfo()
    + +
    +

    Compute racial/ethnic Isolation Index (xPx*)

    +

    Compute the aspatial racial/ethnic xPx* values (2015-2019 +5-year ACS) for Delaware, U.S.A., census tracts from census block +groups. This metric is based on Bell (1954) and adapted by +Lieberson (1981; ISBN-13:978-1-032-53884-6). Multiple racial/ethnic +subgroups are available in the lieberson() function, +including:

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ACS table sourceracial/ethnic subgroupcharacter for subgroup argument
    B03002_002not Hispanic or LatinoNHoL
    B03002_003not Hispanic or Latino, white aloneNHoLW
    B03002_004not Hispanic or Latino, Black or African American aloneNHoLB
    B03002_005not Hispanic or Latino, American Indian and Alaska Native aloneNHoLAIAN
    B03002_006not Hispanic or Latino, Asian aloneNHoLA
    B03002_007not Hispanic or Latino, Native Hawaiian and Other Pacific Islander +aloneNHoLNHOPI
    B03002_008not Hispanic or Latino, some other race aloneNHoLSOR
    B03002_009not Hispanic or Latino, two or more racesNHoLTOMR
    B03002_010not Hispanic or Latino, two races including some other raceNHoLTRiSOR
    B03002_011not Hispanic or Latino, two races excluding some other race, and +three or more racesNHoLTReSOR
    B03002_012Hispanic or LatinoHoL
    B03002_013Hispanic or Latino, white aloneHoLW
    B03002_014Hispanic or Latino, Black or African American aloneHoLB
    B03002_015Hispanic or Latino, American Indian and Alaska Native aloneHoLAIAN
    B03002_016Hispanic or Latino, Asian aloneHoLA
    B03002_017Hispanic or Latino, Native Hawaiian and other Pacific Islander +aloneHoLNHOPI
    B03002_018Hispanic or Latino, some other race aloneHoLSOR
    B03002_019Hispanic or Latino, two or more racesHoLTOMR
    B03002_020Hispanic or Latino, two races including some other raceHoLTRiSOR
    B03002_021Hispanic or Latino, two races excluding some other race, and three +or more racesHoLTReSOR
    +

    xPx* is some measure of the probability that a member of one +subgroup(s) will meet or interact with a member of another subgroup(s) +with higher values signifying higher probability of interaction (less +isolation) when comparing smaller geographical areas to larger ones +within which the smaller geographical areas are located. xPx* +can range in value from 0 to 1.

    +
    lieberson2021DE <- lieberson(
    +  geo_large = 'tract',
    +  geo_small = 'block group',
    +  state = 'DE',
    +  year = 2019,
    +  subgroup = 'NHoLB'
    +)
    +
    +# Obtain the 2021 census counties from the 'tigris' package
    +tract2021DE <- tracts(state = 'DE', year = 2019, cb = TRUE)
    +
    +# Join the xPx* values to the county geometry
    +DE2021lieberson <- tract2021DE %>%
    +  left_join(lieberson2021DE$xpx_star, by = 'GEOID')
    +
    # Visualize the xPx* values (2015-2019 5-year ACS) for Delaware, U.S.A., census tracts
    +ggplot() +
    +  geom_sf(
    +    data = DE2021lieberson,
    +    aes(fill = xPx_star),
    +    size = 0.05,
    +    color = 'white'
    +  ) +
    +  geom_sf(
    +    data = tract2021DE,
    +    fill = 'transparent',
    +    color = 'white',
    +    size = 0.2
    +  ) +
    +  theme_minimal() +
    +  scale_fill_viridis_c(limits = c(0, 1)) +
    +  labs(fill = 'Index (Continuous)', caption = 'Source: U.S. Census ACS 2015-2019 estimates') +
    +  ggtitle(
    +    'Isolation Index (Lieberson)\nDelaware census block groups to census tracts',
    +    subtitle = 'Black non-Hispanic'
    +  )
    +

    +
    sessionInfo()
    ## R version 4.4.1 (2024-06-14 ucrt)
     ## Platform: x86_64-w64-mingw32/x64
     ## Running under: Windows 10 x64 (build 19045)
    @@ -3224,7 +3404,7 @@ 

    Compute an index of spatial proximity (SP)

    ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] tigris_2.1 tidycensus_1.6.5 sf_1.0-16 ndi_0.1.6.9000 +## [1] tigris_2.1 tidycensus_1.6.5 sf_1.0-16 ndi_0.1.6.9002 ## [5] ggplot2_3.5.1 dplyr_1.1.4 knitr_1.48 ## ## loaded via a namespace (and not attached):