我正在操作一些文件,并希望编写结果并给它们与操作前的名称相同。
以下是代码:
阅读文件:
dir2 <- list.files("/data/reprojected", "*.img", full.names = TRUE)
results<- list()
计算:
for (.files in seq_along(dir2)){
file1 <- readBin(dir2[.files], numeric(), size = 4, n = 1440*720, signed = TRUE)
results[[length(results) + 1L]]<- 500*file1
for (i in seq_along(results)){
fileName <- strsplit(dir2[i],split='\\.')[[1]][1]
outputFile <- paste(fileName,'_rescaled','.img',sep='')
writeBin(as.double(results[[i]]), outputFile, size = 4)}}
正如您在编写文件的这一部分中所看到的那样:
for (i in seq_along(results)){
fileName <- strsplit(dir2[i],split='\\.')[[1]][1]
outputFile <- paste(fileName,'','.img',sep='')
writeBin(as.double(results[[i]]), outputFile, size = 4)}
文件将被写入并采用与以前相同的名称,没有问题。 但是它们将被编写在与之前相同的目录中,之前的文件将被删除。 我的问题是我们如何指定我的鳕鱼中新目录的路径(保持与以前相同的名称)?
答案 0 :(得分:3)
dirname
和basename
分别将路径名拆分为目录和文件组件。您可以使用它来替换您自己的目录。
fileName <- strsplit(basename(dir2[i]), "\\.")[[1]][1]
fileName <- file.path(<new_directory>, fileName)
...