我想要连接从美国州的样本中绘制出来的所有州之间的线,就像在这个帖子中所做的那样。 我成功地在一些多边形之间画了一些线,但是我没有成功地画出所有多边形最后都连接在一起的线。我该如何强制一个已经连接的多边形去寻找与自己尚未连接的多边形建立连接?
这是我的代码:
library(dplyr)
library(sf)
library(ggplot2)
library(nngeo)
nc <- st_read(system.file("shape/nc.shp", package="sf"))
set.seed(2806)
nc_sample=dplyr::sample_n(nc,10)
ggplot() + geom_sf(data = nc_sample)
co=st_connect(nc_sample[1,], nc_sample %>% slice(st_distance(nc_sample[1,],nc_sample) %>%
units::drop_units() %>%
as.data.frame() %>%
mutate_if(is.numeric, ~na_if(., 0)) %>%
rowwise() %>% which.min()))
all_connexion=st_sf(co)
for(i in 2:length(nc_sample$AREA)){
co=st_connect(nc_sample[i,], nc_sample %>% slice(st_distance(nc_sample[i,],nc_sample) %>%
units::drop_units() %>%
as.data.frame() %>%
mutate_if(is.numeric, ~na_if(., 0)) %>%
rowwise() %>% which.min()))
all_connexion = rbind(all_connexion,co)
}
ggplot() +
geom_sf(data = all_connexion) +
geom_sf(data = nc_sample)