如何提取多个 zip 文件并在 R 中读取这些 csv? [复制]

Posted

技术标签:

【中文标题】如何提取多个 zip 文件并在 R 中读取这些 csv? [复制]【英文标题】:How can I extract multiple zip files and read those csvs in R? [duplicate] 【发布时间】:2017-01-31 09:43:51 【问题描述】:

我需要一次解压缩多个文件并将其作为数据框添加到我的 R 仪表板中。

我目前正在使用此代码:

zipF<- "/Users/sahilverma13/Desktop/chat_data_2017-01-30_IST.zip"
outDir<-"/Users/sahilverma13/Desktop"
unzip(zipF,exdir=outDir)

但我必须为每个文件单独做。

zipF <- list.files(pattern="*.zip")

我尝试使用通配符,但它不起作用。

请帮忙。

【问题讨论】:

试试这个zipF &lt;- list.files(pattern=".zip", full.names = T); sapply(zipF, unzip, exdir = ...) 【参考方案1】:

我经常使用 plyr 包中的 ldply 函数来读取或处理多个文件。

library(plyr)

# get all the zip files
zipF <- list.files(path = "/your/path/here/", pattern = "*.zip", full.names = TRUE)

# unzip all your files
ldply(.data = zipF, .fun = unzip, exdir = outDir)

正如理查德指出的那样,这并不完整(早上喝太多咖啡也不好)。

# get the csv files
csv_files <- list.files(path = outDir, pattern = "*.csv")

# read the csv files
my_data <- ldply(.data = csv_files, .fun = read.csv)

我非常喜欢 Joel 的评论。我已经习惯了使用 plyr 包,以至于我忘记了你也可以使用 sapply 函数。也许更好用!

【讨论】:

这是问题的一半,但不会将 csv 文件读入 R 这很好用,谢谢!除了只有一行 # read the csv files my_data 只是为了检查,但是:您安装了plyr 库吗? # read the csv files 是注释行。你有任何错误吗? 在 list.files 中,如果您的文件不在工作目录中,您可能需要添加 full.names = TRUE 在list.files中,也可以使用recursive = TRUE获取一个目录及其子目录下的所有文件,并带有全名

以上是关于如何提取多个 zip 文件并在 R 中读取这些 csv? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不实际提取文件的情况下使用 VBScript 读取 .zip 文件的内容?

如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?

如何读取多个 zip 文件中的所有 csv 文件?

如何从r中的.ini文件中提取数据?

如何在不使用临时文件的情况下从 Java 中的嵌套 zip 文件中读取数据?

如何从 zip 中提取 csv 文件并在 python 中将其保存到磁盘? [复制]