我正在尝试使用R中的acs软件包下载基本地图的人口普查数据,但我无法下载数据,而且我收到了令人困惑的错误消息。
我的代码如下:
#Including all packages here in case this is somehow the issue
install.packages(c("choroplethr", "choroplethrMaps", "tidycensus", "tigris", "leaflet", "acs", "sf"))
library(choroplethr)
library(choroplethrMaps)
library(tidycensus)
library(tigris)
library(leaflet)
library(acs)
library(sf)
library(tidyverse)
api.key.install("my_api_key")
SD_geo <- geo.make(state="CA", county = 73, tract = "*", block.group = "*")
median_income <- acs.fetch(endyear = 2015, span = 5, geography = SD_geo, table.number = "B19013", col.names="pretty")
当我收到以下错误消息时,一切似乎都有效,直到最后一个命令:
trying URL 'http://web.mit.edu/eglenn/www/acs/acs-variables/acs_5yr_2015_var.xml.gz'
Content type 'application/xml' length 735879 bytes (718 KB)
downloaded 718 KB
Error in if (url.test["statusMessage"] != "OK") { :
missing value where TRUE/FALSE needed
In addition: Warning message:
In (function (endyear, span = 5, dataset = "acs", keyword, table.name, :
XML variable lookup tables for this request
seem to be missing from ' https://api.census.gov/data/2015/acs5/variables.xml ';
temporarily downloading and using archived copies instead;
since this is *much* slower, recommend running
acs.tables.install()
这令我感到困惑,因为1)看起来事实上最初是下载的东西? 2)&#39;错误if(url.test [&#34; statusMessage&#34;]!=&#34; OK&#34;){: 缺少需要TRUE / FALSE的值&#39;对我毫无意义。它不与函数中的任何参数对齐。
我试过了:
按照错误消息后半部分的建议,使用acs.tables.install()下载表。没有帮助。
更改endyear和span,以确保我在API支持的数据年内。根据API文档,我似乎是。还使用了包默认参数而没有运气。
使用&#39;变量=&#39;以及官方API文档中的变量代码。如果...&#34;这只返回带有神秘&#34;错误的两行。消息。
删除colnames =&#34;漂亮&#34;
我只是将数据文件下载为CSV并暂时将其读入R,但我希望能够从脚本中为将来的地图执行此功能。任何有关此处发生的事情的信息都将受到赞赏。我正在运行R版本3.3.2。此外,我是使用此软件包和API的新手。但我遵循文档并且无法找到证据证明我做错了什么。
acs包的文档:http://eglenn.scripts.mit.edu/citystate/wp-content/uploads/2013/02/wpid-working_with_acs_R2.pdf
答案 0 :(得分:2)
为了跟进Brandon的评论,该软件包的2.1.1版现在已经在CRAN上,它应该可以解决这个问题。
答案 1 :(得分:0)
你的代码适合我。我的猜测是人口普查API暂时下降。
当您加载 tidycensus 并且您想要进行一些映射时,您可能还会考虑以下代码:
library(tidycensus)
census_api_key("your key here") # use `install = TRUE` to install the key
options(tigris_use_cache = TRUE) # optional - to cache the Census shapefile
median_income <- get_acs(geography = "block group",
variables = "B19013_001",
state = "CA", county = "San Diego",
geometry = TRUE)
这将为您提供所需的数据以及用于映射的要素几何,作为整洁的数据框。
答案 2 :(得分:0)
我通过电子邮件发送了包裹的作者Ezra Haber Glenn,因为我遇到了同样的问题。我在30分钟内得到了回复,这是在午夜之后,我觉得这很棒。简而言之,acs软件包版本2.1.0配置为使用人口普查局今年夏天晚些时候对他们的API进行的更改,并且它目前正在向Windows用户提供一些问题。 Ezra将发布一个带有修复程序的更新,但同时我又回到了2.0版,它运行正常。我确定有几种方法可以做到这一点,但我安装了devtools包并运行:
需要(devtools)
install_version(“acs”,version =“2.0”,repos =“http://cran.us.r-project.org”)
希望这有助于其他人遇到类似问题。