Поддерживается ли география "административного округа" для get_acs()

Я пытаюсь загрузить данные для "графства" как часть опций географии в функции get_acs() tidycensus. Я знаю, что есть несколько вариантов географии, которые Кайл Уокер опубликовал на своей странице. https://walkerke.github.io/tidycensus/articles/basic-usage.html

И хотя он отлично работает для уровня штата и округа, потому что вы просто поместите округ = "Monmouth". Но я не могу заставить синтаксис работать на уровне городского подразделения для города в графстве Монмут. Я искал другие сценарии tidycensus, но не нашел ни одного, использующего географию ниже уровня округа.

Какие-либо предложения?

library(tidycensus)
library(tidyverse)
library(sf)

census_api_key("YOUR API KEY GOES HERE")

vars <- c(English = "C16002_002", 
      Spanish = "C16002_003")


language <- get_acs(geography = "county subdivision", 
                state = "NJ",
                county = "Monmouth",
                city = "Red Bank",
                table = "C16001")



rb_language <- get_acs(geography = "tract", 
                   variables = vars,
                   state = "NJ", 
                   county = "Monmouth", 
                   city = "Red Bank"
                   geometry = TRUE, 
                   summary_var = "C16002_001") %>%
  st_transform(26918)

1 ответ

Мне не совсем понятно, пытаетесь ли вы получить данные для округа Ред Бэнк или переписных участков в Красном банке. В любом случае вы не можете сделать это напрямую в tidycensus, а вы можете получить все подразделения или участки в округе, используя get_acs() а затем дополнительно отфильтровать результаты.

Например, если вы просто хотите получить языковые данные для округа Red Bank, вы можете сделать это:

library(tidycensus)
library(tidyverse)
library(sf)
library(tigris)

vars <- c(English = "C16002_002", 
          Spanish = "C16002_003")

# get all subdivisions in monmouth county
language_subdiv <- get_acs(geography = "county subdivision", 
                           state = "NJ",
                           county = "Monmouth",
                           table = "C16001")

# only red bank borough
language_subdiv %>% 
  filter(str_detect(NAME, "Red Bank"))
#> # A tibble: 38 x 5
#>    GEOID     NAME                                  variable  estimate   moe
#>    <chr>     <chr>                                 <chr>        <dbl> <dbl>
#>  1 34025624… Red Bank borough, Monmouth County, N… C16001_0…    11405   171
#>  2 34025624… Red Bank borough, Monmouth County, N… C16001_0…     7227   451
#>  3 34025624… Red Bank borough, Monmouth County, N… C16001_0…     3789   425
#>  4 34025624… Red Bank borough, Monmouth County, N… C16001_0…     1287   247
#>  5 34025624… Red Bank borough, Monmouth County, N… C16001_0…     2502   435
#>  6 34025624… Red Bank borough, Monmouth County, N… C16001_0…        0    19
#>  7 34025624… Red Bank borough, Monmouth County, N… C16001_0…        0    19
#>  8 34025624… Red Bank borough, Monmouth County, N… C16001_0…        0    19
#>  9 34025624… Red Bank borough, Monmouth County, N… C16001_0…       42    40
#> 10 34025624… Red Bank borough, Monmouth County, N… C16001_0…        0    19
#> # ... with 28 more rows

Теперь, если вам нужны переписные участки в Красном берегу, вы можете взять все переписные участки в Монмуте, а затем использовать tigris::places() чтобы получить границы Красного берега и, наконец, отфильтровать участки переписи, чтобы получить только те участки, которые содержатся на границе Красного берега.

# get all tracts in monmouth county
language_tract <- get_acs(geography = "tract", 
                          variables = vars,
                          state = "NJ", 
                          county = "Monmouth",
                          geometry = TRUE, 
                          summary_var = "C16002_001", 
                          output = "wide")

# get geometry of red bank borough 
red_bank_place <- places("NJ", cb = TRUE, class = "sf") %>% 
  filter(NAME == "Red Bank")

# only tracts in red bank borough
red_bank_tracts <- language_tract %>% 
  filter(st_contains(red_bank_place, ., sparse = FALSE))

ggplot() +
  geom_sf(data = red_bank_tracts, color = "blue", fill = NA) +
  geom_sf(data = red_bank_place, color = "black", fill = NA)

Создано в 2018-12-24 пакетом представлением (v0.2.1)

Другие вопросы по тегам