【发布时间】:2018-01-24 03:53:48
【问题描述】:
我使用多个变量分析多个观察结果的某些数据,并通过热图将它们可视化,通过聚类和树状图构建执行行和列重新排列。我使用 R 的 gplots 库中的 heatmap.2() 函数。然而,某些观察行(通常是最后几行)将从分析中排除,因为它们是一些部分总和,但它们需要包含在树状图中的位置。那就是我需要在不考虑这些行进行缩放等的情况下对数据执行聚类,但接下来将它们包含在具有保守配色方案的最后位置。这是数据和操作的最小示例
# load library and create some data
library(gplots)
my_palette <- colorRampPalette(c("red", "yellow", "green"))(n = 299)
df<-read.csv(text="experiment,var1,var2
1,5,4
2,3,2
3,2.3,1
4,3,4
sum1,3,5
sum2,4,5")
# arrange data so that it has the structure of datamatrix with original names
rname<-df[,1]
df<-df[,-1]
rownames(df)<-rname
df.matr<-data.matrix(df)
接下来,我仅通过观察(行)和自定义调色板构建具有聚类的树状图。缩放是在列上执行的。
heatmap.2(df.matr,cellnote=df.matr,scale="column",col=my_palette,trace="none",density.info="none",notecol="black",dendrogram="row",Colv="NA")
可以看出,最后一行sum1和sum2参与了聚类重排;据说它们还用于计算数据缩放的平均值和偏差。由于某些原因,这可能是不可取的(这些行可能已经是部分总和,或者来自其他总体);但是,它们需要包含在最终的树状图中并在相同的基础上进行可视化。我可以在分析之前删除这些行,但是如何将它们重新插入原位?或者也许包本身有一些内置的解决方案?
【问题讨论】:
标签: r cluster-analysis heatmap dendrogram