我有一个像这样的数据框:
set.seed(123)
test_df<-data.frame(Sample=c(LETTERS),var1=rnorm(26),var2=rnorm(26),color=rep(sample(c("High","low"),26,replace=TRUE)))
我可以使用library(dendextend)
生成树形图:
d<-dist(scale(test_df[,2:3]))
clust<-hclust(d)%>%as.dendrogram()
我想使用此树形图clust
在另一个数据帧中对样本进行排序。此数据框具有相同的样本,如下所示:
test_df_extend<-data.frame(Sample=c(LETTERS),var1=rnorm(26),var2=rnorm(26),var3=rnorm(26),var4=rnorm(26),var5=rnorm(26),var6=rnorm(26),color=rep(c("High","low"),13))
我可以使用以下代码生成test_df_extend
的热图:
row.names(test_df_extend)<-test_df_extend$Sample
aheatmap(as.matrix(test_df_extend[,2:7]), color = "-RdBu:50", scale = "col", breaks = 0,Colv = NA,annColors = c("rainbow"),annRow=test_df_extend[,8])
然而,当我试图将树形图clust
传递到aheatmap时,我遇到了理解输出的问题。我可以得到一个重新排序的树形图,但不确定1)和2)之间的差异意味着什么。一个指定了Rowv
,另一个指定reorderfun
随机w
!?。我想我不完全理解reorderfun
参数特别是权重(w)参数及其与Rowv
的关系。任何人都可以帮我解释一下吗?谢谢!
1)
aheatmap(as.matrix(test_df_extend[,2:7]), color = "-RdBu:50", scale = "col", breaks = 0,Colv = NA,annColors = c("rainbow"),annRow=test_df_extend[,8],Rowv=clust)
2)
aheatmap(as.matrix(test_df_extend[,2:7]), color = "-RdBu:50", scale = "col", breaks = 0,Colv = NA,annColors = c("rainbow"),annRow=test_df_extend[,8], reorderfun=function(d,w) reorder(clust,1))