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

时间:2018-06-13 13:34:48

标签: r loops directory raster

我正在尝试对不同的文件夹重复相同的操作。我正在堆叠和倍增几个栅格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的新人,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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 )
    }