st_intersection 返回一个包含 0 个观察值的数据框

st_intersection returning a dataframe with 0 observations

我有一个数据框显示格拉斯哥的公交车站位置,另一个数据框显示格拉斯哥的数据区多边形。我正在使用 sf 包并将两个数据框都设为空间。我想进行空间连接以创建一个新的数据框 (joined_ds) 以将每个公交车站位置与数据区多边形及其相关特征(剥夺分数)相匹配。我正在使用 st_intersection,它为我提供了一个包含所有正确列但 0 个观察值的新数据框。

joined_ds <- st_intersection(st_buffer(bus_stop_data,0), st_buffer(datazones,0))

两个数据集都使用适当的 CRS(EPSG:英国国家网格 27700)并且我知道点和多边形重叠,因为我已经使用 ggplot 成功地将它们绘制在地图上,所以不知道为什么我的数据框是显示 0 观测值。我也试过从头开始加载数据集,但没有成功。

欢迎任何建议,谢谢!

在此处查看 st_intersectionst_intersects 之间的区别:

由于您只对点与多边形相交感兴趣,因此您需要 st_intersects。如果我理解正确的话,你不需要使用 st_buffer,只需将 st_joinst_intersects 结合使用即可。类似于:

st_join(bus_stop_data, datazones, join = st_intersects)

请记住使用空间连接时可能出现的问题,例如当一个点与两个多边形相交时。