从 R 中的向量数据帧创建一个 sfc_GEOMETRY 对象

Create a sfc_GEOMETRY object from a data frame of vectors in R

我正致力于在 R 中创建自定义美国地图。我想更改一个州的几何图形以适应我的需要。作为基础,我使用 tilegramsR 包中的 FiveThirtyEight 选举地图。下面是我用来获取所有状态的代码。

library(tilegramsR)
library(dplyr)
States <- sf_FiveThirtyEightElectoralCollege.states

这给出了一个数据框,其中第一列是一个州,第二列是边界的几何形状(它看起来像每个州的一堆连接的六边形)。

我想替换其中一个州的几何图形。我已经有了坐标,但是,它目前存储在数据框中。具体坐标比较长,数据结构如下。

exCoords <- data.frame(V1 = c(1,1,2,2,1),
                       V2 = c(1,2,2,1,1))

第一行是第一组坐标,第二行是第二组(坐标1(x,y) = exCoords[1, 1], exCoords[1, 2], 坐标 2 (x,y) = exCoords[2, 1], exCoords[2, 2]) 等。 .

我想要做的是将数据框坐标转换为几何对象,就像我正在使用的状态框一样,并将其中一个状态坐标替换为我创建的状态坐标。我将如何处理当前存储为数据框的新坐标?

geometry 列的每个元素只是一个包含在另一个列表中的列表中的两列矩阵。因此,您可以直接编辑它们...

States$geometry[n][[1]][[1]] <- as.matrix(exCoords)

其中 n 是您要替换的 States 的行号。所有 sfc_geometry 属性都被保留。