使用R

时间:2015-06-01 21:33:17

标签: r import

我想使用R从zip文件中的zip文件中提取数据(即预先形成一些ZIP文件)。

示例"目录"我的一个数据点看起来像这样:

C:\ZipMother.zip\ZipChild.zip\index.txt

我的目标是阅读" index.txt"来自每个ZipChild.zip。问题是我有324个ZipMother.zip文件,平均有2000个ZipChild.zip文件,因此解压缩ZipMother.zip文件是一个问题,因为内存限制(ZipMother文件平均大约600兆字节)。

使用unzip包,我可以成功获取ZipMother中每个ZipChild的文件路径,但我无法使用它来列出ZipChild文件夹中的文件。

因此,

unzip("./ZipMother.zip",list=TRUE)

工作得很好,但是......

unzip("./ZipMother.zip/ZipChild.zip",list=TRUE)

给我以下错误

  

解压缩时出错(" ./ ZipMother.zip/ZipChild.zip" ;, list = TRUE):    zip文件' ./ ZipMother.zip/ZipChild.zip'无法打开

有没有办法使用解压缩或其他方法从ZipChild文件中提取数据?

一旦我开始工作,我计划使用ldply函数将index.txt文件编译成数据集。

非常感谢任何输入。谢谢!

1 个答案:

答案 0 :(得分:1)

可重复的示例(即具有适当结构的zip文件的链接)将非常有用,但如何:

tmpd <- tempdir()
## extract just the child
unzip("./ZipMother.zip",
        files="zipChild.zip",exdir=tmpd)
ff <- file.path(tmpd,"zipChild.zip")
index <- unzip(ff,list=TRUE)
unlink(ff)

为方便起见,这显然可以打包成一个函数。

它可能很慢,但这意味着你不必一次解开一个以上的孩子......