2016-04-07 28 views
-3

R.'de bir API çağrısı içinde bir makro değişken oluştururken sorun yaşıyorum Posta kodları vektörü arasında geçiş yapmaya ve bu vektör üzerinde yinelemeli olarak bir API çağrısı yapmaya çalışıyorum. Makro olarak dışarıda bırakılması gereken bir R listesiyle yinelenen oldukça yabancı.URL ile Yineleme ile Makro

# creating a dataframe of 10 sample California zip codes to iterate through from database 
zip_iterations<-sqlQuery(ch,"Select distinct zip from zip_codes where state='CA' limit 10",believeNRows="F") 

# Calling the api to retrieve the JSON 
json_file <- "http://api.openweathermap.org/data/2.5/weather?zip=**'MACRO VECTOR TO ITERATE'**  

Amacım bir makro kullanarak dataframe 10 posta kodları listesinde gitmektir:

İşte benim kodudur.

+1

URL'nin formunun ne olduğunu açıklamanız gerekecek, çünkü yazıldığından bu, çözmenizde yardımcı olamayacak kadar imkansız. – Thomas

+0

Yanıt için teşekkürler! URL formunda ne demek istediğinizden tam olarak emin değilsiniz, ancak zip koduyla JSON için bir hava durumu API çağrısıdır. 53555 ve 76534 posta kodlarım var diyor. For döngüsünde bir şey yapmak istiyorum. Zip = normalde 53555 gibi sıradan bir posta koduna sahip olacaktı, ve bu zip için hava alabiliyordum ama bunu = oluşturmak için oluşturduğum makroyu, yani önce 53555'i sonra 76534'ü çağırıyor ve dataframe'deki tüm satırlarda dolaşıyor. ... Tam olarak JSON'u çektiğim URL'nin çift tırnak içinde makroya nasıl başvurulacağından tam olarak emin değilim. – andyn

cevap

0

R, makroları kendi başına kullanmaz, ancak yapmak istediğiniz gibi ses çıkarmanın birçok alternatif yolu vardır. , fromJSON() örneğin

library("httr") 
json_file <- character(0) 
urls <- paste0("http://api.openweathermap.org/data/2.5/weather?zip=", zip_iterations) 
for (i in seq_along(urls)) { 
    json_file[i] <- content(GET(urls[i]), as = "text") 
} 

Ardından kullanarak R listelerinin bir kümesi haline sonuçlanan vektör ayrıştırabilir: Bu sürüm Bu posta kodu için HTTP yanıtı gövdesini içeren her girişle, bir karakter vektör json_file dönecektir Jsonlit paketinden, örneğin:

library("jsonlite") 
lapply(json_file, fromJSON) 

Bunun sonucu bir liste listesi olacaktır.

+0

Teşekkürler adam, bu harika çalışıyor! – andyn