У меня есть аккуратный набор данных для секторов переписи в формате sf ( setores_sp_ok.rda ), в котором есть многоугольники для двух различных территориальных моделей, обозначенных переменной modelo
.Я хочу объединить сектора переписи по modelo
и cnes
, чтобы создать еще один набор данных с новыми границами.
Я могу сделать это, используя технику group_by()
+ summarise()
, которая автоматически использует st_union()
длясовокупные полигоны.Но результат плохой, со многими внутренними границами.
# load packages
library(dplyr)
library(ggplot2)
library(sf)
library(lwgeom)
# import data
load(url("https://github.com/bruno-pinheiro/app_acesso_saude/raw/master/data/setores_sp_ok.rda"))
# combine polygons
ubs_malhas <- setores_sp %>%
st_make_valid() %>%
group_by(cnes, modelo) %>%
summarise(area = sum(area)) %>%
ungroup()
# plot
ggplot(ubs_malhas[ubs_malhas$modelo == "vigente", ]) +
geom_sf(lwd = .2)
![result have many internal boundaries](https://i.stack.imgur.com/rSPdC.png)
Я знаю, что возможно реализовать этот вид операции, комбинируя st_combine
, st_union
и st_intersect
, но я не понимаю, как это сделать.
Как объединить полигоны по modelo
и cnes
и получить чистые агрегированные полигоны без внутренних границ?
У кого-нибудь есть совет?
Большое спасибо!