在Mac上解压缩R中的文件

时间:2017-08-16 15:37:28

标签: r macos zip unzip

我已经审核了多个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

1 个答案:

答案 0 :(得分:1)

多次失败有多种原因:

  1. fread不适用于unz。它适用于read.table
  2. fread 使用更广​​泛的shell命令,但您不能取消tar ZIP文件,因为它不是TAR存档。您可以使用funzip,如同一个答案所示(但仅当您的ZIP存档只包含一个文件时)。
  3. ...你也可以简单地使用unzip R函数。