2017-08-16 2 views
0

J'ai passé en revue plusieurs questions et réponses StackOverflow et ne peuvent toujours pas utiliser exclusivement R obtenir un fichier .zip téléchargé avec succès, décompressé et chargé dans R.un fichier dans Dézippage R sur un Mac

Quand je télécharger le .zip dossier manuellement, je vois qu'il contient plusieurs fichiers, un nommé loan.csv, que je dois analyser dans R.

#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" 

Je reçois une erreur avec la première réponse que je trouve here:

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 

Je suis aussi obtenir une erreur en utilisant la 5 réponse (Mac spécifique) à la question SO hyperlinked ci-dessus:

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 

Répondre

1

Les multiples échecs ont diverses raisons:

  1. fread ne fonctionne pas avec unz. Cela fonctionne avec read.table.
  2. fread fonctionne avec des commandes shell plus étendues, mais vous ne pouvez pas tar un fichier ZIP car ce n'est pas une archive TAR. Vous pouvez utiliser funzip, comme suggéré dans la même réponse (mais seulement si votre archive ZIP contient un seul fichier).

... vous pouvez également simplement utiliser la fonction unzip.

+0

J'ai édité ma première tentative dans la question et j'ai utilisé 'read.table()' au lieu de 'fread()', et j'ai inclus le nouveau message d'erreur que je reçois. De plus, comme mentionné au début de la question, l'archive '.zip' contient plusieurs fichiers, donc le common' funzip' ne fonctionnera pas dans cette situation. – bshelt141

+0

@ bshelt141 Bon, le problème ici est que le fichier que vous téléchargez est en fait un fichier HTML et non un fichier ZIP. Vous ne pouvez pas accéder directement à l'URI - si j'essaie, mon navigateur me redirige vers https://www.kaggle.com/wendykan/lending-club-loan-data. Apparemment, vous devez vous connecter pour télécharger des ensembles de données. Vous pouvez le faire en R via le paquetage httr. Attention: c'est * beaucoup * plus complexe. –