R包"acs":获取县名,FIPS?

R package "acs": Get county name, FIPS?

在寻找 unsolved problem 的解决方案时,我遇到了 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?我在 documentation.

中找不到答案

此外,为了进一步处理(与 choroplethr 匹配),需要删除 county.name 中最后的 "County" 和 place.name 中的 "city"。

以下是将州缩写、县名和县 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