Hi Robert Thanks for your reply! Your suggestion solved the problem, because in my case I do have cells where there is NA in all layers.
But, I'm still a little puzzled about why it is not running in the case where there is NA in a cell in only one of the layers. lm() normally works in a case like this, so I am not sure why it is returning an error here? require(raster) # From help to calc function # create data r <- raster(nrow=10, ncol=10) s1 <- s2<- list() for (i in 1:12) { s1[i] <- setValues(r, rnorm(ncell(r), i, 3) ) s2[i] <- setValues(r, rnorm(ncell(r), i, 3) )} s1 <- stack(s1) s2 <- stack(s2) s <- stack(s1, s2) r <- setValues(r, rnorm(ncell(r), 1, 3) ) plot(r) r[1] <- NA #Setting top left corner to NA plot(r) s <- stack(s, r) # Now only one of the rasters has a NA value # So this is equivalent to doing a lm with one NA value: a <- rnorm(10, 5, 2) b <- c(1:9, NA) lm(a~b) # This seem to work ok. # But with the brick: fun <- function(x) { lm(x ~ time)$coefficients[2] } time <- nlayers(s) x5 <- calc(s, fun) # Error in model.frame.default(formula = x ~ time, drop.unused.levels = TRUE) : variable lengths differ (found for 'time') Best regards Lars Lars Dalby Msc. PhD student Ecoinformatics & Biodiversity Department of Bioscience, Aarhus University Denmark -- View this message in context: http://r-sig-geo.2731867.n2.nabble.com/Problems-with-NA-values-and-lm-in-calc-in-raster-package-tp7455990p7460272.html Sent from the R-sig-geo mailing list archive at Nabble.com. _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo