R 中的操作通常通过循环短变量进行矢量化。这样就可以了
1:3 + 10
#[1] 11 12 13
这同样适用于栅格数据。
示例数据:
library(raster)
sims <- stack(system.file("external/rlogo.grd", package="raster"))
trend <- raster(sims)
values(trend) <- 1:ncell(trend)
解决方案:
x <- sims + trend
names(x) <- paste0(names(sims), ".trend")
x
#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)
#crs : +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
#source : memory
#names : red.trend, green.trend, blue.trend
#min values : 256, 256, 256
#max values : 8032, 8032, 8032