【发布时间】: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