Вы можете сделать это по-разному, но я думаю, что, как правило, проще всего сначала создать все выходные имена файлов (и проверить, верны ли они), а затем использовать их в цикле.
Так что-то вроде этого:
library(raster)
infiles <- list.files('inputpath', full.names=TRUE)
ff <- extension(basename(infiles), '.tif')
outpath <- 'outputpath'
outfiles <- file.path(outpath, ff)
Чтобы убедиться, что вы пишете в существующую папку, вы можете сначала создать ее.
dir.create(outpath, showWarnings=FALSE, recursive=TRUE)
А затем циклически перебирать файлы
for (i in 1:length(infiles)) {
r <- raster(infiles[i])
writeRaster(r, paste(outfiles[i], overwrite = TRUE)
}
Вы также можете использовать что-то в этом духе
outfiles <- gsub('in', 'out', infiles)