load packages

require(tidyverse);
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
require(sf); 
## Loading required package: sf
## Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
require(mapview); 
## Loading required package: mapview
require(magrittr); 
## Loading required package: magrittr
## 
## Attaching package: 'magrittr'
## 
## The following object is masked from 'package:purrr':
## 
##     set_names
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
  1. Join the COVID-19 data to the NYC zip code area data (sf or sp polygons).
#Read in the data 
zip_sf <- st_read("Data/ZIP_CODE_040114/ZIP_CODE_040114.shp")
## Reading layer `ZIP_CODE_040114' from data source 
##   `/Users/jamesreo/Desktop/R Independent Study/Weeks 7-9/Session 8/R-spatial/Data/ZIP_CODE_040114/ZIP_CODE_040114.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 263 features and 12 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: 913129 ymin: 120020.9 xmax: 1067494 ymax: 272710.9
## Projected CRS: NAD83 / New York Long Island (ftUS)
NYC_Covid_2023 <- read_csv("Data/R-Spatial_II_Lab/tests-by-zcta_2021_04_23.csv",
                                show_col_types = FALSE)
str(NYC_Covid_2023)
## spc_tbl_ [177 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ MODIFIED_ZCTA    : num [1:177] 10001 10002 10003 10004 10005 ...
##  $ NEIGHBORHOOD_NAME: chr [1:177] "Chelsea/NoMad/West Chelsea" "Chinatown/Lower East Side" "East Village/Gramercy/Greenwich Village" "Financial District" ...
##  $ BOROUGH_GROUP    : chr [1:177] "Manhattan" "Manhattan" "Manhattan" "Manhattan" ...
##  $ label            : chr [1:177] "10001, 10118" "10002" "10003" "10004" ...
##  $ lat              : num [1:177] 40.8 40.7 40.7 40.7 40.7 ...
##  $ lon              : num [1:177] -74 -74 -74 -74 -74 ...
##  $ COVID_CASE_COUNT : num [1:177] 1542 5902 2803 247 413 ...
##  $ COVID_CASE_RATE  : num [1:177] 5584 7836 5193 8311 4716 ...
##  $ POP_DENOMINATOR  : num [1:177] 27613 75323 53978 2972 8757 ...
##  $ COVID_DEATH_COUNT: num [1:177] 35 264 48 2 0 1 4 118 37 62 ...
##  $ COVID_DEATH_RATE : num [1:177] 126.8 350.5 88.9 67.3 0 ...
##  $ PERCENT_POSITIVE : num [1:177] 7.86 12.63 6.93 6.92 6.72 ...
##  $ TOTAL_COVID_TESTS: num [1:177] 20158 48197 41076 3599 6102 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   MODIFIED_ZCTA = col_double(),
##   ..   NEIGHBORHOOD_NAME = col_character(),
##   ..   BOROUGH_GROUP = col_character(),
##   ..   label = col_character(),
##   ..   lat = col_double(),
##   ..   lon = col_double(),
##   ..   COVID_CASE_COUNT = col_double(),
##   ..   COVID_CASE_RATE = col_double(),
##   ..   POP_DENOMINATOR = col_double(),
##   ..   COVID_DEATH_COUNT = col_double(),
##   ..   COVID_DEATH_RATE = col_double(),
##   ..   PERCENT_POSITIVE = col_double(),
##   ..   TOTAL_COVID_TESTS = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>
#Join by zipcode 
covid_zip_sf_merged <- base::merge(zip_sf, NYC_Covid_2023, by.x = "ZIPCODE", by.y = "MODIFIED_ZCTA")
names(covid_zip_sf_merged) 
##  [1] "ZIPCODE"           "BLDGZIP"           "PO_NAME"          
##  [4] "POPULATION"        "AREA"              "STATE"            
##  [7] "COUNTY"            "ST_FIPS"           "CTY_FIPS"         
## [10] "URL"               "SHAPE_AREA"        "SHAPE_LEN"        
## [13] "NEIGHBORHOOD_NAME" "BOROUGH_GROUP"     "label"            
## [16] "lat"               "lon"               "COVID_CASE_COUNT" 
## [19] "COVID_CASE_RATE"   "POP_DENOMINATOR"   "COVID_DEATH_COUNT"
## [22] "COVID_DEATH_RATE"  "PERCENT_POSITIVE"  "TOTAL_COVID_TESTS"
## [25] "geometry"
  1. Aggregate the NYC food retails store data (points) to the zip code data, so that we know how many retail stores in each zip code area. Note that not all locations are for food retail. And we need to choose the specific types according to the data.
#Read in and examine
nyc_foodstores_sf <- st_read("./Data/R-Spatial_II_Lab/nycFoodStore.shp")
## Reading layer `nycFoodStore' from data source 
##   `/Users/jamesreo/Desktop/R Independent Study/Weeks 7-9/Session 8/R-spatial/Data/R-Spatial_II_Lab/nycFoodStore.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 11300 features and 16 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -74.2484 ymin: 40.50782 xmax: -73.67061 ymax: 40.91008
## Geodetic CRS:  WGS 84
str(nyc_foodstores_sf)
## Classes 'sf' and 'data.frame':   11300 obs. of  17 variables:
##  $ ï__Cnty : chr  "Bronx" "Bronx" "Bronx" "Bronx" ...
##  $ Lcns_Nm : int  734149 606221 606228 723375 724807 712943 703060 609065 722972 609621 ...
##  $ Oprtn_T : chr  "Store" "Store" "Store" "Store" ...
##  $ Estbl_T : chr  "JAC" "JAC" "JAC" "JAC" ...
##  $ Entty_N : chr  "7 ELEVEN FOOD STORE #37933H" "1001 SAN MIGUEL FOOD CENTER INC" "1029 FOOD PLAZA INC" "1078 DELI GROCERY CORP" ...
##  $ DBA_Nam : chr  NA "1001 SAN MIGUEL FD CNTR" "1029 FOOD PLAZA" "1078 DELI GROCERY" ...
##  $ Strt_Nmb: chr  "500" "1001" "122" "1078" ...
##  $ Stret_Nm: chr  "BAYCHESTER AVE" "SHERIDAN AVE" "E 181ST ST" "EAST 165TH STREET" ...
##  $ Add_L_2 : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Add_L_3 : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ City    : chr  "BRONX" "BRONX" "BRONX" "BRONX" ...
##  $ State   : chr  "NY" "NY" "NY" "NY" ...
##  $ Zip_Cod : int  10475 10456 10453 10459 10456 10453 10467 10456 10456 10472 ...
##  $ Sqr_Ftg : chr  "0" "1,100" "2,000" "1,200" ...
##  $ Locatin : chr  "500 BAYCHESTER AVE\nBRONX, NY 10475\n(40.869156, -73.831875)" "1001 SHERIDAN AVE\nBRONX, NY 10456\n(40.829061, -73.919613)" "122 E 181ST ST\nBRONX, NY 10453\n(40.854755, -73.902853)" "1078 EAST 165TH STREET\nBRONX, NY 10459\n(40.825105, -73.890589)" ...
##  $ Coords  : chr  "40.869156, -73.831875" "40.829061, -73.919613" "40.854755, -73.902853" "40.825105, -73.890589" ...
##  $ geometry:sfc_POINT of length 11300; first list element:  'XY' num  -73.8 40.9
##  - attr(*, "sf_column")= chr "geometry"
##  - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
##   ..- attr(*, "names")= chr [1:16] "ï__Cnty" "Lcns_Nm" "Oprtn_T" "Estbl_T" ...
#Mutate and change CRS
zip_sf %>% 
  mutate(tract_area = st_area(geometry)) %>% 
  st_transform(4326) %>%
  st_join(nyc_foodstores_sf) %>%
  filter(Estbl_T == 'A') %>%
  head()
## Simple feature collection with 6 features and 29 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: -73.94807 ymin: 40.66319 xmax: -73.925 ymax: 40.67994
## Geodetic CRS:  WGS 84
##      ZIPCODE BLDGZIP  PO_NAME POPULATION     AREA STATE COUNTY ST_FIPS CTY_FIPS
## 2.7    11213       0 Brooklyn      62426 29631004    NY  Kings      36      047
## 2.8    11213       0 Brooklyn      62426 29631004    NY  Kings      36      047
## 2.21   11213       0 Brooklyn      62426 29631004    NY  Kings      36      047
## 2.40   11213       0 Brooklyn      62426 29631004    NY  Kings      36      047
## 2.41   11213       0 Brooklyn      62426 29631004    NY  Kings      36      047
## 2.46   11213       0 Brooklyn      62426 29631004    NY  Kings      36      047
##                       URL SHAPE_AREA SHAPE_LEN                  tract_area
## 2.7  http://www.usps.com/          0         0 29631004 [US_survey_foot^2]
## 2.8  http://www.usps.com/          0         0 29631004 [US_survey_foot^2]
## 2.21 http://www.usps.com/          0         0 29631004 [US_survey_foot^2]
## 2.40 http://www.usps.com/          0         0 29631004 [US_survey_foot^2]
## 2.41 http://www.usps.com/          0         0 29631004 [US_survey_foot^2]
## 2.46 http://www.usps.com/          0         0 29631004 [US_survey_foot^2]
##      ï__Cnty Lcns_Nm Oprtn_T Estbl_T                        Entty_N
## 2.7    Kings  734705   Store       A             J & Y DISCOUNT INC
## 2.8    Kings  618090   Store       A           ACTION BEVERAGE CORP
## 2.21   Kings  714880   Store       A               ELBERATI BASEL A
## 2.40   Kings  719258   Store       A         DOLLAR TREE STORES INC
## 2.41   Kings  712253   Store       A         DOLLAR TREE STORES INC
## 2.46   Kings  618099   Store       A FAMILY DOLLAR STORES OF NY INC
##                      DBA_Nam  Strt_Nmb       Stret_Nm Add_L_2 Add_L_3     City
## 2.7           99 CENTS DREAM      1376 ST JOHNS PLACE      NA      NA BROOKLYN
## 2.8          ACTION BEVERAGE        65       TROY AVE      NA      NA BROOKLYN
## 2.21 BROOKLYN WAY CANDY&GROC       142      UTICA AVE      NA      NA BROOKLYN
## 2.40     DOLLAR TREE # 06153      1720   ATLANTIC AVE      NA      NA BROOKLYN
## 2.41      DOLLAR TREE  #5067       250      UTICA AVE      NA      NA BROOKLYN
## 2.46     FAMILY DOLLAR #6690 1679-1683     PACIFIC ST      NA      NA BROOKLYN
##      State Zip_Cod Sqr_Ftg
## 2.7     NY   11213   2,500
## 2.8     NY   11213   2,500
## 2.21    NY   11213     800
## 2.40    NY   11213       0
## 2.41    NY   11213   5,000
## 2.46    NY   11213   1,000
##                                                                Locatin
## 2.7   1376 ST JOHNS PLACE\nBROOKLYN, NY 11213\n(40.670677, -73.932705)
## 2.8           65 TROY AVE\nBROOKLYN, NY 11213\n(40.677191, -73.935902)
## 2.21        142 UTICA AVE\nBROOKLYN, NY 11213\n(40.674019, -73.930632)
## 2.40    1720 ATLANTIC AVE\nBROOKLYN, NY 11213\n(40.677498, -73.933573)
## 2.41        250 UTICA AVE\nBROOKLYN, NY 11213\n(40.669954, -73.931014)
## 2.46 1679 1683 PACIFIC ST\nBROOKLYN, NY 11213\n(40.676826, -73.934715)
##                     Coords                       geometry
## 2.7  40.670677, -73.932705 POLYGON ((-73.9374 40.67973...
## 2.8  40.677191, -73.935902 POLYGON ((-73.9374 40.67973...
## 2.21 40.674019, -73.930632 POLYGON ((-73.9374 40.67973...
## 2.40 40.677498, -73.933573 POLYGON ((-73.9374 40.67973...
## 2.41 40.669954, -73.931014 POLYGON ((-73.9374 40.67973...
## 2.46 40.676826, -73.934715 POLYGON ((-73.9374 40.67973...
#Aggregate and mutate stores and geometry to zipcodes, plot to check.
NYC_stores_agr_sf <- zip_sf %>% 
      mutate(tract_area = st_area(geometry)) %>%
      st_transform(4326) %>%
      st_join(nyc_foodstores_sf) %>%
      group_by(ZIPCODE) %>% 
      summarize(n_stores = n(),
                tract_area = max(tract_area)) 


mapview(NYC_stores_agr_sf, zcol='n_stores', legend=FALSE)
  1. Aggregate the NYC health facilities (points) to the zip code data. Similarly, choose appropriate subtypes such as nursing homes from the facilities.
#Read in, filter for NYC and chosen subgroup.  
nys_health_facilities <- read_csv("Data/R-Spatial_II_Lab/NYS_Health_Facility.csv",
                                show_col_types = FALSE)

nyc_zip_codes <- as.list(as.character(zip_sf$ZIPCODE))

nyc_health_facilities <- nys_health_facilities %>% filter(`Facility Zip Code` %in%
                                                            nyc_zip_codes, 
                                                          `Short Description` %in% c("HOSP", "NH"))

str(nyc_health_facilities)
## spc_tbl_ [235 × 36] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Facility ID                 : num [1:235] 1217 1185 1469 1705 7745 ...
##  $ Facility Name               : chr [1:235] "St Patricks Home" "Montefiore Medical Center - Montefiore Westchester Square" "Mount Sinai Morningside" "Dry Harbor Nursing Home" ...
##  $ Short Description           : chr [1:235] "NH" "HOSP" "HOSP" "NH" ...
##  $ Description                 : chr [1:235] "Residential Health Care Facility - SNF" "Hospital" "Hospital" "Residential Health Care Facility - SNF" ...
##  $ Facility Open Date          : chr [1:235] "01/01/1901" "08/01/1979" "01/01/1901" "06/01/1987" ...
##  $ Facility Address 1          : chr [1:235] "66 Van Cortlandt Park South" "2475 St. Raymond Avenue" "1111 Amsterdam Avenue" "61-35 Dry Harbor Road" ...
##  $ Facility Address 2          : chr [1:235] NA NA NA NA ...
##  $ Facility City               : chr [1:235] "Bronx" "Bronx" "New York" "Middle Village" ...
##  $ Facility State              : chr [1:235] "New York" "New York" "New York" "New York" ...
##  $ Facility Zip Code           : chr [1:235] "10463" "10461" "10025" "11379" ...
##  $ Facility Phone Number       : num [1:235] 7.19e+09 7.18e+09 2.13e+09 7.19e+09 7.18e+09 ...
##  $ Facility Fax Number         : num [1:235] NA NA NA NA NA ...
##  $ Facility Website            : chr [1:235] NA NA NA NA ...
##  $ Facility County Code        : num [1:235] 7094 7094 7093 7096 7096 ...
##  $ Facility County             : chr [1:235] "Bronx" "Bronx" "New York" "Queens" ...
##  $ Regional Office ID          : num [1:235] 5 5 5 5 5 5 5 5 5 5 ...
##  $ Regional Office             : chr [1:235] "Metropolitan Area Regional Office - New York City" "Metropolitan Area Regional Office - New York City" "Metropolitan Area Regional Office - New York City" "Metropolitan Area Regional Office - New York City" ...
##  $ Main Site Name              : chr [1:235] NA "Montefiore Medical Center - Henry & Lucy Moses Div" "Mount Sinai West" NA ...
##  $ Main Site Facility ID       : num [1:235] NA 1169 1466 NA NA ...
##  $ Operating Certificate Number: chr [1:235] "7000307N" "7000006H" "7002032H" "7003359N" ...
##  $ Operator Name               : chr [1:235] "St Patricks Home for the Aged & Infirm" "Montefiore Medical Center" "St Lukes Roosevelt Hospital Center Inc" "Dry Harbor HRF Inc" ...
##  $ Operator Address 1          : chr [1:235] "Box 218 Rd 1" "111 East 210th Street" "Amsterdam Avenue At 114th Street" "61-35 Dry Harbor Road" ...
##  $ Operator Address 2          : chr [1:235] NA NA NA NA ...
##  $ Operator City               : chr [1:235] "Germantown" "Bronx" "New York" "Middle Village" ...
##  $ Operator State              : chr [1:235] "New York" "New York" "New York" "New York" ...
##  $ Operator Zip Code           : chr [1:235] "12526" "10467" "10025" "11379" ...
##  $ Cooperator Name             : chr [1:235] NA "Montefiore Health System, Inc" "Mount Sinai Hospitals Group, Inc." NA ...
##  $ Cooperator Address          : chr [1:235] NA "111 East 210th Street" "One Gustave L. Levy Place" NA ...
##  $ Cooperator Address 2        : chr [1:235] NA NA NA NA ...
##  $ Cooperator City             : chr [1:235] NA "Bronx" "New York" NA ...
##  $ Cooperator State            : chr [1:235] "New York" "New York" "New York" "New York" ...
##  $ Cooperator Zip Code         : chr [1:235] NA "10467" "10029" NA ...
##  $ Ownership Type              : chr [1:235] "Not for Profit Corporation" "Not for Profit Corporation" "Not for Profit Corporation" "Business Corporation" ...
##  $ Facility Latitude           : num [1:235] 40.9 40.8 40.8 40.7 40.8 ...
##  $ Facility Longitude          : num [1:235] -73.9 -73.8 -74 -73.9 -73.9 ...
##  $ Facility Location           : chr [1:235] "(40.884361, -73.888451)" "(40.840431, -73.848244)" "(40.805912, -73.961639)" "(40.726879, -73.871681)" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   `Facility ID` = col_double(),
##   ..   `Facility Name` = col_character(),
##   ..   `Short Description` = col_character(),
##   ..   Description = col_character(),
##   ..   `Facility Open Date` = col_character(),
##   ..   `Facility Address 1` = col_character(),
##   ..   `Facility Address 2` = col_character(),
##   ..   `Facility City` = col_character(),
##   ..   `Facility State` = col_character(),
##   ..   `Facility Zip Code` = col_character(),
##   ..   `Facility Phone Number` = col_double(),
##   ..   `Facility Fax Number` = col_double(),
##   ..   `Facility Website` = col_character(),
##   ..   `Facility County Code` = col_double(),
##   ..   `Facility County` = col_character(),
##   ..   `Regional Office ID` = col_double(),
##   ..   `Regional Office` = col_character(),
##   ..   `Main Site Name` = col_character(),
##   ..   `Main Site Facility ID` = col_double(),
##   ..   `Operating Certificate Number` = col_character(),
##   ..   `Operator Name` = col_character(),
##   ..   `Operator Address 1` = col_character(),
##   ..   `Operator Address 2` = col_character(),
##   ..   `Operator City` = col_character(),
##   ..   `Operator State` = col_character(),
##   ..   `Operator Zip Code` = col_character(),
##   ..   `Cooperator Name` = col_character(),
##   ..   `Cooperator Address` = col_character(),
##   ..   `Cooperator Address 2` = col_character(),
##   ..   `Cooperator City` = col_character(),
##   ..   `Cooperator State` = col_character(),
##   ..   `Cooperator Zip Code` = col_character(),
##   ..   `Ownership Type` = col_character(),
##   ..   `Facility Latitude` = col_double(),
##   ..   `Facility Longitude` = col_double(),
##   ..   `Facility Location` = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>
#filter missing values 
nyc_health_facilities_filtered <- nyc_health_facilities %>%
  filter(!is.na(`Facility Longitude`) & !is.na(`Facility Latitude`))

#convert to sf
nyc_health_facilities_sf <- st_as_sf(nyc_health_facilities_filtered, coords = c("Facility Longitude", "Facility Latitude"), crs = st_crs(zip_sf))

#change CRS
nyc_health_facilities_sf <- st_transform(nyc_health_facilities_sf, 4326)

#aggregate

health_facilities_agr <- zip_sf %>% 
      mutate(tract_area = st_area(geometry)) %>%
  st_transform(4326) %>%
      st_join(nyc_health_facilities_sf) %>%
      group_by(ZIPCODE) %>% 
      summarize(n_facilities = n(),
                tract_area = max(tract_area))

mapview(health_facilities_agr, z_col='n_facilities',legend=FALSE)

4.Join the Census ACS population, race, and age data to the NYC Planning Census Tract Data.

#read in data
nyc_tracts_sf <- st_read('Data/R-Spatial_II_Lab/2010 Census Tracts/geo_export_1dc7b645-647b-4806-b9a0-7b79660f120a.shp')
## Reading layer `geo_export_1dc7b645-647b-4806-b9a0-7b79660f120a' from data source `/Users/jamesreo/Desktop/R Independent Study/Weeks 7-9/Session 8/R-spatial/Data/R-Spatial_II_Lab/2010 Census Tracts/geo_export_1dc7b645-647b-4806-b9a0-7b79660f120a.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 2165 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -74.25559 ymin: 40.49612 xmax: -73.70001 ymax: 40.91553
## Geodetic CRS:  WGS84(DD)
str(nyc_tracts_sf)
## Classes 'sf' and 'data.frame':   2165 obs. of  12 variables:
##  $ boro_code : chr  "5" "1" "1" "1" ...
##  $ boro_ct201: chr  "5000900" "1009800" "1010000" "1010200" ...
##  $ boro_name : chr  "Staten Island" "Manhattan" "Manhattan" "Manhattan" ...
##  $ cdeligibil: chr  "E" "I" "I" "I" ...
##  $ ct2010    : chr  "000900" "009800" "010000" "010200" ...
##  $ ctlabel   : chr  "9" "98" "100" "102" ...
##  $ ntacode   : chr  "SI22" "MN19" "MN19" "MN17" ...
##  $ ntaname   : chr  "West New Brighton-New Brighton-St. George" "Turtle Bay-East Midtown" "Turtle Bay-East Midtown" "Midtown-Midtown South" ...
##  $ puma      : chr  "3903" "3808" "3808" "3807" ...
##  $ shape_area: num  2497010 1906016 1860938 1860993 1864600 ...
##  $ shape_leng: num  7729 5534 5692 5688 5693 ...
##  $ geometry  :sfc_MULTIPOLYGON of length 2165; first list element: List of 1
##   ..$ :List of 1
##   .. ..$ : num [1:28, 1:2] -74.1 -74.1 -74.1 -74.1 -74.1 ...
##   ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
##  - attr(*, "sf_column")= chr "geometry"
##  - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
##   ..- attr(*, "names")= chr [1:11] "boro_code" "boro_ct201" "boro_name" "cdeligibil" ...
#Read in data
acs_data <- read_csv("Data/R-Spatial_II_Lab/acs_survey_renamed.csv", show_col_types =  FALSE)
str(acs_data)
## spc_tbl_ [2,168 × 358] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ GEO_ID     : chr [1:2168] "id" "1400000US36005000100" "1400000US36005000200" "1400000US36005000400" ...
##  $ NAME       : chr [1:2168] "Geographic Area Name" "Census Tract 1, Bronx County, New York" "Census Tract 2, Bronx County, New York" "Census Tract 4, Bronx County, New York" ...
##  $ DP05_0031PM: chr [1:2168] "Percent Margin of Error!!SEX AND AGE!!Total population!!65 years and over!!Female" "50.4" "9.5" "8.8" ...
##  $ DP05_0032E : chr [1:2168] "Estimate!!SEX AND AGE!!Total population!!65 years and over!!Sex ratio (males per 100 females)" "200" "95.1" "91.4" ...
##  $ DP05_0032M : chr [1:2168] "Margin of Error!!SEX AND AGE!!Total population!!65 years and over!!Sex ratio (males per 100 females)" "1316" "37.2" "32.7" ...
##  $ DP05_0032PE: chr [1:2168] "Percent Estimate!!SEX AND AGE!!Total population!!65 years and over!!Sex ratio (males per 100 females)" "(X)" "(X)" "(X)" ...
##  $ DP05_0032PM: chr [1:2168] "Percent Margin of Error!!SEX AND AGE!!Total population!!65 years and over!!Sex ratio (males per 100 females)" "(X)" "(X)" "(X)" ...
##  $ DP05_0033E : chr [1:2168] "Estimate!!RACE!!Total population" "7080" "4542" "5634" ...
##  $ DP05_0033M : chr [1:2168] "Margin of Error!!RACE!!Total population" "290" "574" "517" ...
##  $ DP05_0033PE: chr [1:2168] "Percent Estimate!!RACE!!Total population" "7080" "4542" "5634" ...
##  $ DP05_0033PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population" "(X)" "(X)" "(X)" ...
##  $ DP05_0034E : chr [1:2168] "Estimate!!RACE!!Total population!!One race" "7012" "4349" "5425" ...
##  $ DP05_0034M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race" "289" "557" "532" ...
##  $ DP05_0034PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race" "99" "95.8" "96.3" ...
##  $ DP05_0034PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race" "0.6" "3.4" "2.1" ...
##  $ DP05_0035E : chr [1:2168] "Estimate!!RACE!!Total population!!Two or more races" "68" "193" "209" ...
##  $ DP05_0035M : chr [1:2168] "Margin of Error!!RACE!!Total population!!Two or more races" "42" "155" "117" ...
##  $ DP05_0035PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!Two or more races" "1" "4.2" "3.7" ...
##  $ DP05_0035PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!Two or more races" "0.6" "3.4" "2.1" ...
##  $ DP05_0036E : chr [1:2168] "Estimate!!RACE!!Total population!!One race" "7012" "4349" "5425" ...
##  $ DP05_0036M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race" "289" "557" "532" ...
##  $ DP05_0036PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race" "99" "95.8" "96.3" ...
##  $ DP05_0036PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race" "0.6" "3.4" "2.1" ...
##  $ DP05_0037E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!White" "1773" "2165" "2623" ...
##  $ DP05_0037M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!White" "248" "547" "427" ...
##  $ DP05_0037PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!White" "25" "47.7" "46.6" ...
##  $ DP05_0037PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!White" "3.2" "11.1" "7.8" ...
##  $ DP05_0038E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Black or African American" "4239" "1279" "1699" ...
##  $ DP05_0038M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Black or African American" "286" "472" "432" ...
##  $ DP05_0038PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Black or African American" "59.9" "28.2" "30.2" ...
##  $ DP05_0038PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Black or African American" "3.5" "10" "6.4" ...
##  $ DP05_0039E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native" "25" "0" "30" ...
##  $ DP05_0039M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native" "24" "12" "33" ...
##  $ DP05_0039PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native" "0.4" "0" "0.5" ...
##  $ DP05_0039PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native" "0.3" "0.7" "0.6" ...
##  $ DP05_0040E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Cherokee tribal grouping" "0" "0" "0" ...
##  $ DP05_0040M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Cherokee tribal grouping" "17" "12" "17" ...
##  $ DP05_0040PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Cherokee tribal grouping" "0" "0" "0" ...
##  $ DP05_0040PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Cherokee tribal grouping" "0.5" "0.7" "0.6" ...
##  $ DP05_0041E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Chippewa tribal grouping" "0" "0" "0" ...
##  $ DP05_0041M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Chippewa tribal grouping" "17" "12" "17" ...
##  $ DP05_0041PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Chippewa tribal grouping" "0" "0" "0" ...
##  $ DP05_0041PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Chippewa tribal grouping" "0.5" "0.7" "0.6" ...
##  $ DP05_0042E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Navajo tribal grouping" "0" "0" "0" ...
##  $ DP05_0042M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Navajo tribal grouping" "17" "12" "17" ...
##  $ DP05_0042PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Navajo tribal grouping" "0" "0" "0" ...
##  $ DP05_0042PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Navajo tribal grouping" "0.5" "0.7" "0.6" ...
##  $ DP05_0043E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Sioux tribal grouping" "0" "0" "0" ...
##  $ DP05_0043M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Sioux tribal grouping" "17" "12" "17" ...
##  $ DP05_0043PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Sioux tribal grouping" "0" "0" "0" ...
##  $ DP05_0043PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!American Indian and Alaska Native!!Sioux tribal grouping" "0.5" "0.7" "0.6" ...
##  $ DP05_0044E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian" "125" "104" "226" ...
##  $ DP05_0044M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian" "51" "87" "155" ...
##  $ DP05_0044PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian" "1.8" "2.3" "4" ...
##  $ DP05_0044PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian" "0.7" "2" "2.7" ...
##  $ DP05_0045E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Asian Indian" "35" "40" "20" ...
##  $ DP05_0045M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Asian Indian" "31" "64" "31" ...
##  $ DP05_0045PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Asian Indian" "0.5" "0.9" "0.4" ...
##  $ DP05_0045PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Asian Indian" "0.4" "1.4" "0.5" ...
##  $ DP05_0046E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Chinese" "54" "0" "171" ...
##  $ DP05_0046M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Chinese" "46" "12" "142" ...
##  $ DP05_0046PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Chinese" "0.8" "0" "3" ...
##  $ DP05_0046PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Chinese" "0.6" "0.7" "2.5" ...
##  $ DP05_0047E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Filipino" "0" "0" "23" ...
##  $ DP05_0047M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Filipino" "17" "12" "36" ...
##  $ DP05_0047PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Filipino" "0" "0" "0.4" ...
##  $ DP05_0047PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Filipino" "0.5" "0.7" "0.6" ...
##  $ DP05_0048E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Japanese" "0" "40" "0" ...
##  $ DP05_0048M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Japanese" "17" "55" "17" ...
##  $ DP05_0048PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Japanese" "0" "0.9" "0" ...
##  $ DP05_0048PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Japanese" "0.5" "1.2" "0.6" ...
##  $ DP05_0049E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Korean" "4" "0" "0" ...
##  $ DP05_0049M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Korean" "7" "12" "17" ...
##  $ DP05_0049PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Korean" "0.1" "0" "0" ...
##  $ DP05_0049PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Korean" "0.1" "0.7" "0.6" ...
##  $ DP05_0050E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Vietnamese" "0" "0" "12" ...
##  $ DP05_0050M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Vietnamese" "17" "12" "19" ...
##  $ DP05_0050PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Vietnamese" "0" "0" "0.2" ...
##  $ DP05_0050PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Vietnamese" "0.5" "0.7" "0.3" ...
##  $ DP05_0051E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Asian!!Other Asian" "32" "24" "0" ...
##  $ DP05_0051M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Asian!!Other Asian" "30" "45" "17" ...
##  $ DP05_0051PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Asian!!Other Asian" "0.5" "0.5" "0" ...
##  $ DP05_0051PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Asian!!Other Asian" "0.4" "1" "0.6" ...
##  $ DP05_0052E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander" "0" "0" "0" ...
##  $ DP05_0052M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander" "17" "12" "17" ...
##  $ DP05_0052PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander" "0" "0" "0" ...
##  $ DP05_0052PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander" "0.5" "0.7" "0.6" ...
##  $ DP05_0053E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Native Hawaiian" "0" "0" "0" ...
##  $ DP05_0053M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Native Hawaiian" "17" "12" "17" ...
##  $ DP05_0053PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Native Hawaiian" "0" "0" "0" ...
##  $ DP05_0053PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Native Hawaiian" "0.5" "0.7" "0.6" ...
##  $ DP05_0054E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Guamanian or Chamorro" "0" "0" "0" ...
##  $ DP05_0054M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Guamanian or Chamorro" "17" "12" "17" ...
##  $ DP05_0054PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Guamanian or Chamorro" "0" "0" "0" ...
##  $ DP05_0054PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Guamanian or Chamorro" "0.5" "0.7" "0.6" ...
##  $ DP05_0055E : chr [1:2168] "Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Samoan" "0" "0" "0" ...
##  $ DP05_0055M : chr [1:2168] "Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Samoan" "17" "12" "17" ...
##  $ DP05_0055PE: chr [1:2168] "Percent Estimate!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Samoan" "0" "0" "0" ...
##  $ DP05_0055PM: chr [1:2168] "Percent Margin of Error!!RACE!!Total population!!One race!!Native Hawaiian and Other Pacific Islander!!Samoan" "0.5" "0.7" "0.6" ...
##   [list output truncated]
##  - attr(*, "spec")=
##   .. cols(
##   ..   GEO_ID = col_character(),
##   ..   NAME = col_character(),
##   ..   DP05_0031PM = col_character(),
##   ..   DP05_0032E = col_character(),
##   ..   DP05_0032M = col_character(),
##   ..   DP05_0032PE = col_character(),
##   ..   DP05_0032PM = col_character(),
##   ..   DP05_0033E = col_character(),
##   ..   DP05_0033M = col_character(),
##   ..   DP05_0033PE = col_character(),
##   ..   DP05_0033PM = col_character(),
##   ..   DP05_0034E = col_character(),
##   ..   DP05_0034M = col_character(),
##   ..   DP05_0034PE = col_character(),
##   ..   DP05_0034PM = col_character(),
##   ..   DP05_0035E = col_character(),
##   ..   DP05_0035M = col_character(),
##   ..   DP05_0035PE = col_character(),
##   ..   DP05_0035PM = col_character(),
##   ..   DP05_0036E = col_character(),
##   ..   DP05_0036M = col_character(),
##   ..   DP05_0036PE = col_character(),
##   ..   DP05_0036PM = col_character(),
##   ..   DP05_0037E = col_character(),
##   ..   DP05_0037M = col_character(),
##   ..   DP05_0037PE = col_character(),
##   ..   DP05_0037PM = col_character(),
##   ..   DP05_0038E = col_character(),
##   ..   DP05_0038M = col_character(),
##   ..   DP05_0038PE = col_character(),
##   ..   DP05_0038PM = col_character(),
##   ..   DP05_0039E = col_character(),
##   ..   DP05_0039M = col_character(),
##   ..   DP05_0039PE = col_character(),
##   ..   DP05_0039PM = col_character(),
##   ..   DP05_0040E = col_character(),
##   ..   DP05_0040M = col_character(),
##   ..   DP05_0040PE = col_character(),
##   ..   DP05_0040PM = col_character(),
##   ..   DP05_0041E = col_character(),
##   ..   DP05_0041M = col_character(),
##   ..   DP05_0041PE = col_character(),
##   ..   DP05_0041PM = col_character(),
##   ..   DP05_0042E = col_character(),
##   ..   DP05_0042M = col_character(),
##   ..   DP05_0042PE = col_character(),
##   ..   DP05_0042PM = col_character(),
##   ..   DP05_0043E = col_character(),
##   ..   DP05_0043M = col_character(),
##   ..   DP05_0043PE = col_character(),
##   ..   DP05_0043PM = col_character(),
##   ..   DP05_0044E = col_character(),
##   ..   DP05_0044M = col_character(),
##   ..   DP05_0044PE = col_character(),
##   ..   DP05_0044PM = col_character(),
##   ..   DP05_0045E = col_character(),
##   ..   DP05_0045M = col_character(),
##   ..   DP05_0045PE = col_character(),
##   ..   DP05_0045PM = col_character(),
##   ..   DP05_0046E = col_character(),
##   ..   DP05_0046M = col_character(),
##   ..   DP05_0046PE = col_character(),
##   ..   DP05_0046PM = col_character(),
##   ..   DP05_0047E = col_character(),
##   ..   DP05_0047M = col_character(),
##   ..   DP05_0047PE = col_character(),
##   ..   DP05_0047PM = col_character(),
##   ..   DP05_0048E = col_character(),
##   ..   DP05_0048M = col_character(),
##   ..   DP05_0048PE = col_character(),
##   ..   DP05_0048PM = col_character(),
##   ..   DP05_0049E = col_character(),
##   ..   DP05_0049M = col_character(),
##   ..   DP05_0049PE = col_character(),
##   ..   DP05_0049PM = col_character(),
##   ..   DP05_0050E = col_character(),
##   ..   DP05_0050M = col_character(),
##   ..   DP05_0050PE = col_character(),
##   ..   DP05_0050PM = col_character(),
##   ..   DP05_0051E = col_character(),
##   ..   DP05_0051M = col_character(),
##   ..   DP05_0051PE = col_character(),
##   ..   DP05_0051PM = col_character(),
##   ..   DP05_0052E = col_character(),
##   ..   DP05_0052M = col_character(),
##   ..   DP05_0052PE = col_character(),
##   ..   DP05_0052PM = col_character(),
##   ..   DP05_0053E = col_character(),
##   ..   DP05_0053M = col_character(),
##   ..   DP05_0053PE = col_character(),
##   ..   DP05_0053PM = col_character(),
##   ..   DP05_0054E = col_character(),
##   ..   DP05_0054M = col_character(),
##   ..   DP05_0054PE = col_character(),
##   ..   DP05_0054PM = col_character(),
##   ..   DP05_0055E = col_character(),
##   ..   DP05_0055M = col_character(),
##   ..   DP05_0055PE = col_character(),
##   ..   DP05_0055PM = col_character(),
##   ..   DP05_0056E = col_character(),
##   ..   DP05_0056M = col_character(),
##   ..   DP05_0056PE = col_character(),
##   ..   DP05_0056PM = col_character(),
##   ..   DP05_0057E = col_character(),
##   ..   DP05_0057M = col_character(),
##   ..   DP05_0057PE = col_character(),
##   ..   DP05_0057PM = col_character(),
##   ..   DP05_0058E = col_character(),
##   ..   DP05_0058M = col_character(),
##   ..   DP05_0058PE = col_character(),
##   ..   DP05_0058PM = col_character(),
##   ..   DP05_0059E = col_character(),
##   ..   DP05_0059M = col_character(),
##   ..   DP05_0059PE = col_character(),
##   ..   DP05_0059PM = col_character(),
##   ..   DP05_0060E = col_character(),
##   ..   DP05_0060M = col_character(),
##   ..   DP05_0060PE = col_character(),
##   ..   DP05_0060PM = col_character(),
##   ..   DP05_0061E = col_character(),
##   ..   DP05_0061M = col_character(),
##   ..   DP05_0061PE = col_character(),
##   ..   DP05_0061PM = col_character(),
##   ..   DP05_0062E = col_character(),
##   ..   DP05_0062M = col_character(),
##   ..   DP05_0062PE = col_character(),
##   ..   DP05_0062PM = col_character(),
##   ..   DP05_0063E = col_character(),
##   ..   DP05_0063M = col_character(),
##   ..   DP05_0063PE = col_character(),
##   ..   DP05_0063PM = col_character(),
##   ..   DP05_0064E = col_character(),
##   ..   DP05_0064M = col_character(),
##   ..   DP05_0064PE = col_character(),
##   ..   DP05_0064PM = col_character(),
##   ..   DP05_0065E = col_character(),
##   ..   DP05_0065M = col_character(),
##   ..   DP05_0065PE = col_character(),
##   ..   DP05_0065PM = col_character(),
##   ..   DP05_0066E = col_character(),
##   ..   DP05_0066M = col_character(),
##   ..   DP05_0066PE = col_character(),
##   ..   DP05_0066PM = col_character(),
##   ..   DP05_0067E = col_character(),
##   ..   DP05_0067M = col_character(),
##   ..   DP05_0067PE = col_character(),
##   ..   DP05_0067PM = col_character(),
##   ..   DP05_0068E = col_character(),
##   ..   DP05_0068M = col_character(),
##   ..   DP05_0068PE = col_character(),
##   ..   DP05_0068PM = col_character(),
##   ..   DP05_0069E = col_character(),
##   ..   DP05_0069M = col_character(),
##   ..   DP05_0069PE = col_character(),
##   ..   DP05_0069PM = col_character(),
##   ..   DP05_0070E = col_character(),
##   ..   DP05_0070M = col_character(),
##   ..   DP05_0070PE = col_character(),
##   ..   DP05_0070PM = col_character(),
##   ..   DP05_0071E = col_character(),
##   ..   DP05_0071M = col_character(),
##   ..   DP05_0071PE = col_character(),
##   ..   DP05_0071PM = col_character(),
##   ..   DP05_0072E = col_character(),
##   ..   DP05_0072M = col_character(),
##   ..   DP05_0072PE = col_character(),
##   ..   DP05_0072PM = col_character(),
##   ..   DP05_0073E = col_character(),
##   ..   DP05_0073M = col_character(),
##   ..   DP05_0073PE = col_character(),
##   ..   DP05_0073PM = col_character(),
##   ..   DP05_0074E = col_character(),
##   ..   DP05_0074M = col_character(),
##   ..   DP05_0074PE = col_character(),
##   ..   DP05_0074PM = col_character(),
##   ..   DP05_0075E = col_character(),
##   ..   DP05_0075M = col_character(),
##   ..   DP05_0075PE = col_character(),
##   ..   DP05_0075PM = col_character(),
##   ..   DP05_0076E = col_character(),
##   ..   DP05_0076M = col_character(),
##   ..   DP05_0076PE = col_character(),
##   ..   DP05_0076PM = col_character(),
##   ..   DP05_0077E = col_character(),
##   ..   DP05_0077M = col_character(),
##   ..   DP05_0077PE = col_character(),
##   ..   DP05_0077PM = col_character(),
##   ..   DP05_0078E = col_character(),
##   ..   DP05_0078M = col_character(),
##   ..   DP05_0078PE = col_character(),
##   ..   DP05_0078PM = col_character(),
##   ..   DP05_0079E = col_character(),
##   ..   DP05_0079M = col_character(),
##   ..   DP05_0079PE = col_character(),
##   ..   DP05_0079PM = col_character(),
##   ..   DP05_0080E = col_character(),
##   ..   DP05_0080M = col_character(),
##   ..   DP05_0080PE = col_character(),
##   ..   DP05_0080PM = col_character(),
##   ..   DP05_0081E = col_character(),
##   ..   DP05_0081M = col_character(),
##   ..   DP05_0081PE = col_character(),
##   ..   DP05_0081PM = col_character(),
##   ..   DP05_0082E = col_character(),
##   ..   DP05_0082M = col_character(),
##   ..   DP05_0082PE = col_character(),
##   ..   DP05_0082PM = col_character(),
##   ..   DP05_0083E = col_character(),
##   ..   DP05_0083M = col_character(),
##   ..   DP05_0083PE = col_character(),
##   ..   DP05_0083PM = col_character(),
##   ..   DP05_0084E = col_character(),
##   ..   DP05_0084M = col_character(),
##   ..   DP05_0084PE = col_character(),
##   ..   DP05_0084PM = col_character(),
##   ..   DP05_0085E = col_character(),
##   ..   DP05_0085M = col_character(),
##   ..   DP05_0085PE = col_character(),
##   ..   DP05_0085PM = col_character(),
##   ..   DP05_0086E = col_character(),
##   ..   DP05_0086M = col_character(),
##   ..   DP05_0086PE = col_character(),
##   ..   DP05_0086PM = col_character(),
##   ..   DP05_0087E = col_character(),
##   ..   DP05_0087M = col_character(),
##   ..   DP05_0087PE = col_character(),
##   ..   DP05_0087PM = col_character(),
##   ..   DP05_0088E = col_character(),
##   ..   DP05_0088M = col_character(),
##   ..   DP05_0088PE = col_character(),
##   ..   DP05_0088PM = col_character(),
##   ..   DP05_0089E = col_character(),
##   ..   DP05_0089M = col_character(),
##   ..   DP05_0089PE = col_character(),
##   ..   DP05_0089PM = col_character(),
##   ..   DP05_0001E = col_character(),
##   ..   DP05_0001M = col_character(),
##   ..   DP05_0001PE = col_character(),
##   ..   DP05_0001PM = col_character(),
##   ..   DP05_0002E = col_character(),
##   ..   DP05_0002M = col_character(),
##   ..   DP05_0002PE = col_character(),
##   ..   DP05_0002PM = col_character(),
##   ..   DP05_0003E = col_character(),
##   ..   DP05_0003M = col_character(),
##   ..   DP05_0003PE = col_character(),
##   ..   DP05_0003PM = col_character(),
##   ..   DP05_0004E = col_character(),
##   ..   DP05_0004M = col_character(),
##   ..   DP05_0004PE = col_character(),
##   ..   DP05_0004PM = col_character(),
##   ..   DP05_0005E = col_character(),
##   ..   DP05_0005M = col_character(),
##   ..   DP05_0005PE = col_character(),
##   ..   DP05_0005PM = col_character(),
##   ..   DP05_0006E = col_character(),
##   ..   DP05_0006M = col_character(),
##   ..   DP05_0006PE = col_character(),
##   ..   DP05_0006PM = col_character(),
##   ..   DP05_0007E = col_character(),
##   ..   DP05_0007M = col_character(),
##   ..   DP05_0007PE = col_character(),
##   ..   DP05_0007PM = col_character(),
##   ..   DP05_0008E = col_character(),
##   ..   DP05_0008M = col_character(),
##   ..   DP05_0008PE = col_character(),
##   ..   DP05_0008PM = col_character(),
##   ..   DP05_0009E = col_character(),
##   ..   DP05_0009M = col_character(),
##   ..   DP05_0009PE = col_character(),
##   ..   DP05_0009PM = col_character(),
##   ..   DP05_0010E = col_character(),
##   ..   DP05_0010M = col_character(),
##   ..   DP05_0010PE = col_character(),
##   ..   DP05_0010PM = col_character(),
##   ..   DP05_0011E = col_character(),
##   ..   DP05_0011M = col_character(),
##   ..   DP05_0011PE = col_character(),
##   ..   DP05_0011PM = col_character(),
##   ..   DP05_0012E = col_character(),
##   ..   DP05_0012M = col_character(),
##   ..   DP05_0012PE = col_character(),
##   ..   DP05_0012PM = col_character(),
##   ..   DP05_0013E = col_character(),
##   ..   DP05_0013M = col_character(),
##   ..   DP05_0013PE = col_character(),
##   ..   DP05_0013PM = col_character(),
##   ..   DP05_0014E = col_character(),
##   ..   DP05_0014M = col_character(),
##   ..   DP05_0014PE = col_character(),
##   ..   DP05_0014PM = col_character(),
##   ..   DP05_0015E = col_character(),
##   ..   DP05_0015M = col_character(),
##   ..   DP05_0015PE = col_character(),
##   ..   DP05_0015PM = col_character(),
##   ..   DP05_0016E = col_character(),
##   ..   DP05_0016M = col_character(),
##   ..   DP05_0016PE = col_character(),
##   ..   DP05_0016PM = col_character(),
##   ..   DP05_0017E = col_character(),
##   ..   DP05_0017M = col_character(),
##   ..   DP05_0017PE = col_character(),
##   ..   DP05_0017PM = col_character(),
##   ..   DP05_0018E = col_character(),
##   ..   DP05_0018M = col_character(),
##   ..   DP05_0018PE = col_character(),
##   ..   DP05_0018PM = col_character(),
##   ..   DP05_0019E = col_character(),
##   ..   DP05_0019M = col_character(),
##   ..   DP05_0019PE = col_character(),
##   ..   DP05_0019PM = col_character(),
##   ..   DP05_0020E = col_character(),
##   ..   DP05_0020M = col_character(),
##   ..   DP05_0020PE = col_character(),
##   ..   DP05_0020PM = col_character(),
##   ..   DP05_0021E = col_character(),
##   ..   DP05_0021M = col_character(),
##   ..   DP05_0021PE = col_character(),
##   ..   DP05_0021PM = col_character(),
##   ..   DP05_0022E = col_character(),
##   ..   DP05_0022M = col_character(),
##   ..   DP05_0022PE = col_character(),
##   ..   DP05_0022PM = col_character(),
##   ..   DP05_0023E = col_character(),
##   ..   DP05_0023M = col_character(),
##   ..   DP05_0023PE = col_character(),
##   ..   DP05_0023PM = col_character(),
##   ..   DP05_0024E = col_character(),
##   ..   DP05_0024M = col_character(),
##   ..   DP05_0024PE = col_character(),
##   ..   DP05_0024PM = col_character(),
##   ..   DP05_0025E = col_character(),
##   ..   DP05_0025M = col_character(),
##   ..   DP05_0025PE = col_character(),
##   ..   DP05_0025PM = col_character(),
##   ..   DP05_0026E = col_character(),
##   ..   DP05_0026M = col_character(),
##   ..   DP05_0026PE = col_character(),
##   ..   DP05_0026PM = col_character(),
##   ..   DP05_0027E = col_character(),
##   ..   DP05_0027M = col_character(),
##   ..   DP05_0027PE = col_character(),
##   ..   DP05_0027PM = col_character(),
##   ..   DP05_0028E = col_character(),
##   ..   DP05_0028M = col_character(),
##   ..   DP05_0028PE = col_character(),
##   ..   DP05_0028PM = col_character(),
##   ..   DP05_0029E = col_character(),
##   ..   DP05_0029M = col_character(),
##   ..   DP05_0029PE = col_character(),
##   ..   DP05_0029PM = col_character(),
##   ..   DP05_0030E = col_character(),
##   ..   DP05_0030M = col_character(),
##   ..   DP05_0030PE = col_character(),
##   ..   DP05_0030PM = col_character(),
##   ..   DP05_0031E = col_character(),
##   ..   DP05_0031M = col_character(),
##   ..   DP05_0031PE = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>