使用r中的简单特征(SF)按属性有效地组合特征?

时间:2019-08-13 17:09:15

标签: r sf

我想通过属性值在shapefile中合并/合并/合并不同的特征。一个简单而有启发性的示例将是从包含具有州ID的县的地理数据集中重新创建州shapefile。

我开发了一个简单的循环代码(请参见下面的min可复制示例),以按每个级别的属性值进行操作,但这很慢。此外,我已经根深蒂固地避免了像这样的循环。在R中的简单功能中似乎没有更快的方法来完成此操作...

library(sf)
nc <- st_read(system.file("shape/nc.shp", package="sf"))

i <- 1
for (ch in levels(as.factor(nc$SID74))) {
  nc_temp <- nc %>% filter(SID74==ch) %>%
    st_union() %>% 
    st_sf()
  nc_temp$SID74 <- ch
  if (i==1) {
    nc_union = nc_temp
  } else {
    nc_union <- rbind(nc_union, nc_temp)
  }
  i <- i+1
}

上面的代码执行所需的任务,但是相对较慢。 [我知道我可以通过预分配内存来加快速度。]它们是执行此任务的更有效的单命令方式吗?

0 个答案:

没有答案