Я пытаюсь выполнить пакетное геокодирование группы адресов с помощью геокодера переписи населения США: http://geocoding.geo.census.gov/geocoder/
Я нашел этот вопрос:
Публикация в и Получение данных из API с помощью httr в R
и предложение Хэдли отлично работает, чтобы отправить мой фрейм данных в API и вернуть геокодированные адреса. Проблема, с которой я сталкиваюсь, заключается в том, как вернуть возвращенные данные в фрейм данных. Я бы прокомментировал его ответ там, но, к сожалению, поскольку это новая учетная запись, я пока не могу комментировать.
Итак, мой код выглядит следующим образом:
req <- POST("http://geocoding.geo.census.gov/geocoder/geographies/addressbatch",
body = list(
addressFile = upload_file("mydata.csv"),
benchmark = "Public_AR_Census2010",
vintage = "Census2010_Census2010"
),
encode = "multipart",
verbose())
stop_for_status(req)
content(req)
Когда я запускаю content(req), я получаю данные, которые выглядят так:
"946\",\"123 MY STREET, ANYTOWN, TX,
99999\",\"Match\",\"Non_Exact\",\"123 MY STREET, ANYTOWN, TX,
99999\",\"-75.43486,80.423775\",\"95495654\",\"L\",\"99\",\"999\",\"021999\",\"3
005\"\n\"333\",\"456 MY STREET, ANYTOWN, TX,
99999\",\"Match\",\"Exact\",\"456 MY STREET, ANYTOWN, TX,
99999\",\"-75.38545,80.383747\",\"6546542\",\"R\",\"99\",\"999\",\"021999\",\"3002\"\n\
Я пытался использовать подход jsonlite, упомянутый здесь: Успешное принуждение объекта JSON с разбивкой на страницы в кадр данных R
а также гуглить httr/content для фрейма данных, и не повезло. Ближе всего я подошел к тому, чтобы получить то, что хочу, используя
cat(content(req, "text"), "\n")
, который дает результаты, похожие на CSV, которые я мог бы использовать в качестве фрейма данных:
"476","123 MY STREET, ANYTOWN, TX, 99999","Match","Exact",
"123 MY STREET, ANYTOWN, TX,
99999","-75.438644,80.426025","654651321","L","99","999","0219999","3013"
Но мне также не удалось найти какую-либо помощь в получении результатов cat() во фрейм данных, поскольку я считаю, что функция печатает только результаты.
Когда я использую браузер и загружаю csv, я получаю обратно csv со следующими столбцами: RowID, Address, Match, MatchType, MatchedAddress, Lat, Long, StreetSide, State, County, Tract, Block.
Я бы предпочел делать это через R, поэтому конечным результатом должен быть фрейм данных с этими столбцами. Данные есть в содержимом (req), я просто не понял, как получить их во фрейме данных.
Спасибо за помощь!