您能否通过数据框中的值组合SpatialPolygonsDataFrame中的多边形?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了您能否通过数据框中的值组合SpatialPolygonsDataFrame中的多边形?相关的知识,希望对你有一定的参考价值。

我正在尝试使用Australian Bureau of Statistics shapefile for Remoteness 2016-下载ESRI shapefile。

我想合并不是澳大利亚主要城市的所有多边形。

library(rgdal)
library(dplyr)
RA_2016 <- readOGR(".", layer = "RA_2016_AUST")
###to simplify only using NSW
RA_2016 <- RA_2016[RA_2016$STE_CODE16 == 1, ]

数据框有5列。一旦创建了是否是大城市的变量,就不需要任何这些数据。

MajorCity <- data.frame(10:14, c("Major City", "Regional", "Regional", "Regional", "Regional"))
names(MajorCity) <- c("RA_CODE16", "Bigsmoke")

RA_2016@data <- left_join(RA_2016@data, MajorCity)

我现在要做的是合并具有MajorCity ==“ Regional”的多边形。我不需要RA_2016的任何原始数据。但我希望它保持SpatialPolygonsDataFrame与“ Bigsmoke”列。

在代码的下一部分中,我将其与澳大利亚统计局的LGA数据结合起来(基本上是这样,我可以将LGA分为区域部分和主要城市部分-在这些部分)。因此,我认为我需要保留少量数据。

是否有这样做的好方法?我还有没有找到的其他帖子会告诉我方法吗?

答案

这是我的处理方式:

setwd("C:/Users/rhijm/Downloads")
library(raster)

RA_2016 <- shapefile("RA_2016_AUST.shp")
RA_2016 <- RA_2016[RA_2016$STE_CODE16 == 1, ]

MajorCity <- data.frame(RA_CODE16=10:14, Bigsmoke=c("Major City", "Regional", "Regional", "Regional", "Regional"))

m <- merge(RA_2016, MajorCity)
x <- aggregate(m, "Bigsmoke")
x
#class       : SpatialPolygonsDataFrame 
#features    : 2 
#extent      : 140.9993, 159.1092, -37.50508, -28.15702  (xmin, xmax, ymin, ymax)
#crs         : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 
#variables   : 1
#names       :   Bigsmoke 
#min values  : Major City 
#max values  :   Regional 

以上是关于您能否通过数据框中的值组合SpatialPolygonsDataFrame中的多边形?的主要内容,如果未能解决你的问题,请参考以下文章

保留数据框中的行,对于某些列的值的所有组合,在另一列中包含相同的元素

将组合框日期与datadable框进行比较

如何在组合框中返回未绑定列的值

使用组合框中的选择填充文本框中的计算字段

每次使用 access vba 在第一个组合中选择值时,清除链接组合框中的值

使用组合框中的值编辑从列表框中选择的记录中的字段