@EZGraphs在Twitter上写道:"很多在线csv都是压缩的.有没有办法下载,解压缩档案,并使用R?#Rstats将数据加载到data.frame"
我今天也试图这样做,但最终只是手动下载zip文件.
我尝试过类似的东西:
fileName <- "http://www.newcl.org/data/zipfiles/a1.zip"
con1 <- unz(fileName, filename="a1.dat", open = "r")
Run Code Online (Sandbox Code Playgroud)
但我觉得我还有很长的路要走.有什么想法吗?
我需要一次解压缩多个文件并将其添加为 R 仪表板中的数据框。
我目前正在使用此代码:
zipF<- "/Users/sahilverma13/Desktop/chat_data_2017-01-30_IST.zip"
outDir<-"/Users/sahilverma13/Desktop"
unzip(zipF,exdir=outDir)
Run Code Online (Sandbox Code Playgroud)
但是我必须分别为每个文件执行此操作。
zipF <- list.files(pattern="*.zip")
Run Code Online (Sandbox Code Playgroud)
我尝试使用通配符,但它不起作用。
请帮忙。
有没有办法从.zip存档中有选择地提取名称与模式匹配的文件?
例如,如果我想使用.csv存档中的所有文件并忽略其他文件.
目前的做法:
zipped_file_names <- unzip('some_archive.zip') # extracts everything, captures file names
csv_nms <- grep('csv', zipped_file_names, ignore.case=TRUE, value=TRUE)
library('data.table')
comb_tbl <- rbindlist(lapply(csv_nms, function(x) cbind(fread(x, sep=',', header=TRUE,
stringsAsFactors=FALSE),
file_nm=x) ), fill=TRUE )
Run Code Online (Sandbox Code Playgroud)
而不只是选择哪些读取(csv_nms),我正在寻找一种方法来选择首先提取哪些.
我目前正在使用v3.2.2(Windows).