4

我正在尝试使用 tidycensus 加载可变数据,但遇到了普遍错误。

library(tidycensus)
library(tidyverse)
census_api_key("My key is here")

poverty <- get_acs(geography = "block group", variables = "B17021",
                state = "MO", county = "St. Louis City", geometry = TRUE)

我得到的错误是这个。

Error in as.character(x) : cannot coerce type 'closure' to vector of type 
'character'

我已确保我正在运行最新的软件包并输入了我的 Census API 密钥,但错误仍然存​​在。任何建议表示赞赏

4

2 回答 2

2

如果不指定所需的“行”和“列”,则无法通过人口普查局 API 访问变量。从表中B17021 你有很多选择;您可以选择的一个这样的选项是(行Estimate)的Income in the past 12 months below poverty level(列)。通常,正确格式化的变量名称的格式是TableName_VariableNumberType. 所以对于我刚刚给出的例子:

  • 表 =B17021
  • 行 =002
  • 类型 = estimate( E)

这对应的变量是"B17021_002E"

但是,最好简单地查阅相关的API 文档以确保您拥有正确的变量名称。表格B17021大约从页面的一半开始,您可以将本指南与您在 American FactFinder 中看到的内容进行交叉引用,以确保您拥有正确的变量名称。

顺便说一句,几年前我为自己写了一篇关于 Python 的指南。它有点过时了,但我已将其发布到我的 GitHub以防万一。

编辑:似乎get_acs不需要您输入变量类型。如果不这样做,则返回的数据具有所有属性,这允许您从同一对象单独绘制估计值、误差范围。这是一个不错的功能!

于 2018-03-27T16:14:21.453 回答
1

@HFBrowning 的答案很棒。另外:您可以使用table参数而不是variables参数来请求给定表中的所有变量,这将允许您提供的代码工作。例如:

poverty <- get_acs(geography = "block group", table = "B17021",
                   state = "MO", county = "St. Louis City", geometry = TRUE)

B17021_001有效,并允许您在B17021_035不单独指定 变量的情况下获取变量。

于 2018-04-04T15:14:28.097 回答