我需要一次解压缩多个文件,并将其作为数据框添加到我的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")
我尝试使用通配符,但它不起作用。
请帮忙。
答案 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>