ACs пакета R: получить название округа, FIPS?

В поисках решения нерешенной проблемы я наткнулся на пакет acs. Я предполагаю, что в пакете choropleth нет способа получить информацию о округе из данных в формате [city, state]. Вот почему необходима предварительная обработка с помощью ACS.

Я пробовал следующий код, чтобы получить информацию об округе по городу:

library(acs)
geo.lookup(state="CA", place="San Francisco")

> geo.lookup(state="CA", place="San Francisco")
  state state.name          county.name place               place.name
1     6 California                 <NA>    NA                     <NA>
2     6 California San Francisco County 67000       San Francisco city
3     6 California     San Mateo County 73262 South San Francisco city

Как известно, города могут входить в состав разных округов. Скорее всего пойду со вторым

> geo.lookup(state="CA", place="San Francisco")[2,]

  state state.name          county.name place         place.name
2     6 California San Francisco County 67000 San Francisco city

по умолчанию.

Мой вопрос: Есть ли способ получить аббревиатуру штата, название округа и FIPS округа? Мне не удалось найти ответ в документации.

Кроме того, для дальнейшей обработки (сопоставления с хороплетром) необходимо удалить последнее «графство» в county.name и «город» в place.name.


person Christopher    schedule 27.11.2017    source источник


Ответы (1)


Вот как добавить аббревиатуру штата, название округа и FIPS округа в ваш пример. R имеет встроенные переменные для имен состояний и сокращений состояний. Что касается кодов FIPS, я прочитал файл csv с веб-сайта Бюро переписи населения.

library(acs)
library(tidyverse)

states <- cbind(state.name, state.abb) %>% tbl_df()

fips <-
  read_csv(
    "https://www2.census.gov/geo/docs/reference/codes/files/national_county.txt",
    col_names = c("state.abb", "statefp", "countyfp", "county.name", "classfp")
  )

query <- geo.lookup(state = "CA", place = "San Francisco")[2, ] %>%
  tbl_df() %>%
  left_join(states, by = "state.name") %>%
  left_join(fips, by = c("county.name", "state.abb"))

query

# # A tibble: 1 x 9
# state state.name          county.name place         place.name state.abb statefp countyfp classfp
# <chr>      <chr>                <chr> <int>              <chr>     <chr>   <chr>    <chr>   <chr>
#   1     6 California San Francisco County 67000 San Francisco city        CA      06      075      H6

Как вы заметили в конце своего вопроса, вам может потребоваться еще немного очистить эти данные, чтобы они соответствовали choroplethr.

person Andrew Brēza    schedule 27.11.2017
comment
Это работает очень хорошо. Похоже, мне нужно объединить statefp + countyfp и удалить первый 0, чтобы соответствовать choroplethr. И последнее: могу ли я получить через это код MSA fips? Идея улучшения: вместо определения местоположения Census csv: install.packages('tigris') library(tigris) data(fips_codes) - person Christopher; 27.11.2017
comment
(На самом деле, в настоящее время я не знаю, могу ли я визуализировать формы MSA / CBSA. Это называется cbsa в choroplethrZip zip.regions., но я не нашел ни одного примера.) - person Christopher; 27.11.2017