2017-08-16 3 views
0

ich mehrere Stackoverflow Fragen und Antworten und noch kann R eine .zip-Datei verwenden, erhalten erfolgreich heruntergeladen, entpackt und geladen in R.eine Datei in R auf einem Mac Entpacken

Wenn ich das nicht ausschließlich Download überprüft haben .zip Ordner manuell, ich sehe, dass es mehrere Dateien enthält, ein loan.csv genannt, dass ich

#set wd 
wd <- "/Users/myname/Documents/zip_folder" 
setwd(wd) 

zip_url <- "https://www.kaggle.com/wendykan/lending-club-loan-data/downloads/lending-club-loan-data.zip" 

in R. analysieren muß wir einen Fehler mit der ersten Antwort bekommen ich here gefunden:

library(utils) 
temp <- tempfile() 
download.file(zip_url, temp) 
data <- read.table(unz(temp, "loan.csv")) 
Error in open.connection(file, "rt") : cannot open the connection 
In addition: Warning message: 
In open.connection(file, "rt") : 
    cannot open zip file '/var/folders/b1/d481ykzd3j14kr8nkx8kn83m0000gn/T//RtmpcjmrIa/file932f730721c5' 
unlink(temp) 

Error in fread(unz(temp, "loan.csv")) : 
    'input' must be a single character string containing a file name, a command, full path to a file, a URL starting 'http[s]://', 'ftp[s]://' or 'file://', or the input data itself 

ich auch einen Fehler mit der fünften Antwort (Mac-spezifisch) auf die Frage SO immer über Hyperlink verwiesen:

loans <- fread("curl https://www.kaggle.com/wendykan/lending-club-loan-data/downloads/lending-club-loan-data.zip | tar -xf- --to-stdout *loan.csv") 

    % Total % Received % Xferd Average Speed Time Time  Time Current 
          Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0100 149 100 149 0  0 334  0 --:--:-- --:--:-- --:--:-- 334 
tar: Unrecognized archive format 
tar: *loans.csv: Not found in archive 
tar: Error exit delayed from previous errors. 

Error in fread("curl https://www.kaggle.com/wendykan/lending-club-loan-data/downloads/lending-club-loan-data.zip | tar -xf- --to-stdout *loans.csv") : 
    File is empty: /var/folders/b1/d481ykzd3j14kr8nkx8kn83m0000gn/T//RtmpcjmrIa/file932f299c7cc4 

Antwort

1

Die mehrerer Fehler verschiedene Ursachen haben:

  1. fread funktioniert nicht mit unz. Es funktioniert mit .
  2. funktioniert arbeiten mit umfangreicheren Shell-Befehle, aber Sie können nicht tar eine ZIP-Datei, weil es kein TAR-Archiv ist. Sie können verwenden funzip, wie in der gleichen Antwort vorgeschlagen (aber nur, wenn Ihr ZIP-Archiv nur eine einzige Datei enthält).

... können Sie auch einfach die unzip R-Funktion verwenden.

+0

Ich bearbeitete meinen ersten Versuch in der Frage und benutzte 'read.table()' anstelle von 'fread()' und fügte die neue Fehlermeldung hinzu, die ich empfange. Wie bereits am Anfang der Frage erwähnt, enthält das '.zip'-Archiv mehrere Dateien, so dass das' funzip'-Common in dieser Situation nicht funktioniert. – bshelt141

+0

@ bshelt141 Richtig, das Problem hier ist, dass die Datei, die Sie herunterladen, eigentlich eine HTML-Datei ist, keine ZIP-Datei. Sie können nicht direkt auf den URI zugreifen - wenn ich es versuche, leitet mich mein Browser zu https://www.kaggle.com/wendykan/lending-club-loan-data weiter. Anscheinend müssen Sie sich anmelden, um Datensätze herunterzuladen. Sie können dies in R über das HTR-Paket tun. Warnung: es ist * viel * komplexer. –