加载Tidycensus数据时出现问题

时间:2018-03-26 23:24:02

标签: r tidycensus

我正在尝试使用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密钥,但错误仍然存​​在。任何建议赞赏

2 个答案:

答案 0 :(得分:1)

您无法通过人口普查局API访问变量,而无需指定&#34; row&#34;和&#34;列&#34;你要。从表B17021 you have many options;您可以选择的一个此类选项是Estimate(行)的Income in the past 12 months below poverty level(列)。通常,格式正确的变量名称格式为TableName_VariableNumberType。所以我刚给出的例子是:

  • 表= B17021
  • 行= 002
  • 类型= estimateE

这对应的变量是"B17021_002E"

但是,最好只是查阅相关的API documentation以确保您拥有正确的变量名称。表格B17021从页面的中间开始,您可以根据您在美国FactFinder中看到的内容交叉引用本指南,以确保您拥有正确的变量名称。

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

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

答案 1 :(得分:0)

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

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

有效,并允许您通过B17021_001获取变量B17021_035,而无需单独指定它们。