Đây là mã ví dụ. Khá dễ dàng để điều chỉnh mã này để làm việc trong một vòng lặp để xử lý tất cả các trình quét của bạn. Nếu các raster của bạn chia sẻ một phạm vi và độ phân giải chung, bạn có thể tạo một ngăn xếp raster và lặp qua các dải trong ngăn xếp. Để tạo một vectơ chứa tất cả các trình quét trong một thư mục, trong một định dạng cụ thể, bạn có thể sử dụng "list.files" và sau đó chuyển vectơ này để xếp chồng.
Thí dụ:
rlist=list.files(getwd(), pattern="img$", full.names=TRUE)
r <- stack(rlist)
# Add required libraries
require(raster)
require(sp)
require(rgdal)
# Set working directory, raster, in and out shapefiles
setwd("C:/test")
inshp="MyPolys"
outshp="PolyMeans"
rdata <- "Year2012.img"
# Read polygon feature class shapefile
sdata <- readOGR(dsn=getwd(), layer=inshp)
# Read raster
r <- raster(rdata)
# Extract raster values to list object
r.vals <- extract(r, sdata)
# Use list apply to calculate mean for each polygon
r.mean <- lapply(r.vals, FUN=mean)
# Join mean values to polygon data
sdata@data <- data.frame(sdata@data, m2012=r.mean)
# Write results
writeOGR(sdata, getwd(), outshp, driver="ESRI Shapefile", check_exists=TRUE,
overwrite_layer=TRUE)