2015-10-26 39 views
4

我想知道从档案文件(我的案例中的zip档案)阅读data.table的推荐方式是什么。一个明显的选择是将其解压缩到一个临时文件,然后像往常一样。我不想理会创建新的文件,所以不是我用read.table()unz()连接,然后用data.table()将其转换:fread()从档案文件

mydt <- data.table(read.table(unz(myzipfilename, myfilename))) 

这工作得很好,但read.table()是大文件缓慢而fread()不能读直接连接unz()。我想知道是否有更好的解决方案。

+0

你可以看一下'readr'包(Hadley Wickham的一个)中的'read_file'函数。我发现它比基本R读取解压缩文件的速度更快,文档指出它可以读取压缩文件。 – WaltS

回答

3

看:Read Ziped CSV File with fread 为了避免tmp文件,你可以解压缩与-p提取文件用它来管,没有消息

你可以用这样一种用fread语句。

x = fread('unzip -q test/allRequests.csv.zip') 

或用gunzip解

x = fread('gunzip -cq test/allRequests.csv.gz') 

您还可以使用grep或其他工具。