如何使用空行数据帧的每行应用?
我必须找到sp2中sp1的每个项目最接近的匹配,但仍然在同一条街道上(这意味着它可能不是地理上绝对最接近的项目)。
没有平面投影的方便解决方案是dist2line
我必须从同一条街道上的sp2项目中预选,所以我需要一些类型的东西
sp1$x <- dist2line(sp1, sp2[sp2$street == sp1$street,]) [4]
特别是如果检查所有sp2,函数将减慢。这个函数将返回一个4列的矩阵,只有子集sp2[sp2$street == sp1$street,]
的索引,而不是整个sp2 - 这是另一个陷阱 - 如何从子集sp2中获取值?
dist2line
需要来自两个数据集的空间坐标,因此无法将其转换为数据表(在dt中,此操作很容易)。我想避免使用逐步记录的迭代方法。有任何想法吗?
很抱歉没有附上任何可重复的样本 - dput()
无法有效地处理空间线数据框,而sp2是折线(而不是它返回的实际数据<S4 object of class structure("Lines", package = "sp")>
)和dist2line
要求线。