我遇到了一个看似简单的问题。我想手动更正所选点的地理编码结果。假设“Dare”的质心需要更新:
library(sf)
nc <- st_centroid(st_read(system.file("shape/nc.shp", package = "sf")))
st_coordinates(filter(nc, NAME== "Dare"))
如何更改的原始值
X Y
1 -75.80982 35.73548
变成不同的东西?
我以为会是
st_coordinates(filter(nc, NAME== "Dare")) <- matrix(c(-73, 33), nrow = 1)
或者
nc %>%
mutate(geometry = ifelse(place_full_name == "Dare",
yes = st_set_geometry(c(-73, 33)),
no = geometry))
但两种解决方案都产生了错误。
2条答案
按热度按时间gopyfrb31#
使用
st_geometry<-
。用
st_geometry<-
* 替换 * 选定的几何图形。替换值需要是简单的特征几何图形,因此为st_sfc(st_point(...
。注:
在Twitter discussion shared by @radek中,
sf
包的作者@Edzer Pebesma注解说原始几何体的边界框没有更新。原始定界框:
用原始边界框外的坐标替换选定的几何图形,此处
x
小于xmin
,y
大于ymax
:对象的
bbox
未更新:vx6bjr1n2#
可以像@Henrik的answer那样使用
st_geometry<-
,但要替换整个几何体,以便也更新边界框。请查看对象的
bbox
现在已更新: