我使用多个变量分析多个观测值的某些数据,并通过热图将其可视化,通过聚类和树状图构建执行行和列重新排列。我使用R&#39}的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
参与了聚类重排;据推测它们还用于计算数据缩放的平均值和偏差。由于某些原因,这可能是不合需要的(这些行可能已经是部分总和,或来自其他人口);然而,它们需要被包含在最终树形图中并在同一基础上可视化。我可以在分析之前删除这些行,但是如何将它们插回原位?或者包装本身可能有一些内置的解决方案?
答案 0 :(得分:1)
一种可能的解决方案是使用包 pheatmap 。我会删除行sum1
和sum2
,构建树形图,然后在热图上添加sum1
和sum2
作为注释:heatmap您也可以更改注释条的颜色,以匹配热图中使用的颜色。