R输入矩阵的层次聚类问题

时间:2018-04-08 19:16:49

标签: r matrix hierarchical-clustering

我是R的初学者。我有11个顶点的图形。我试图用单连接制作树形图,但我得到一些奇怪的错误。这是我自己手动创建的距离矩阵。它的矩阵为11x11。

mat<-matrix(c(0,1,2,3,3,1,2,2,2,3,2,
          1,0,1,2,2,2,1,2,3,2,3,
          2,1,0,1,1,2,2,1,2,3,3,
          3,2,1,0,1,3,3,2,3,4,4,
          3,2,1,1,0,3,3,2,3,4,4,
          1,2,2,3,3,0,1,1,1,2,1,
          2,1,2,3,3,1,0,1,2,1,2,
          2,2,1,2,2,1,1,0,1,2,2,
          2,3,2,3,3,1,2,1,0,1,1,
          3,2,3,4,4,2,1,2,1,0,1,
          2,3,3,4,4,1,2,2,1,1,0),nrow=11,byrow=TRUE)
rownames(mat)<-c('v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9', 'v10', 'v11')
colnames(mat)<-c('v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9', 'v10', 'v11')

当我尝试启动我的hclust功能时:

singleLinkage <- hclust(mat,method="single")

如果(is.na(n)|| n&gt; 65536L)停止(“大小不能超过NA也不超过65536”),我得到错误错误:   缺少需要TRUE / FALSE的值。我认为错误在矩阵中。在hclust函数中应该是由dist函数创建的一些矩阵,但我根本不理解这个概念。请问任何人可以帮助哪里出错?非常感谢你。 :)

1 个答案:

答案 0 :(得分:2)

你猜对了。您需要传递hclust一个dist对象。你可以通过计算dist得到它,或者像你的情况一样,将矩阵强制转换为dist(因为它已经有了它的属性)。

hclust(as.dist(mat), method = "single")