Methods Section
Here we are making a choropleth map to show the West Indian ancestry
in Brooklyn
library(tidyverse)
library(tidycensus)
library(sf)
library(scales)
library(viridisLite)
##library(plotly)
ggplot(data = west_indian, mapping = aes(fill = pct_west_indian)) +
geom_sf(color = "#ffffff") +
theme_void() +
scale_fill_distiller(breaks=c(0, .2, .4, .6, .8, 1),
direction = 1,
na.value = "transparent",
name="Percent West Indian Ancestry (%)",
labels=percent_format(accuracy = 1L)) +
labs(
title = "Brooklyn, West Indian Ancestry by Census Tract",
caption = "Source: American Community Survey, 2016-20")+
geom_sf(data = nabes |> filter(BoroName == "Brooklyn"),
color = "gray", fill = NA, lwd = 0.25) +
geom_sf(data = boros |> filter(boro_name == "Brooklyn"),
color = "black", fill = NA, lwd = .5)

##I keep getting an error message for this part and I’m not quite
sure why
west_indian_2263 <- st_transform(west_indian, 2263)
#remove unnecessary fields in the neighborhood shapefile
nabes_selected <- nabes |>
select(BoroCode, BoroName, NTA2020, NTAName)
west_indian_nabes <- west_indian_2263 |>
st_join(nabes_selected,
left = TRUE,
join = st_intersects,
largest = TRUE)
Warning: attribute variables are assumed to be spatially constant throughout all geometries
ggplot(data = west_indian_nabes |>
filter(NTAName == "Crown Heights (North)"),
mapping = aes(fill = pct_west_indian)) +
geom_sf(color = "#ffffff",
lwd = 0) +
theme_void() +
scale_fill_distiller(breaks=c(0, .2, .4, .6, .8, 1),
direction = 1,
na.value = "transparent",
name="Percent West Indian Ancestry (%)",
labels=percent_format(accuracy = 1L)) +
labs(
title = "Brooklyn, Crown Heights, West Indian Ancestry by Census Tract",
caption = "Source: American Community Survey, 2016-20"
) +
geom_sf(data = nabes |> filter(NTAName == "Crown Heights (North)"),
color = "black", fill = NA, lwd = 0.5)

LS0tCnRpdGxlOiAiV2VzdCBJbmRpYW4gQW5jZXN0cnkiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMjIyBNZXRob2RzIFNlY3Rpb24KCkhlcmUgd2UgYXJlIG1ha2luZyBhIGNob3JvcGxldGggbWFwIHRvIHNob3cgdGhlIFdlc3QgSW5kaWFuIGFuY2VzdHJ5IGluIEJyb29rbHluCgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgcmVzdWx0cyA9J2hpZGUnfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0aWR5Y2Vuc3VzKQpsaWJyYXJ5KHNmKQpsaWJyYXJ5KHNjYWxlcykKbGlicmFyeSh2aXJpZGlzTGl0ZSkKIyNsaWJyYXJ5KHBsb3RseSkKYGBgCgoKCmBgYHtyLCByZXN1bHRzID0naGlkZSd9CiMjIGltcG9ydCBib3JvdWdoIHNoYXBlZmlsZXMgZnJvbSBOWUMgT3BlbiBEYXRhCmJvcm9zIDwtIHN0X3JlYWQoIn4vRGVza3RvcC9TdHVmZiAmIFRoaW5ncy9TY2hvb2wvR3JhZCBTY2hvb2wvRFVFIE1ldGhvZHMgMS9wYXJ0Mi9kYXRhL3Jhdy9nZW8vQm9yb3VnaCBCb3VuZGFyaWVzLmdlb2pzb24iKQoKIyMgaW1wb3J0IE5laWdoYm9yaG9vZCBUYWJ1bGF0aW9uIEFyZWFzIGZvciBOWUMKbmFiZXMgPC0gc3RfcmVhZCgifi9EZXNrdG9wL1N0dWZmICYgVGhpbmdzL1NjaG9vbC9HcmFkIFNjaG9vbC9EVUUgTWV0aG9kcyAxL3BhcnQyL2RhdGEvcmF3L2dlby9ueW50YTIwMjAuc2hwIikKCiMjIEltcG9ydCB0YWJsZSBvZiBQRU9QTEUgUkVQT1JUSU5HIEFOQ0VTVFJZOiBCMDQwMDYKcmF3X2FuY2VzdHJ5IDwtIGdldF9hY3MoZ2VvZ3JhcGh5ID0gInRyYWN0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyA9IGMoYW5jZXN0cnlfcG9wID0gIkIwNDAwNl8wMDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlc3RfaW5kaWFuID0gIkIwNDAwNl8wOTQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPSdOWScsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50eSA9ICdLaW5ncycsCiAgICAgICAgICAgICAgICAgICAgICAgIGdlb21ldHJ5ID0gVCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHllYXIgPSAyMDIwLAogICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAid2lkZSIpCgpgYGAKCgpgYGB7ciwgcmVzdWx0cyA9J2hpZGUnfQp3ZXN0X2luZGlhbiA8LSByYXdfYW5jZXN0cnkgfD4gCiAgbXV0YXRlKHBjdF93ZXN0X2luZGlhbiA9IHdlc3RfaW5kaWFuRS9hbmNlc3RyeV9wb3BFLAogICAgICAgICBwY3Rfd2VzdF9pbmRpYW4gPSBpZmVsc2UoaXMubmFuKHBjdF93ZXN0X2luZGlhbiksIE5BLCBwY3Rfd2VzdF9pbmRpYW4pKQoKYGBgCgoKYGBge3J9CmdncGxvdChkYXRhID0gd2VzdF9pbmRpYW4sIG1hcHBpbmcgPSBhZXMoZmlsbCA9IHBjdF93ZXN0X2luZGlhbikpICArIAogIGdlb21fc2YoY29sb3IgPSAiI2ZmZmZmZiIpICsKICB0aGVtZV92b2lkKCkgKwogIHNjYWxlX2ZpbGxfZGlzdGlsbGVyKGJyZWFrcz1jKDAsIC4yLCAuNCwgLjYsIC44LCAxKSwKICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAxLAogICAgICAgICAgICAgICAgICAgICAgIG5hLnZhbHVlID0gInRyYW5zcGFyZW50IiwKICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJQZXJjZW50IFdlc3QgSW5kaWFuIEFuY2VzdHJ5ICglKSIsCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzPXBlcmNlbnRfZm9ybWF0KGFjY3VyYWN5ID0gMUwpKSArCiAgbGFicygKICAgIHRpdGxlID0gIkJyb29rbHluLCBXZXN0IEluZGlhbiBBbmNlc3RyeSBieSBDZW5zdXMgVHJhY3QiLAogICAgY2FwdGlvbiA9ICJTb3VyY2U6IEFtZXJpY2FuIENvbW11bml0eSBTdXJ2ZXksIDIwMTYtMjAiKSsgCiAgZ2VvbV9zZihkYXRhID0gbmFiZXMgfD4gZmlsdGVyKEJvcm9OYW1lID09ICJCcm9va2x5biIpLCAKICAgICAgICAgIGNvbG9yID0gImdyYXkiLCBmaWxsID0gTkEsIGx3ZCA9IDAuMjUpICsgCiAgZ2VvbV9zZihkYXRhID0gYm9yb3MgfD4gZmlsdGVyKGJvcm9fbmFtZSA9PSAiQnJvb2tseW4iKSwgCiAgICAgICAgICBjb2xvciA9ICJibGFjayIsIGZpbGwgPSBOQSwgbHdkID0gLjUpCmBgYAoKIyNJIGtlZXAgZ2V0dGluZyBhbiBlcnJvciBtZXNzYWdlIGZvciB0aGlzIHBhcnQgYW5kIEknbSBub3QgcXVpdGUgc3VyZSB3aHkKYGBge3J9Cndlc3RfaW5kaWFuXzIyNjMgPC0gc3RfdHJhbnNmb3JtKHdlc3RfaW5kaWFuLCAyMjYzKQoKI3JlbW92ZSB1bm5lY2Vzc2FyeSBmaWVsZHMgaW4gdGhlIG5laWdoYm9yaG9vZCBzaGFwZWZpbGUKbmFiZXNfc2VsZWN0ZWQgPC0gbmFiZXMgfD4KICBzZWxlY3QoQm9yb0NvZGUsIEJvcm9OYW1lLCBOVEEyMDIwLCBOVEFOYW1lKQoKd2VzdF9pbmRpYW5fbmFiZXMgPC0gd2VzdF9pbmRpYW5fMjI2MyB8PgogIHN0X2pvaW4obmFiZXNfc2VsZWN0ZWQsIAogICAgICAgICAgbGVmdCA9IFRSVUUsCiAgICAgICAgICBqb2luID0gc3RfaW50ZXJzZWN0cywKICAgICAgICAgIGxhcmdlc3QgPSBUUlVFKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IHdlc3RfaW5kaWFuX25hYmVzIHw+IAogICAgICAgICBmaWx0ZXIoTlRBTmFtZSA9PSAiQ3Jvd24gSGVpZ2h0cyAoTm9ydGgpIiksCiAgICAgICBtYXBwaW5nID0gYWVzKGZpbGwgPSBwY3Rfd2VzdF9pbmRpYW4pKSAgKyAKICBnZW9tX3NmKGNvbG9yID0gIiNmZmZmZmYiLAogICAgICAgICAgbHdkID0gMCkgKwogIHRoZW1lX3ZvaWQoKSArCiAgc2NhbGVfZmlsbF9kaXN0aWxsZXIoYnJlYWtzPWMoMCwgLjIsIC40LCAuNiwgLjgsIDEpLAogICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IDEsCiAgICAgICAgICAgICAgICAgICAgICAgbmEudmFsdWUgPSAidHJhbnNwYXJlbnQiLAogICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlBlcmNlbnQgV2VzdCBJbmRpYW4gQW5jZXN0cnkgKCUpIiwKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9cGVyY2VudF9mb3JtYXQoYWNjdXJhY3kgPSAxTCkpICsKICBsYWJzKAogICAgdGl0bGUgPSAiQnJvb2tseW4sIENyb3duIEhlaWdodHMsIFdlc3QgSW5kaWFuIEFuY2VzdHJ5IGJ5IENlbnN1cyBUcmFjdCIsCiAgICBjYXB0aW9uID0gIlNvdXJjZTogQW1lcmljYW4gQ29tbXVuaXR5IFN1cnZleSwgMjAxNi0yMCIKICApICsgCiAgZ2VvbV9zZihkYXRhID0gbmFiZXMgfD4gZmlsdGVyKE5UQU5hbWUgPT0gIkNyb3duIEhlaWdodHMgKE5vcnRoKSIpLCAKICAgICAgICAgIGNvbG9yID0gImJsYWNrIiwgZmlsbCA9IE5BLCBsd2QgPSAwLjUpCmBgYAoK