【问题标题】:add a numeric variable from a data.frame object to an sf object containing multpolygons将 data.frame 对象中的数值变量添加到包含 multpolygons 的 sf 对象
【发布时间】:2021-03-30 12:16:35
【问题描述】:

我无法将数据框对象中的数值变量添加到包含多边形的 SF 对象。所以,我不能用 Ggplot2 创建我的地图。

任何帮助将不胜感激......

非常感谢

理查德

【问题讨论】:

  • 嗨,理查德,没有看到您正在使用的数据和代码,您的问题无法回答。请尝试发布minimal reproducible example
  • 请添加您的代码。

标签: r gis sf


【解决方案1】:

{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

【讨论】:

    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2015-10-10
    相关资源
    最近更新 更多