去年运行良好的 tidycensus 代码出现错误

问题描述 投票:0回答:1

任何见解将不胜感激!我正在尝试从表 B01001 中提取 2022 年指定 ZIP 的数据。

这是代码及其失败:


YearRangeEnd <- 2022
TblName <- 'B01001'

# ZIPs we want to report
ZIPs <- c(
  '48411', '48420', '48423', '48430',
  '48433', '48436', '48437', '48438',
  '48439', '48451', '48457', '48458',
  '48463', '48473', '48502', '48503',
  '48504', '48505', '48506', '48507',
  '48509', '48519', '48529', '48532'
  )


ZIPData <- 
  get_acs (
    geography = 'ZCTA'
    , survey='acs5'
    , table = TblName
    , year = YearRangeEnd
    , state = 26
    , ZCTA = ZIPs
    , cache_table = FALSE # TRUE
  )

print (ZIPData)

输出:

从 2018-2022 5 年 ACS 获取数据

map()
中的错误: ℹ 索引:1。 ℹ 姓名:1. 错误原因: !您的 API 调用有错误。 返回的 API 消息是错误:未知/不支持的地理层次结构。 运行
rlang::last_trace()
查看错误发生的位置。

rlang::last_trace()

map()
中的错误: ℹ 索引:1。 ℹ 姓名:1. 错误原因: !您的 API 调用有错误。 返回的 API 消息是错误:未知/不支持的地理层次结构。


回溯: ▆

  1. ├─tidycensus::get_acs(...)
  2. │ ├─... %>% ...
  3. │ └─呼噜::地图(...)
  4. │ └─purrr:::map_("列表", .x, .f, ..., .progress = .progress)
  5. │ ├─purrr:::with_indexed_errors(...)
  6. │ │ └─base::withCallingHandlers(...)
  7. │ ├─purrr:::call_with_cleanup(...)
  8. │ └─tidycensus(本地).f(.x[[i]], ...)
  9. │ ├─base::suppressWarnings(...)
  10. │ │ └─base::withCallingHandlers(...)
  11. │ └─tidycensus:::load_data_acs(...)
  12. │ └─base::stop(...)
  13. ├─base::Reduce(...)
  14. └─base::.handleSimpleError(...)
  15. └─purrr (本地) h(simpleError(msg, call))
  16. └─cli::cli_abort(...)
    
  17.   └─rlang::abort(...)
    

获取细分数据的并行代码工作正常:


TblName <- 'B01001'
YearRangeEnd <- 2023


SubData <- get_acs(
  geography="county subdivision", state=26
  , county=049
  , survey='acs5'
  , year = YearRangeEnd
  , table = TblName
  , cache_table = TRUE
)

print (SubData)


我尝试用单个值替换邮政编码向量,将 ' 更改为 ",将单个值写为数字而不是字符串(tidycensus 文档说可以),重新启动 RStudio,更改参数值。

有人有任何见解吗?

rstudio
1个回答
0
投票

所以看来邮政编码必须是数字。我已经在下面的代码中修复了。从代码来看,您似乎需要在非大写字母中使用“zcta”。对我有用,希望对你也有用!

YearRangeEnd <- 2022
TblName <- 'B01001'

# ZIPs we want to report
ZIPs <- c(
  '48411', '48420', '48423', '48430',
  '48433', '48436', '48437', '48438',
  '48439', '48451', '48457', '48458',
  '48463', '48473', '48502', '48503',
  '48504', '48505', '48506', '48507',
  '48509', '48519', '48529', '48532'
  )

# I'm too tired to remove all the ' in the strings above
ZIPs <- as.numeric(as.character(ZIPs))


ZIPData <- 
  get_acs (
    geography = 'zcta'
    , survey='acs5'
    , table = TblName
    , year = YearRangeEnd
    , state = 26
    , ZCTA = ZIPs
    , cache_table = FALSE # TRUE
  )

print (ZIPData)
© www.soinside.com 2019 - 2024. All rights reserved.