【问题标题】:How to cluster points (coordinates in a large data set如何对点进行聚类(大型数据集中的坐标
【发布时间】:2021-07-27 20:22:27
【问题描述】:

我有一个由 x 和 y 坐标(不一定是 lat、lng)组成的大型数据集。点数不按顺序排列。

df <- data.frame(point=1:7, x=c(3,7,2,23,5,67,16) , y=c(1,4,5,23,17,89,20))
>df
point x  y
1    3  1
2    7  4
3    2  5
4    23 23
5    5  17
6    67 89
7    16 20

有没有简单的方法来聚类点? (以半径为例)

例如:

第 1、2、3 点将在一起 - A 组

第 4、5、7 点将放在一起 - B 组

第 6 点将是 C 组

我曾尝试使用:%>% 排列值,然后 x-(x+1) (坐标差异) 但该方法并不完美,并且存在聚类未正确完成的情况。

任何建议或cmets! 谢谢

【问题讨论】:

    标签: r dataframe sorting coordinates


    【解决方案1】:

    你可以试试hclust cutree

    df$group <- cutree(hclust(dist(df[,2:3])), 3)
    df
    #  point  x  y group
    #1     1  3  1     1
    #2     2  7  4     1
    #3     3  2  5     1
    #4     4 23 23     2
    #5     5  5 17     1
    #6     6 67 89     3
    #7     7 16 20     2
    

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 2011-07-25
      • 2020-11-05
      • 2013-11-25
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      相关资源
      最近更新 更多