2016-07-12 3 views
1

Das highfrequency Paket in einer Weise erstellt wurde mit .txt und .csv Dateien von der NYSE TAQ und WRDS TAQ zu verwandeln jeweils in .RData Dateien von xts Objekte, die dann leicht durch das Paket manipuliert werden.Convert CSV für weitere Manipulation Datei ‚Hochfrequenz‘ -Paket auf R

Das Problem ist, dass ich Zugriff auf die Datenbank WRDS beschränkt habe, die mich nur (in Sicherheit Preisen The Center for Research) Datenbank aber nicht die TAQ (Trades und Quotes) Datenbank tick-Daten aus dem CRSP zum Download ermöglicht. So sehen meine Daten wie this aus. Die herunterladbare Datei enthält Tick-Daten für den REIT-Index vom 01.01.2014 bis zum 05.01.2014. Ich habe den Ticker-Header für den Header PREIS manuell geändert, wie es von Kris Boudt, einem der Hauptautoren vorgeschlagen wird.

Der Code, den ich verwende, ist die folgende:

from="2014-03-01" 
to="2014-04-31" 
datasource="C:/Users/aris/Desktop/raw_data" 
datadestination="C:/Users/aris/Desktop/xts_data" 
convert(from = from,to=to,datasource = datasource,datadestination = datadestination, 
trades=TRUE,quotes=FALSE,ticker="REIT",dir=FALSE,extension="csv",header = TRUE, 
tradecolnames = NULL, quotecolnames = NULL,format = "%Y%m%d %H:%M:%S",onefile=TRUE) 

Ich vermute, dass das Problem an der Linie format = "%Y%m%d %H:%M:%S", wie bei der .csv Datei liegt das Datum und die Zeit durch Komma getrennt sind. Ich habe versucht, ein Komma zwischen %d and %H wie dieses format = "%Y%m%d,%H:%M:%S" aber nichts zu setzen.

Der Fehler liest

Error in `$<-.data.frame`(`*tmp*`, "COND", value = numeric(0)) : 
replacement has 0 rows, data has 1048575 

Alle Vorschläge sind willkommen.

+0

Können Sie Ihre Datei auf eine freundlichere Website hochladen? Ich kann es nicht herunterladen. Es ist nur 1,5 MB, und es wäre nur ~ 10% dieser Größe, wenn Sie es gezippt haben. –

+0

Vielen Dank für die schnelle Antwort. Laden Sie einfach die Datei @JoshuaUlrich neu – Greconomist

Antwort

1

Dank Joshua Ulrich konnte ich zusätzliche Intuition gewinnen und das Problem (s) lösen. Tatsächlich ist es nicht erforderlich, die CSV-Datei selbst zu bearbeiten und zusätzliche Spalten hinzuzufügen. Anstatt tradecolnames = NULL einzustellen, lassen Sie die Maschine wissen, welche Spalten in Ihrer Datei enthalten sind, indem Sie tradecolnames = c("DATE","TIME","PRICE") setzen. Das Problem mit den nicht vorhandenen Verzeichnissen wird durch Setzen von dir=TRUE behoben. Der endgültige Code sieht folgendermaßen aus:

from="2014-03-01" 
to="2014-04-31" 
datasource="C:/Users/aris/Desktop/raw_data" 
datadestination="C:/Users/aris/Desktop/xts_data" 
convert(from,to,datasource,datadestination,trades=TRUE,quotes=FALSE,ticker="REIT",dir=TRUE,extension="csv",header= TRUE,tradecolnames=c("DATE","TIME","PRICE"),format = "%Y%m%d %H:%M:%S",onefile=TRUE) 
0

Die highfrequency::convert Funktion ruft highfrequency:::makeXtsTrades auf, die die folgenden Spalten in Ihrer Textdatei erwartet: DATUM, ZEIT, PREIS, GRÖSSE, SYMBOL, EX, COND, CORR, G127.

Ich fügte Ihrer Textdatei leere Spalten hinzu und erhielt den Fehler in Ihrer Frage nicht. Die editierte Textdatei sieht so aus:

DATE,TIME,PRICE,SIZE,SYMBOL,EX,COND,CORR,G127 
20140102,9:30:00,1123.77,,,,,, 
20140102,9:30:01,1122.81,,,,,, 
20140102,9:30:02,1122.77,,,,,, 

Ich habe aber einen anderen Fehler bekommen.

Error in gzfile(file, "wb") : cannot open the connection 
In addition: Warning message: 
In gzfile(file, "wb") : 
    cannot open compressed file '/home/josh/Desktop/z_xts/2014-01-02/REIT_trades.RData', probable reason 'No such file or directory' 

So sieht es aus wie die convert Funktion all Tagesleistung Verzeichnisse erwartet existieren, bevor Sie es ausführen. Die Funktion wird ausgeführt und erstellt die Ausgabe, nachdem ich diese Verzeichnisse erstellt habe.

+0

Vielen Dank für Ihre Zeit. Ausgezeichnete Vorschläge. – Greconomist