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

时间:2017-01-31 09:43:51

标签: r zipfile

我需要一次解压缩多个文件,并将其作为数据框添加到我的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")

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

请帮忙。

1 个答案:

答案 0 :(得分:3)

我经常使用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)

我非常喜欢乔尔的评论。我习惯使用plyr包这么多,以至于我忘了你也可以使用sapply功能。也许更好用![/ p>