我有以下数据集:
id x y age
1 1745353 930284.1 30
2 1745317 930343.4 23
3 1745201 930433.9 10
4 1745351 930309.4 5
5 1745342 930335.2 2
6 1746619 929969.7 66
7 1746465 929827.1 7
8 1746731 928779.5 55
9 1746629 929902.6 26
10 1745938 928923.2 22
我希望能基于从给定的(x,y)计算出的距离找到每个id的5个最近邻居。最终输出应如下所示:
id n_id dist age age_n_id
1 2 2 30 23
1 5 1.5 30 2
1 3 5 30 10
1 7 3 30 7
1 8 3 30 55
2 1 6 23 30
2 10 1 23 22
2 6 2 23 66
2 7 6 23 7
2 8 9 23 55
3 2 1 10 23
3 1 2 10 30
3 4 1.2 10 5
3 6 1.6 10 66
3 9 2.3 10 26
................................
................................
10 2 1.9 22 23
10 6 2.3 22 66
10 9 2.1 22 26
10 1 2.5 22 30
10 5 1.6 22 2
n_id是邻居的id,dist是id和n_id之间的直线距离,age是id的年龄,age_n_id是n_id的年龄。同时,最大距离为10公里。如果在10公里范围内的邻居少于5个,例如只有3个邻居,则相应的id只会重复三次。
我在r编程方面比较新,任何帮助都将不胜感激。
dist
中的值是实数吗?我计算了ID 1
和ID 2
之间的距离,结果为69.37
。另外,坐标的长度单位是什么? - www