gpt4 book ai didi

r - 将强化的 data.frame 转换回 sf 对象

转载 作者:行者123 更新时间:2023-12-04 11:53:04 27 4
gpt4 key购买 nike

五十斯塔特包提供了一张很棒的美国 map ,下面有夏威夷和阿拉斯加的插图。对象五十_状态已经被强化以与 ggplot2 一起使用。但是,我想使用 geom_sf 将其绘制为 sf 对象。

作为一个更普遍的问题,将强化的 data.frame 转换回 sf 多边形的最佳方法是什么?

library(fiftystater)
fifty_states <– fifty_states

> head(fifty_states)
long lat order hole piece id group
1 -85.07007 31.98070 1 FALSE 1 alabama Alabama.1
2 -85.11515 31.90742 2 FALSE 1 alabama Alabama.1
3 -85.13557 31.85488 3 FALSE 1 alabama Alabama.1
4 -85.13156 31.78381 4 FALSE 1 alabama Alabama.1
5 -85.13017 31.77885 5 FALSE 1 alabama Alabama.1
6 -85.11529 31.73157 6 FALSE 1 alabama Alabama.1

注意这个问题 polygons from coordinates有点相似,但并不完全符合我的需要。

最佳答案

这会起作用:您首先转换为点 sf数据集使用 st_as_sf ,然后从每个状态/片段的点创建多边形。

sf_fifty <- sf::st_as_sf(fifty_states, coords = c("long", "lat")) %>% 
group_by(id, piece) %>%
summarize(do_union=FALSE) %>%
st_cast("POLYGON") %>%
ungroup()

plot(sf_fifty["id"])



(另见 https://github.com/r-spatial/sf/issues/321)

关于r - 将强化的 data.frame 转换回 sf 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49526198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com