Поддерживается ли география "административного округа" для get_acs () - PullRequest
0 голосов
/ 14 декабря 2018

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

И хотя он прекрасно работает для штатов и округов, потому что вы просто поставили бы округ = "Монмут".Но я не могу заставить синтаксис работать на уровне городского подразделения для города в графстве Монмут.Я искал другие сценарии 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 Ответ

0 голосов
/ 24 декабря 2018

Мне не совсем ясно, пытаетесь ли вы получить данные для округа Красного банка или переписных участков в пределах Красного банка.В любом случае вы не можете сделать это напрямую в 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

Теперь, если вы хотите переписные участки в Red Bank, вы можете перехватить все переписные участки в Monmouth, а затем использовать 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)

...