我有很多.zip文件。我需要:
在R中有可能吗?对于许多文件来说,这是一项艰巨的任务,因为它是大型数据集,我需要按顺序进行处理。除了.csv文件之外,每个zip文件夹中还有一些其他文件。
答案 0 :(得分:1)
使用unzip
和zip
函数。在lapply
循环中,我们首先创建一个tempfile
,该unzip
用于read.csv
,并且可以grep
使用。我们用toEdit <- c("df1.zip", "df2.zip", "df3.zip")
lapply(toEdit, function(z) {
temp <- tempfile()
temp <- unzip(z)
r <- read.csv(temp[grep("csv", temp)])
## edit data
r <- r/10
## end edit data
nn <- gsub("zip", "csv", z)
write.csv(r, nn)
zip(z, nn)
unlink(temp)
})
标识.csv。然后编辑并逆转该过程。只有.csv得到更新,其他文件保持不变。
write("foo", "xy1.foo")
write("foo", "xy2.foo")
sapply(1:3, function(i) {
write.csv(data.frame(matrix(1:12, 3, 4)), paste0("df", i, ".csv"))
zip(paste0("df", i, ".zip"), paste0("df", i, ".csv"))
zip(paste0("df", i, ".zip"), "xy1.foo")
zip(paste0("df", i, ".zip"), "xy2.foo")
})
示例数据:
使用一个.csv文件和其中的一些其他内容创建.zip存档。
{{1}}