【问题标题】:How to create a loop though folders to write rasters in corresponding folder in R?如何通过文件夹创建循环以在R中的相应文件夹中写入栅格?
【发布时间】:2023-03-26 01:48:01
【问题描述】:

我正在尝试对不同的文件夹重复相同的操作。我将多个栅格堆叠和相乘 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 新手,如有任何帮助,将不胜感激。

【问题讨论】:

    标签: r loops directory raster


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多