2016-04-07 6 views
-3

RのAPI呼び出し内でマクロ変数を作成する際に問題が発生しました。私は、郵便番号のベクトルをループし、繰り返しそのベクトルでAPI呼び出しを実行しようとしています。マクロリストを作成する必要があるRリストを反復することにはほとんど慣れていません。繰り返しのURLを持つマクロ

# 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'**  

私の目標は、マクロを使って、データフレームで10の郵便番号のリストを通過することです:

は、ここに私のコードです。

+1

URLの形式がどのようなものかを説明する必要があります。これは、書かれているとおり、解決することは非常に不可能なためです。 – Thomas

+0

応答ありがとう! URLの形式が何を意味しているかは正確にはわかりませんが、郵便番号によるJSONの天気API呼び出しです。私は郵便番号53555と76534を持っていると言うことができます。私はforループのような何かを探しています。 zip =は通常53555のような通常の郵便番号を持ちますが、私はそのジップの天気を取得しますが、私はそれを作成するマクロにしたいので最初に53555を呼び出して76534を呼び出し、データフレーム内のすべての行をループします... URLの二重引用符でマクロを参照する方法を正確には分かりません.JSONを引き出しています。 – andyn

答えて

0

Rはマクロ自体を使用していませんが、実行したいと思うようにするための方法がたくさんあります。このバージョンでは、その郵便番号のためのHTTPレスポンスのボディを含む各エントリに、文字ベクトルjson_fileを返します。

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") 
} 

あなたはその後、例えば、使用してR・リストのセットに得られたベクターを解析することができ、fromJSON()

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

などのjsonliteパッケージの結果がリストのリストになります。

+0

ありがとう、これは素晴らしい作品! – andyn

関連する問題