【发布时间】:2020-04-10 14:13:35
【问题描述】:
我正在尝试计算 shapefile 中的密度,但我很确定我做错了。我们的想法是根据密度确定哪些地理区域的销售额最高。
Here is a link to the file that I use (testdata.shp)
library(sf)
sample <- st_read("testdata.shp")
sample$area <- st_area(sample$geometry)
density_calc <-sample %>% st_buffer(0) %>% group_by(areas) %>% summarise(`Sales (density)` = sum(sales)/sum(area))
以下是 shapefile 的详细信息:
Geometry set for 2106 features
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -120.0065 ymin: 35.00184 xmax: -114.0396 ymax: 42.00221
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
我想我的问题是,我真的不知道什么是对什么错,所以我不知道我是否做对了。
对不起,如果这不是最广泛的问题,我只是不太记得我的高中几何!
【问题讨论】:
-
这段代码没有任何问题,除了你不需要零缓冲区并且你不需要 group_by/summarize 因为
areas在你的数据中是唯一的,所以你最终会所有大小为 1 的组。sample$density = sample$sales/sample$area也可以正常工作。