您可以通过数据框中的值组合 SpatialPolygonsDataFrame 中的多边形吗?
Can you combine polygons within a SpatialPolygonsDataFrame by values in the dataframe?
我正在尝试使用 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 中的任何原始数据。但我希望它保留一个带有 "Bigsmoke" 列的 SpatialPolygonsDataFrame。
在代码的下一部分中,我将把它与澳大利亚统计局的 LGA 数据结合起来(基本上这样我就可以将 LGA 分成区域部分和主要城市部分 - 在那里它们被分开)。所以我想我需要保留最少量的数据。
有什么好的方法吗?有没有另一个 post 我没能找到的可以给我指路的?
我会这样做:
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
避免写入插槽“@”,就像您在此处所做的那样:left_join(RA_2016@data, MajorCity)
这可能会改变记录的顺序和数量,从而使属性不再与几何形状匹配
我正在尝试使用 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 中的任何原始数据。但我希望它保留一个带有 "Bigsmoke" 列的 SpatialPolygonsDataFrame。
在代码的下一部分中,我将把它与澳大利亚统计局的 LGA 数据结合起来(基本上这样我就可以将 LGA 分成区域部分和主要城市部分 - 在那里它们被分开)。所以我想我需要保留最少量的数据。
有什么好的方法吗?有没有另一个 post 我没能找到的可以给我指路的?
我会这样做:
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
避免写入插槽“@”,就像您在此处所做的那样:left_join(RA_2016@data, MajorCity)
这可能会改变记录的顺序和数量,从而使属性不再与几何形状匹配