При задании вопроса всегда включайте некоторые примеры данных, чтобы получить минимальный автономный воспроизводимый пример.
library(raster)
s <- r <- raster(ncol=5, nrow=5)
values(r) <- rep(c(1,NA,1,NA,1), 5)
values(s) <- 1:25
Вы можете делать то, что вам нужно (установите все значения в s, где r означает NA, равным 0), как это
x <- mask(s, r, updatevalue=0)
Вы также можете использовать алгебру
y <- (!is.na(r)) * s
На самом деле существует (скрытый) метод ifel, но он менее эффективен
z <- raster:::.ifel(!is.na(r), s, 0)