R中的acs包:无法下载数据集,错误信息是不可思议的

时间:2017-07-03 19:25:44

标签: r maps census

我正在尝试使用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的新手。但我遵循文档并且无法找到证据证明我做错了什么。

教程我的工作原理是: http://zevross.com/blog/2015/10/14/manipulating-and-mapping-us-census-data-in-r-using-the-acs-tigris-and-leaflet-packages-3/#get-the-tabular-data-acs

acs包的文档:http://eglenn.scripts.mit.edu/citystate/wp-content/uploads/2013/02/wpid-working_with_acs_R2.pdf

3 个答案:

答案 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”)

希望这有助于其他人遇到类似问题。