Я пытаюсь использовать пакетный геокодер Бюро переписи (http://geocoding.geo.census.gov/geocoder/Geocoding_Services_API.pdf) с R. Входные адреса находятся в кадре данных, а не в CSV. Поскольку адреса являются промежуточным этапом, я не хочу записывать их в CSV.API-интерфейс пакетного геокодирования Census с исходными адресами в кадре данных (не CSV) в R
Я прочитал несколько сообщений о stackoverflow. Решение Hadley (Posting to and Receiving data from API using httr in R) иллюстрирует, как загрузить существующий файл CSV. Решение MrFlick (Uploading a csv to an api in R) похоже на то, что я хочу, но использует строку, а не фрейм данных.
Вот что я имею в пути кода:
#generate data frame of test addresses for this example
a = c(1, 2, 3)
b = c("125 Worth Street", "258 Broadway", "8 Centre Street")
c = rep("New York", 3)
d = rep("NY", 3)
e = c("10013","10007","10007")
addresses = data.frame(a,b,c,d,e)
#names specified by API documentation
colnames(addresses) <- c("Unique ID","Street address","City","State","ZIP")
apiurl <- "http://geocoding.geo.census.gov/geocoder/geographies/addressbatch"
req <- POST(apiurl, body=list(
addressFile = RCurl::fileUpload(
filename = "test.csv",
contents = addresses
),
benchmark = "Public_AR_Census2010",
vintage = "Census2010_Census2010"
),
encode="multipart"
)
stop_for_status(req)
Спасибо заранее.
Интересно ... Что ожидаемый результат? –
Почему вы не можете записать данные во временный файл, а затем удалить временный файл, когда вы закончите/выходите? – sckott
Я хотел бы использовать это в базе данных записей госпитализации, чтобы получить географию переписи (блок, трактат). Поскольку я имею дело с миллионами записей, я думал, что сравниваю скорость пакетного геокодера с скоростью одного геокодера записи (применяемого посредством векторизации). – gmculp