在R中使用归档包解压缩文件的fread问题

时间:2017-11-05 18:22:02

标签: r data.table

在使用R中的存档包解压缩文件后,我在尝试使用fread时遇到问题。我使用的数据可以从https://www.kaggle.com/c/favorita-grocery-sales-forecasting/data下载

代码如下:

library(dplyr)
library(devtools)
library(archive)
library(data.table)
setwd("C:/jc/2017/13.Lafavorita")
hol<-archive("./holidays_events.csv.7z")
holcsv<-fread(hol$path, header = T, sep = ",")

此代码提供错误消息:

File 'holidays_events.csv' does not exist. Include one or more spaces to consider the input a system command.

但是,如果我尝试:

holcsv1<-read.csv(archive_read(hol),header = T,sep = ",")

完美无缺。我需要使用fread命令,因为我需要打开的其他数据库太大而无法使用read.csv。我很困惑,因为我的代码几天前工作正常。我可以手动解压缩文件,但这不是重点。我试图解决这个问题几个小时,但我似乎无法在文档上找到任何有用的东西。我发现了这个:https://github.com/yihui/knitr/blob/master/man/knit.Rd#L104-L107,但我无法理解。

1 个答案:

答案 0 :(得分:0)

事实证明答案很简单,但我很幸运。因此,在使用归档功能后,您需要将其传递给archive_extract函数。所以在我的情况下,我应该在代码中添加以下内容:hol1<-archive_extract(hol)。然后我必须将最后一行更改为:holcsv<-fread(hol1$path, header = T, sep = ",")