This is caused by small polygons (epidemiological units) that do not cover any of the raster cell centres of the risk map. For instance, small islands.
library(mapMCDA)
library(raster)
#> Loading required package: sp
## 10 x 10 raster with sequential values
r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, nrow = 10, ncol = 10)
r <- setValues(r, seq.int(ncell(r)))
## polygons covering the region by squares of 2x2 pixels
r0 <- r
res(r0) <- 2*res(r)
epiunits <- as(r0, "SpatialPolygons")
epi_ext <- raster::bind(raster::shift(epiunits[c(1, 6)], x = -5), epiunits)
## Problematic situation: one or more polygons off (islands or very small units)
plot(r)
plot(epi_ext, add = TRUE)
res <- risk_unit(r, epi_ext)
## There are a missing value for those polygons. That's fine.
head(res)
#> [1] NA NA 6.5 8.5 10.5 12.5
## But they break the plot:
risk_plot(epi_ext, res, n = 5)
#> Error in seq.default(from = rv[1], to = rv[2], length = n + 1): 'from' must be a finite number
This is caused by small polygons (epidemiological units) that do not cover any of the raster cell centres of the risk map. For instance, small islands.
Created on 2019-04-12 by the reprex package (v0.2.1)