问题描述
在R中有可能吗?对于许多文件来说,这是一项艰巨的任务,因为它是大型数据集,我需要按顺序进行处理。除了.csv文件之外,每个zip文件夹中还有一些其他文件。
解决方法
使用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",".zip"),"xy1.foo")
zip(paste0("df","xy2.foo")
})
示例数据:
使用一个.csv文件和其中的一些其他内容创建.zip存档。
{{1}}