Как создать цикл через папки для записи растров в соответствующую папку в R? - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь повторить одни и те же операции для разных папок.Я складываю и умножаю несколько растров в 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 голосов
/ 09 июля 2018

Небольшая модификация вашего кода, и она работает.Проблема была в том, как вы указали имя и путь для написания нового растра.

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