В следующем примере я пытаюсь заменить значение 10 в растре r на соответствующее значение пикселя из растра r2:
library(raster)
r <- raster(nrows=25, ncols=25, vals=round(rnorm(625, 3), 0)) #land-use/cover raster
r[ r > 2 ] <- NA
r[ r < 1 ] <- 10
plot(r)
r2 <- raster(nrows=25, ncols=25, vals=round(rnorm(625, 3), 0)) #land-use/cover raster
plot(r2)
Я надеялся, что следующий код будет работать:
r3 <- overlay(r, r2, fun = function(x, y) { x[ x == 10 ] <- y ; return(x) })
... но возвращается ошибка:
Error in (function (x, fun, filename = "", recycle = TRUE, forcefun = FALSE, :
cannot use this formula, probably because it is not vectorized
Я уверен, что часть проблемы связана с "<- y" в функции наложения.Я попытался использовать «<- y [x == 10]» вместо этого, но все еще сталкиваюсь с той же проблемой ... Есть идеи?Заранее спасибо. </p>