Я пытаюсь написать цикл for, который будет принимать почтовые индексы, сделать вызов API в базу данных информации Конгресса, а затем разобрать только стороны конгрессменов, представляющих почтовый индекс.Разбор JSON в цикле for в R
Проблема заключается в том, что некоторые из почтовых индексов имеют более одного конгрессмена, а другие вообще не имеют (по всей видимости, ошибка со стороны базы данных). Это означает, что мне нужно прокрутить счет, возвращенный оригинальным нажатием, пока не появится больше представителей.
Вопрос в том, что количество конгрессменов, представляющих каждый почтовый индекс, отличается. Таким образом, я хотел бы иметь возможность записывать новые имена переменных в мою фреймворк для каждого нового конгрессмена. То есть, если есть 2 конгрессмена, я бы хотел написать новые колонки с именем «party.1» и «party.2» и т. Д.
У меня есть этот код, и я чувствую, что я близок , но я действительно зациклился на том, что делать дальше. Спасибо за вашу помощь!
EDIT: Я нашел этот способ быть проще, но я до сих пор не получаю результаты я ищу
library(rjson)
library(RCurl)
zips <- (c("10001","92037","90801", "94011")
test <- matrix(nrow=4,ncol=7)
temp <- NULL
tst <- NULL
for (i in 1:length(zips)) {
for (n in length(temp$count)) {
temp <- (fromJSON(getURL(paste('https://congress.api.sunlightfoundation.com/legislators/locate?zip=',
zips[i],'&apikey= 'INSERT YOUR API KEY', sep=""), .opts = list(ssl.verifypeer = FALSE))))
tst <- try(temp$results[[n]]$party, silent=T)
if(is(tst,"try-error"))
test[i,n] <- NA
else
test[i,n] <- (temp$results[[n]]$party)
}
}
Я поддерживаю клиент R для API Sunlight. Https://github.com/ropengov/rsunlight – sckott
Спасибо Скотту, но есть ли способ сделать это в цикле? Мне нужно перенести результаты в кадр данных, и я немного потерял, как это сделать с вашим клиентом. – StanO
Я не уверен, что вы имеете в виду, перейдя к data.frame. Вывод в слоте 'results' представляет собой data.frame, если на самом деле есть данные для этого почтового индекса. Просто проиндексируйте «результаты», чтобы получить data.frame. – sckott