我正在编写一个R函数,它使用read.csv()和unz()从ZIP文件的子目录中读取CSV文件而不先解压缩。
CSV文件以前导0命名,如00012.csv,00013.csv等。
该函数具有以下参数:MyZipFile,ASubDir,VNum(一个矢量,例如1:42),形成文件名。
我想要的是在unz()中使用变量PathNfilename。
# Incorporate the directory in the ZIP file while constructing the filename using stringr package
PathNfilename <- paste0("/", ASubDir, "/", str_pad(Vnum, 5, pad = "0"), ".csv", sep="")
有效的是:
csvdata <- read.csv(unz(description = "MyZipFile.zip", filename = "ASubDirectory/00039.csv"), header=T, quote = "")
我需要的是以下几点:
csvdata <- read.csv(unz(description = "MyZipFile.zip", filename = PathNFileName), header=T, quote = "")
我得到的错误是:
open.connection错误(文件,&#34; rt&#34;):无法打开连接
另外:警告信息:
在open.connection(文件,&#34; rt&#34;)中:
无法找到文件&#39; /ASubDir/00039.csv'在zip文件&#39; MyZipFile.zip&#39;
我想了解为什么我会收到错误以及如何解决错误。这是一个范围问题吗?
答案 0 :(得分:0)
尝试使用不带前导PathFilename
/
ASubDir <- "ASubDirectory"
Vnum <- 1:5
PathNfilename <- file.path(ASubDir,
paste0(str_pad(Vnum, 5, pad = "0"), ".csv")
)
PathNfilename
#> [1] "ASubDirectory/00001.csv" "ASubDirectory/00002.csv"
#> [3] "ASubDirectory/00003.csv" "ASubDirectory/00004.csv"
#> [5] "ASubDirectory/00005.csv"