Я не знаю, что вызывает ошибку.Альтернативный путь, который вы могли бы попробовать, это
library(raster)
x <- bind(poly)
y <- aggregate(x, "DN")
С примерами данных:
set.seed(0)
r <- raster(ncol=5, nrow=5, xmn=0, xmx=1, ymn=0, ymx=1)
values(r) = sample(5, ncell(r), replace=TRUE)
rr <- list()
rr[[1]] <- crop(r, extent(0,0.5,0,0.5))
rr[[2]] <- crop(r, extent(0.5,1,0.5,1))
rr[[3]] <- crop(r, extent(0,0.5,0.5,1))
rr[[4]] <- crop(r, extent(0.5,1,0,0.5))
x <- list(r1, r2, r3, r4)
y <- lapply(x, rasterToPolygons)
b <- bind(y)
a <- aggregate(b, 'layer')
plot(r)
plot(a, add=TRUE)