【问题标题】:How to hierarchically cluster a data matrix in R?如何在 R 中对数据矩阵进行分层聚类?
【发布时间】:2013-08-10 15:22:14
【问题描述】:

我正在尝试对从科学数据产生的数据矩阵进行聚类。我知道我希望如何完成聚类,但不确定如何在 R 中完成这一壮举。

数据如下所示:

            A1     A2     A3     B1     B2     B3     C1     C2     C3
sample1      1      9     10      2      1     29      2      5     44
sample2      8      1     82      2      8      2      8      2     28
sample3      9      9     19      2      8      1      7      2     27

请考虑 A1、A2、A3 是单个处理的三个重复,B 和 C 也是如此。Sample1 是不同的测试变量。所以,我想对这个矩阵进行层次聚类,以查看列之间的总体差异,特别是我将制作一个树状图(树)来观察列的相关性。

有谁知道如何适当地聚集这样的东西?我试过这样做:

raw.data <- read.delim("test.txt",header=FALSE,stringsAsFactors=FALSE)
dist.mat<-vegdist(raw.data,method="jaccard")
clust.res<-hclust(dist.mat)
plot(clust.res)

...但是,这会导致每个样本变量都有一个分支,而不是每一列。感谢您的任何建议!

【问题讨论】:

  • 在计算距离之前尝试vegdist(t(raw.data), method="jaccard") 转置矩阵。 Jaccard 不是只针对二进制数据吗?
  • 太棒了,成功了!在那个问题之后,有没有人知道如何做同样的事情,但使用 Jensen-Shannon 方法而不是 Jaccard? Jaccard 方法给出了意想不到的结果,可能是由于 Jaccard 的数据不正确!

标签: r hierarchical-clustering dendrogram


【解决方案1】:

只需转置您的数据集:

raw.data <- t(raw.data)
require(vegan)
dist.mat<-vegdist(raw.data,method="jaccard")
clust.res<-hclust(dist.mat)
plot(clust.res)

【讨论】:

猜你喜欢
  • 2012-10-06
  • 2015-10-17
  • 1970-01-01
  • 2017-04-23
  • 2020-01-23
  • 1970-01-01
  • 2018-04-10
  • 2016-06-03
  • 1970-01-01
相关资源
最近更新 更多