我已经审核了多个StackOverflow问题和答案,但仍然不能专门使用R成功下载,解压缩并加载到R中的.zip
文件。
当我手动下载.zip
文件夹时,我发现它包含多个文件,一个名为loan.csv
,我需要在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"
我在第一个回答中发现错误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
我也使用第5个答案(特定于Mac)对上面超链接的SO问题收到错误:
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
答案 0 :(得分:1)
多次失败有多种原因:
fread
不适用于unz
。它适用于read.table
。fread
使用更广泛的shell命令,但您不能取消tar
ZIP文件,因为它不是TAR存档。您可以使用funzip
,如同一个答案所示(但仅当您的ZIP存档只包含一个文件时)。 ...你也可以简单地使用unzip
R函数。