我正在尝试使用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密钥,但错误仍然存在。任何建议赞赏
答案 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
estimate
(E
)这对应的变量是"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
,而无需单独指定它们。