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