Проблема с загрузкой данных 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'

Я убедился, что у меня установлены последние пакеты, и я ввел свой ключ API переписи, но ошибка не устранена. Любые предложения приветствуются


person Racheal Amelung    schedule 26.03.2018    source источник


Ответы (2)


Вы не можете получить доступ к переменным через API Бюро переписи населения, не указав, какие «строка» и «столбец» вам нужны. В таблице B17021 есть много вариантов ; один из таких вариантов, который вы можете выбрать, будет Estimate (столбец) из Income in the past 12 months below poverty level (строка). Как правило, правильно отформатированные имена переменных имеют формат TableName_VariableNumberType. Итак, для примера, который я только что привел:

  • Таблица = B17021
  • Строка = 002
  • Тип = estimate (E)

Это соответствует переменной "B17021_002E".

Однако лучше просто ознакомиться с соответствующей документацией по API. убедитесь, что у вас правильное имя переменной. Таблица B17021 начинается примерно на полпути вниз по странице, и вы можете сопоставить это руководство с тем, что вы видите в American FactFinder, чтобы убедиться, что у вас правильное имя переменной.

Кстати, пару лет назад я написал себе руководство по этому поводу для Python. Он немного устарел, но я разместил его в мой GitHub на случай, если это поможет.

Изменить: похоже, что get_acs не требует указать тип переменной. Если вы этого не сделаете, возвращаемые данные будут иметь все атрибуты, что позволит вам отдельно построить оценку, допустимую погрешность, для одного и того же объекта. Это хорошая функция!

person HFBrowning    schedule 27.03.2018

Ответ @HFBrowning великолепен. Кроме того: вы можете использовать параметр table вместо параметра variables для запроса всех переменных из данной таблицы, что позволит вашему коду работать. Например:

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

работает и позволяет получать переменные с B17021_001 по B17021_035, не указывая их по отдельности.

person kwalkertcu    schedule 04.04.2018