r - 将 data.frame 对象中的数值变量添加到包含 multpolygons 的 sf 对象
问题描述
我无法将数据框对象中的数值变量添加到包含多边形的 SF 对象。所以,我不能用 Ggplot2 创建我的地图。
任何帮助将不胜感激...
非常感谢
理查德
解决方案
{sf}
对象是修改后的数据帧。有一列,通常是最后一列,包含几何图形并且大部分是隐藏的+关于坐标参考系统等有一些特殊的调味料。但要点是一个数据框(与早期的{sp}
对象不同,但我离题了)。
因此,{sf}
数据帧很容易适用于数据连接技术,例如dplyr::left_join()
在下面的代码示例中使用。
library(sf)
library(dplyr)
library(ggplot2)
shape <- st_read(system.file("shape/nc.shp", package="sf")) # included with sf package
# just some semi - random data
# county with ID 2041 is Mecklenburg (as in Charlotte of Mecklenburg-Strelitz)
some_values <- data.frame(ID = c(2041),
value = c(1))
# left is usually safer than inner join as it does not filter rows
mod_shape <- shape %>%
left_join(some_values, by = c("CNTY_ID" = "ID"))
ggplot(data = mod_shape) +
geom_sf(aes(fill = value)) # viola! a polygon of North Carolina
推荐阅读
- c - 进程可以读取自己的标准输出/标准错误吗?
- migrate - django.db.utils.ProgrammingError:在我尝试将 Hstorefield 添加到我的模型后无法调整类型“dict”
- python - 如何从每个 URL 读取特定列并为多个 URL 重复它
- php - 当所有单独的主题颜色都定义为文件中的 PHP 变量时,如何使用 PHP 更改主题?
- javafx - JavaFX 拖放:当节点的边框与目标重叠时触发 Target 上的 DragEntered 事件
- javascript - 我怎样才能发出许多 AJAX 请求,然后在它们全部完成后调用一个函数?
- laravel - 有没有办法阻止 phpunit 中的 laravel 文件被 Trajon 病毒感染
- java - 如何使用 Leak Canary 找到我的内存泄漏?
- python - 如何在没有“闪烁”屏幕的情况下在 Python 中打印网格
- maven - 更改 vuejs 项目中 webpack 的 dist/ 文件夹的目的地(使用 frontend-maven-plugin)?