Проблема с загрузкой данных 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 Census, но ошибка сохраняется. Любые предложения приветствуются

2 ответа

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

  • Таблица = B17021
  • Ряд = 002
  • Тип = estimate (E)

Переменная это соответствует "B17021_002E",

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

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

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

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

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

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

Другие вопросы по тегам