【发布时间】:2015-10-27 12:59:13
【问题描述】:
我已尝试搜索此问题的答案,但找不到:
为了对我的数据集中的每个用户 ID(其中 385 个)执行特定的聚类,我计算了每个用户之间的欧几里得距离和地理距离向量(haversine distance)。然而,这导致了一个距离矩阵列表,我似乎无法弄清楚如何应用层次聚类。
例子
按用户 ID 拆分数据
user_id.split<-split(mydata$geodistancevector,mydata$userid)
计算每个分割的欧几里得距离
split.distances<-lapply(user_id.split,function(x) dist(x,method="euclidean"))
str(split.distances)
结果为 385 个列表,例如
>$ 1 :Class 'dist' atomic [1:496] 1788.4 24.7 922.2 277.8 873.7 ...
>.. ..- attr(*, "Size")= int 32
>.. ..- attr(*, "Diag")= logi FALSE
>.. ..- attr(*, "Upper")= logi FALSE
>.. ..- attr(*, "method")= chr "euclidean"
>``.. ..- attr(*, "call")= language dist(x = x, method = "euclidean")
>$ 2 :Class 'dist' atomic (0)
.. ..- attr(*, "Size")= int 0
.. ..- attr(*, "Diag")= logi FALSE
.. ..- attr(*, "Upper")= logi FALSE
.. ..- attr(*, "method")= chr "euclidean"
.. ..- attr(*, "call")= language dist(x = x, method = "euclidean")
等等……
如何在此距离列表中应用 hclust?我希望能够将其切割成 385(cuttree),并将其绑定回原始数据框。
谢谢!
【问题讨论】:
-
类似
lapply(lapply(split.distances, hclust), cutree)? -
感谢您的回复!你能再具体一点吗?我仍然无法运行代码(R 仍然很菜鸟)。如何将列表
$1到$385的每个单独距离元素上的 hclust 调用,并为每个不同的子集切割树?
标签: r matrix cluster-analysis hierarchical-clustering