Не уверен насчет ошибки, но ваша функция выглядит немного странно.
Сначала давайте добавим случайное начальное число для воспроизводимости:
library(raster)
r <- raster(ncol=10, nrow=10)
set.seed(42)
s <- stack(lapply(1:365, function(i) setValues(r, runif(100, 0, 1))))
# adding NAs
s[[2]][sample(100, 25, TRUE)] <- NA
s[sample(100, 25, TRUE)] <- NA
calc
в стеке или кирпиче в основном работает с векторами значений по слоям.
Так что это должно работать:
f <- function(i) {
q <- quantile(i,probs = .025 ,na.rm=TRUE)
i[i<q] <- q
i
}
x <- calc(s,fun=f)
А для проверки:
q <- calc(s,fun = function(x) quantile(x,0.025,na.rm=T))
par(mfrow=c(1,2))
plot(s[[1]] < q,main="s[[1]] < q")
plot(x[[1]] == q,main="x[[1]] == q")