2016-07-13 20 views
0

Ich möchte Datenserien für den gleichen Indikator für verschiedene Länder aus einer Online-Datenbank namens Quandl herunterladen. Ich kann für jede Anfrage die gleiche URL verwenden, muss aber nur den Ländercode ändern.Wie schreibe ich R-Funktion, um mehrere Datenreihen (gleicher Indikator, verschiedene Länder) aus der Quandl-Datenbank zu scrapen?

Der Code unten funktioniert nicht, könnte mir jemand mit dem richtigen R-Code helfen?

Dies ist meine erste Frage zu stackoverflow, Entschuldigung, wenn ich noch nicht alle Stackoverflow-Regeln erfülle. Ich habe versucht, eine Antwort der Suche mit Google usw. Keine succes so weit ...

install.packages("Quandl") 
library(Quandl) 

x.df <- data.frame(x) 

countries <- c("BE", "ESP") 

for(i in countries){ 
    temp.df <- Quandl("AMECO/", i, "_1_0_319_0_UBLGAPS", start_date = "1995-12-30", collapse = "annual") 
    x.df <- merge(x.df, temp.df, all=TRUE) 
    } 

ich diese Fehlermeldung:

Fehler in match.arg (Transformation):
‚arg "sollte‚‘,‚diff sein‘,‚rdiff‘,‚normalisieren‘,‚cumul‘,‚rdiff_from‘

+1

Scheint, ich habe keinen Zugang zu AMECO durch meinen freien Zugang zu Quandl. Sie sollten 'Quandl versuchen (paste0 (" AMECO/", i," _ 1_0_319_0_UBLGAPS ", ...))' –

+1

@TJT; Sie sollten ein Beispiel wählen, in dem jemand mit freiem Zugang testen kann. Sie sollten auch Ihre Frage bearbeiten, um alle erforderlichen Nicht-Basispakete zu laden. –

Antwort

0

Um den Grund für den bestimmten Fehler zu erklären, die ausgelöst wird. Dieser Aufruf:

Quandl("AMECO/", i, "_1_0_319_0_UBLGAPS", start_date = "1995-12-30", collapse = "annual") 

.... hat eine Reihe von unbenannte Argumente und das dritte Argument wird "_1_0_319_0_UBLGAPS" zum transform Parameter in der Quandl Funktion positions abgestimmt zu werden, die nur die Werte in der Fehlermeldung aufgeführt akzeptiert. Dieses Lauf Beispiel von der Seite Quandl modifiziert/R Hilfe zeigt, dass Eric Lecoutre Rat auf Punkt war:

> data <- Quandl(code=paste0("WIKI/", "FB.", 11), 
       start_date="2014-01-01", 
       end_date="2014-12-31", 
       collapse="monthly", 
       transform="diff") 
> str(data) 
'data.frame': 11 obs. of 2 variables: 
$ Date  : Date, format: "2014-12-31" ... 
$ Adj. Close: num 0.32 2.71 -4.05 4.22 2.17 ... 
- attr(*, "freq")= chr "daily" 

Moral dieser Geschichte: wenn sie mit einem match.arg Fehler konfrontiert wird, gehen Sie zurück und alle Namen Ihre Funktionsargumente .

+0

Danke 42-. Immer noch ein wenig rätselhaft, wie man die R-Funktion dazu bringt, Zeitreihendaten für einen Indikator über verschiedene Länder herunterzuladen. Aber ich werde in die Quellen, die Sie erwähnt haben, eintauchen und werde mich an Sie wenden, wenn ich den Code immer noch nicht richtig verstanden habe. – TJT

+0

Wenn sowohl "AMECO/BE_1_0_319_0_UBLGAPS" als auch "AMECO/ESP_1_0_319_0_UBLGAPS" einzeln erfolgreich ausgeführt werden, sollten Sie nach dem Hinzufügen einer ID-Spalte statt einer "Zusammenführung" eine Liste oder "rbind.data.frame" hinzufügen. Wir sind in weiteren Bemühungen gelähmt, weil Sie entweder diese Datensätze nicht beschreiben oder ein Beispiel verwenden, das kein kostenpflichtiges Abonnement erfordert. –