knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.2
## Warning: package 'ggplot2' was built under R version 4.2.2
## Warning: package 'tidyr' was built under R version 4.2.2
## Warning: package 'readr' was built under R version 4.2.2
## Warning: package 'purrr' was built under R version 4.2.2
## Warning: package 'dplyr' was built under R version 4.2.2
## Warning: package 'stringr' was built under R version 4.2.2
## Warning: package 'forcats' was built under R version 4.2.2
## Warning: package 'lubridate' was built under R version 4.2.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.0 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.1 ✔ tibble 3.1.8
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(tidycensus)
## Warning: package 'tidycensus' was built under R version 4.2.2
library(sf)
## Warning: package 'sf' was built under R version 4.2.2
## Linking to GEOS 3.9.3, GDAL 3.5.2, PROJ 8.2.1; sf_use_s2() is TRUE
library(tigris)
## Warning: package 'tigris' was built under R version 4.2.2
## To enable caching of data, set `options(tigris_use_cache = TRUE)`
## in your R script or .Rprofile.
library(ggthemes)
library(viridis)
## Loading required package: viridisLite
## Warning: package 'viridisLite' was built under R version 4.2.2
v21 <- load_variables(2021, "acs5", cache = TRUE)
places <- places(state="MA") %>% filter(NAME == "Lynn") %>%
st_transform(2249)
## Retrieving data for the year 2021
##
|
| | 0%
|
|= | 1%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|===== | 7%
|
|====== | 8%
|
|====== | 9%
|
|======= | 10%
|
|======== | 11%
|
|========= | 12%
|
|========== | 14%
|
|=========== | 16%
|
|============ | 16%
|
|============= | 18%
|
|============= | 19%
|
|============== | 20%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 23%
|
|================= | 25%
|
|================== | 25%
|
|=================== | 27%
|
|=================== | 28%
|
|==================== | 29%
|
|===================== | 30%
|
|====================== | 31%
|
|======================= | 32%
|
|======================= | 33%
|
|======================== | 34%
|
|========================= | 36%
|
|========================== | 37%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 40%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 43%
|
|=============================== | 44%
|
|================================ | 45%
|
|================================= | 47%
|
|================================= | 48%
|
|================================== | 49%
|
|=================================== | 50%
|
|==================================== | 51%
|
|===================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|======================================= | 55%
|
|======================================== | 57%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 60%
|
|========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 63%
|
|============================================= | 64%
|
|============================================== | 66%
|
|=============================================== | 68%
|
|================================================ | 69%
|
|================================================= | 70%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 73%
|
|==================================================== | 74%
|
|===================================================== | 75%
|
|====================================================== | 77%
|
|======================================================= | 79%
|
|======================================================== | 80%
|
|======================================================== | 81%
|
|========================================================= | 82%
|
|========================================================== | 83%
|
|=========================================================== | 84%
|
|============================================================ | 86%
|
|============================================================= | 88%
|
|============================================================== | 88%
|
|=============================================================== | 90%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 93%
|
|================================================================== | 94%
|
|=================================================================== | 95%
|
|==================================================================== | 97%
|
|===================================================================== | 99%
|
|======================================================================| 99%
|
|======================================================================| 100%
lynn_tracts <- tracts(state = "MA",county = "Essex") %>%
st_transform(2249) %>%
st_intersection(places) %>%
erase_water()
## Retrieving data for the year 2021
##
|
| | 0%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|=== | 4%
|
|=== | 5%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|===== | 8%
|
|====== | 8%
|
|====== | 9%
|
|======= | 10%
|
|======== | 11%
|
|======== | 12%
|
|========= | 12%
|
|========= | 13%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 15%
|
|=========== | 16%
|
|============ | 17%
|
|============ | 18%
|
|============= | 18%
|
|============= | 19%
|
|============== | 20%
|
|============== | 21%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 22%
|
|================ | 23%
|
|================ | 24%
|
|================= | 24%
|
|================= | 25%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 26%
|
|=================== | 27%
|
|=================== | 28%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 29%
|
|===================== | 30%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 32%
|
|======================= | 33%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 35%
|
|========================= | 36%
|
|========================== | 37%
|
|========================== | 38%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 40%
|
|============================ | 41%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 42%
|
|============================== | 43%
|
|============================== | 44%
|
|=============================== | 44%
|
|=============================== | 45%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 47%
|
|================================= | 48%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 49%
|
|=================================== | 50%
|
|=================================== | 51%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 55%
|
|======================================= | 56%
|
|======================================== | 57%
|
|======================================== | 58%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 60%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 62%
|
|============================================ | 63%
|
|============================================= | 64%
|
|============================================= | 65%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 67%
|
|=============================================== | 68%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 69%
|
|================================================= | 70%
|
|================================================= | 71%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 72%
|
|=================================================== | 73%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 77%
|
|====================================================== | 78%
|
|======================================================= | 78%
|
|======================================================== | 79%
|
|======================================================== | 80%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 82%
|
|========================================================== | 83%
|
|=========================================================== | 84%
|
|=========================================================== | 85%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 87%
|
|============================================================= | 88%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 89%
|
|=============================================================== | 90%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 92%
|
|================================================================= | 93%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 97%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 100%
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
## Fetching area water data for your dataset's location...
## Erasing water area...
## If this is slow, try a larger area threshold value.
vars <- c(
population="B01001_001"
)
df_state <- get_acs(geography = "state",
year = 2021,
variables = vars,
output = "wide")
## Getting data from the 2017-2021 5-year ACS
df_county <- get_acs(geography = "county",
state="MA",
year = 2021,
variables = vars,
output = "wide") %>%
filter(GEOID=="25009")
## Getting data from the 2017-2021 5-year ACS
df_place <- get_acs(geography = "place",
state="MA",
year = 2021,
variables = vars,
output = "wide") %>%
filter(GEOID=="2537490")
## Getting data from the 2017-2021 5-year ACS
##Employment
demographics <- c(
median_hh_income="B19013_001",
median_age="B01002_001",
average_hh_size="B25010_001",
average_hh_size_owner="B25010_002",
average_hh_size_renter="B25010_003",
education="B06009_001",
education_less_than_hs="B06009_002",
education_hs="B06009_003",
education_some_college="B06009_004",
education_bac="B06009_005",
education_grad="B06009_006"
)
demo_df <- get_acs(geography = "tract",
state="MA",
year = 2021,
variables = demographics,
output = "wide")
## Getting data from the 2017-2021 5-year ACS
demo_tract <- lynn_tracts %>% left_join(demo_df,by="GEOID")
demo_tract %>%
ggplot(aes(fill=median_hh_incomeE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
demo_tract %>%
ggplot(aes(fill=median_ageE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
demo_tract %>%
ggplot(aes(fill=average_hh_sizeE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
demo_tract %>%
ggplot(aes(fill=average_hh_size_ownerE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
demo_tract %>%
ggplot(aes(fill=average_hh_size_renterE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
demo_tract %>%
ggplot(aes(fill=(education_bacE+education_gradE)/educationE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()+
theme(legend.position="bottom")
##transportation
transport <- c(
transport="B08006_001",
travel_time_work="B08013_001",
workers="B08012_001",
transport_drove_alone="B08006_003",
transport_carpool="B08006_004",
transport_transit="B08006_008",
transport_bike="B08006_014",
transport_ped="B08006_015",
transport_wfh="B08006_016"
)
transport_df <- get_acs(geography = "tract",
state="MA",
county = "Essex",
year = 2021,
variables = transport,
output = "wide",
geometry = FALSE)
## Getting data from the 2017-2021 5-year ACS
transport_tract <- lynn_tracts %>% left_join(transport_df,by="GEOID")
transport_tract %>%
ggplot(aes(fill=travel_time_workE/workersE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map() +
theme(legend.background=element_blank())
transport_tract %>%
ggplot(aes(fill=transport_drove_aloneE/transportE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
transport_tract %>%
ggplot(aes(fill=transport_carpoolE/transportE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
transport_tract %>%
ggplot(aes(fill=transport_transitE/transportE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
transport_tract %>%
ggplot(aes(fill=transport_bikeE/transportE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
transport_tract %>%
ggplot(aes(fill=transport_pedE/transportE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
transport_tract %>%
ggplot(aes(fill=transport_wfhE/transportE))+
geom_sf(color = "white") +
scale_fill_viridis()+
theme_map()
##housing
## Getting data from the 2017-2021 5-year ACS