1

我有一个像这样的数据框:

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中时,我在理解输出时遇到了问题。我可以获得重新排序的树状图,但不确定下面 1) 和 2) 之间的区别是什么意思。一个已Rowv指定,另一个已reorderfun随机指定w!?我想我不完全理解这些reorderfun论点,特别是 weight (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))
4

0 回答 0