[英]R googleway with ABS census data
我打算使用googleway分析澳大利亚人口普查数据以生成热图。
我的方法是使用来自 googleway melbourne
准备好的数据,其中包含列SA2_NAME
并在使用rgdal (下面的代码)转换后将其与来自人口普查数据的 ESRI 形状文件连接起来。 问题在于,通过SA2_NAME
连接对于多段线并不是唯一的 - 一些 SA2 区域由多个“子”区域组成。 所以这似乎不是一个好方法。
更好的方法是将下面的 ESRI 形状数据sa2_shape
转换为具有melbourne
数据格式的折线。 这是怎么做的?
下面的代码生成一个“桥接”数据框,用于将来自googleway
melbourne
数据与以SA2_MAIN
作为关键字段的 ABS 数据连接SA2_MAIN
- 如上所述,这种“hack”方法的问题在于,折线不是SA2_NAME
唯一的
library(tidyverse)
library(googleway)
library(rgdal)
shape_path <- "abs_data/sa2_esri_shapefile"
shape_file <- "SA2_2016_AUST"
sa2_shape <- readOGR(shape_path, shape_file)
sa2_df <- data.frame(sa2_shape$SA2_MAIN, sa2_shape$SA2_NAME)
names(sa2_df) <- c("SA2_MAIN", "SA2_NAME")
sa2_df <- sa2_df %>% semi_join(melbourne, by = "SA2_NAME")
根据 SymbolixAU 注释 - 使用sf
加载数据,只要geometry
不是空列表就可以工作 - 请参阅下面的代码。
library(tidyverse)
library(googleway)
library(sf)
shape_path <- "abs_data/sa2_esri_shapefile"
shape_file <- "SA2_2016_AUST"
shape_file_path <- paste0(shape_path, "/", shape_file, '.shp')
sa2_shape <- sf::st_read(shape_file_path)
sa2_shape <- sa2_shape %>%
filter(STATE_NAME == "Victoria",
AREA_SQKM > 0)# This is important - otherwise google_map() will crash!
google_map() %>%
googleway::add_polygons(data = sa2_shape,
polyline = "geometry",
fill_colour = "SA2_NAME")
> sa2_shape %>% head()
Simple feature collection with 6 features and 6 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: 143.6849 ymin: -37.68153 xmax: 143.951 ymax: -37.46847
epsg (SRID): 4283
proj4string: +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
SA2_MAIN SA2_MAIN16 SA2_NAME STATE_CODE STATE_NAME AREA_SQKM geometry
1 201011001 201011001 Alfredton 2 Victoria 52.7111 MULTIPOLYGON (((143.7072 -3...
2 201011002 201011002 Ballarat 2 Victoria 12.3787 MULTIPOLYGON (((143.8675 -3...
3 201011003 201011003 Ballarat - North 2 Victoria 92.3577 MULTIPOLYGON (((143.853 -37...
4 201011004 201011004 Ballarat - South 2 Victoria 32.8541 MULTIPOLYGON (((143.8675 -3...
5 201011005 201011005 Buninyong 2 Victoria 51.5855 MULTIPOLYGON (((143.8533 -3...
6 201011006 201011006 Delacombe 2 Victoria 34.1608 MULTIPOLYGON (((143.7072 -3...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.