【发布时间】:2020-01-22 09:18:10
【问题描述】:
我在包含 X 和 Y 坐标的数据框中有 n 个数据点。我想取任意一点(以下称为第一个点),找到它的最近邻(即第二个点),然后找到除第一个点之外的距离第二个点(即第三个点)最近的点,然后找到距离除第一个和第二个点之外的第三个点最近的邻居,依此类推。我想在数据框中添加两列:一列包含数字(第一个点为 1,第二个点为 2,依此类推),另一列包含距离值,这样每个点的值就是到通过上述规则确定的下一个最近点的距离。我想知道是否有一个包或一组最小的 R 代码可以做到这一点。
示例数据:
structure(list(sanimusho = 1:10, Latitude = c(41.84752, 41.84665, 41.84478, 41.84365, 41.84683, 41.84856, 41.84653, 41.8452, 41.8457, 41.84446), Longitude = c(44.98355, 44.98944, 45.04445, 45.04428, 45.04112, 45.03329, 45.03202, 45.02737, 45.01077, 45.01041), Altitude = c(1435L, 1455L, 1545L, 1509L, 1588L, 1668L, 1574L, 1556L, 1479L, 1446L), fartobi = c(18.4, 19.8, 18.6, 18.4, 18.2, 18.2, 18.4, 19.4, 18.4, 18.2), X = c(498634.403, 499123.349, 503690.176, 503676.128, 503413.615, 502763.526, 502658.183, 502272.204, 500894.097, 500864.228), Y = c(4632846.902, 4632750.232, 4632543.515, 4632418.048, 4632770.98, 4632962.773, 4632737.351, 4632589.553, 4632644.76, 4632507.084)), class = "data.frame", row.names = c(NA, -10L))
【问题讨论】:
-
你能提供一些示例数据吗?
-
sanimusho,纬度,经度,海拔,fartobi,x,y 1,41.84752,44.98355,1435,18.4,498634.403403,4632846.902,9022,9022,844444444.8444.8444.8444.844.844.844.844.844.844.,,, ,45.04445,1545,18.6,503690.176,4632543.515 4,41.84365,45.04428,1509,18.4,503676.128,4632418.048 5,41.84683,45.04112,1588,18.2,503413.615,4632770.98 6,41.84856,45.03329,1668,18.2,502763.526,4632962.773 7 ,41.84653,45.03202,1574,18.4,502658.183,4632737.351 8,41.8452,45.02737,1556,19.4,502272.204,4632589.553 9,41.8457,45.01077,1479,18.4,500894.097,4632644.76 10,41.84446,45.01041,1446,18.2,500864.228, 4632507.084
-
@Lexo 这不是您应该提供数据的方式。在您的数据样本上使用
dput以生成复制数据所需的代码
标签: r