2016-05-06 14 views
1

Hintergrund:Haben Sie Probleme beim Lesen Tabelle mit sqldf Paket (R)

Ich kann erfolgreich eine bestimmte Datenmenge ziehen (im Code unten) aus dem Internet mit der read.csv() Funktion. Wenn ich jedoch versuche, das sqldf-Paket zu verwenden, um den Prozess zu beschleunigen, der read.csv.sql() verwendet, erzeugt es Fehler. Ich habe verschiedene Lösungen ausprobiert, kann aber dieses Problem nicht lösen.

Ich kann die Daten erfolgreich ziehen und den Datenrahmen zu schaffen, dass ich mit read.csv() will mit dem folgenden Code:

ce_data <- read.csv("http://download.bls.gov/pub/time.series/cx/cx.data.1.AllData", 
        fill=TRUE, header=TRUE, sep="") 

Um die Funktionalität von sqldf auf meinem Rechner zu testen, ich erfolgreich getestet read.csv.sql() durch in der Lese Daten als 1 Variable anstelle der 5 die folgenden Code gewünschte Verwendung:

library(sqldf) 

ce_data_sql1 <- read.csv.sql("http://download.bls.gov/pub/time.series/cx/cx.data.1.AllData", 
         sql = "select * from file") 

um das Ergebnis zu erzeugen, das I read.csv() wurde verwendet, aber die Geschwindigkeit desAusnutzung, habe ich versucht, diesen Code:

ce_data_sql2 <- read.csv.sql("http://download.bls.gov/pub/time.series/cx/cx.data.1.AllData", 
          fill=TRUE, header=TRUE, sep="", sql = "select * from file") 

Leider ist es diese Fehler erzeugt hat:

trying URL ' http://download.bls.gov/pub/time.series/cx/cx.data.1.AllData ' Content type 'text/plain' length 24846571 bytes (23.7 MB) downloaded 23.7 MB

Error in sqldf(sql, envir = p, file.format = file.format, dbname = dbname, : unused argument (fill = TRUE)

ich verschiedene Methoden versucht haben, um die Fehler zu adressieren, mit sqldf Dokumentation und waren nicht erfolgreich.

Frage:

Gibt es eine Lösung, wo ich in dieser Tabelle mit 5 Variablen lesen kann read.csv.sql gewünschten() verwenden?

Antwort

1

Der Grund, warum Sie es als eine einzelne Variable lesen, liegt daran, dass Sie das Trennzeichen für die ursprüngliche Datei nicht korrekt angegeben haben. Versuchen Sie, die folgenden, wo sep = "\t", für Tab-separierte:

ce_data_sql2 <- read.csv.sql("http://download.bls.gov/pub/time.series/cx/cx.data.1.AllData", 
sep = "\t", sql = "select * from file") 

.

Der Fehler, den Sie im letzten Beispiel bekommen:

Error in sqldf(sql, envir = p, file.format = file.format, dbname = dbname, : unused argument (fill = TRUE)

ist aufgrund der Tatsache, dass read.csv.sql nicht das fill Argument akzeptiert.

+0

Vielen Dank, @Eleventhend –