我正在R中使用shapefile,一个是point.shp,另一个是polygon.shp。 现在,我想将点与多边形相交,这意味着多边形中的所有值都应附加到 point.shp 的表中。
我在sp包中尝试了overlay()和spRbind,但没有达到我预期的效果。
有人可以给我提示吗?
最佳答案
有了新的sf现在打包起来既快速又简单:
library(sf)
out <- st_intersection(points, poly)
其他选项
如果您不希望将多边形中的所有字段添加到点要素中,只需在之前对多边形要素调用 dplyr::select()
即可:
library(magrittr)
library(dplyr)
library(sf)
poly %>%
select(column-name1, column-name2, etc.) -> poly
out <- st_intersection(points, poly)
如果遇到问题,请确保您的多边形有效:
st_is_valid(poly)
如果您在此处看到一些 FALSE
输出,请尝试使其有效:
poly <- st_make_valid(poly)
请注意,这些“有效”函数取决于使用 liblwgeom
编译的 sf
安装。
关于r - R 中的交点和多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647744/