Чтобы получить хороший ответ, вы должны предоставить пример данных (не внешний файл, используйте данные, которые поставляются с R, или создайте некоторые с кодом).Что вы можете сделать, это создать RasterStack s
и вектор v
, который группирует слои, которые необходимо объединить, а затем выполнить
x <- stackApply(s, v, fun=min, na.rm=TRUE)
Теперь с примерами данных
library(raster)
# RasterStack with 12 layers
s <- stack(system.file("external/rlogo.grd", package="raster"))
s <- stack(s, s*2, s*3, s*4)
# make one layer with only NAs
values(s[[2]]) <- NA
# 12 corresponding dates
d <- paste0("RMI_2000", rep(sprintf("_%02d", 1:3), each=4), "_0", 1:4)
d
# [1] "RMI_2000_01_01" "RMI_2000_01_02" "RMI_2000_01_03" "RMI_2000_01_04" "RMI_2000_02_01" "RMI_2000_02_02" "RMI_2000_02_03" "RMI_2000_02_04" "RMI_2000_03_01" "RMI_2000_03_02" "RMI_2000_03_03" "RMI_2000_03_04"
# transform date into an index (stripping of the label and the week number)
i <- substr(d, 4, 11)
i
#[1] "2000_01" "2000_01" "2000_01" "2000_01" "2000_02" "2000_02" "2000_02" "2000_02" "2000_03" "2000_03" "2000_03" "2000_03"
ss <- stackApply(s, i, min, na.rm=TRUE)
ss
#class : RasterBrick
#dimensions : 77, 101, 7777, 3 (nrow, ncol, ncell, nlayers)
#resolution : 1, 1 (x, y)
#extent : 0, 101, 0, 77 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=merc +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#data source : in memory
#names : index_2000_01, index_2000_02, index_2000_03
#min values : 0, 0, 0
#max values : 255, 510, 765