如何通过文件夹创建循环以在 R 中的相应文件夹中写入栅格?

How to create a loop though folders to write rasters in corresponding folder in R?

我正在尝试对不同的文件夹重复相同的操作。我将几个栅格堆叠并相乘 10 次(对应于我的 10 个文件夹)。我想在 dir a 中进行操作并在 dir a 中写入新栅格,在 dir b 中进行操作 并将新光栅写入 dir b,等等

setwd("path/")
dir <- list.dirs(recursive=FALSE)

for(j in 1:length(dir)){

writeRaster(stack( list.files(path=dir[j], recursive=TRUE, full.names=TRUE,  pattern='rain'))*2, 
          path=dir[j]),filename=paste(dir[j], "new.tif"), overwrite=TRUE,  bylayer=TRUE )
}

但是,使用上面的代码,文件并没有写在相应的文件夹中。都写在setwd.

定义的路径中

我是 R 的新手,如有任何帮助,我们将不胜感激。

对您的代码稍作修改即可。问题在于您指定名称和写入新栅格的路径的方式。

dir <- list.dirs(recursive=FALSE)

for(j in 1:length(dir)){
writeRaster(stack( list.files(path=dir[j], recursive=TRUE, full.names=TRUE, pattern='rain'))*2,
paste0(dir[j],"/",strsplit(dir[j],"/")[[1]][2], "_new.tif"), overwrite=TRUE,  bylayer=TRUE )
    }