簡體   English   中英

可愛樹和簇分支之間的分歧

[英]Divergence between cutree and cluster branches

我有一個數據集,其中包含一些屬於 4 種不同基因型的小鼠的每日飲水量。 我正在嘗試編寫一個腳本,以便使用分層聚類分析根據它們的飲水模式對這些動物進行分類,然后創建一個縱向圖,繪制幾天內每個聚類的平均飲水量。

為此,我首先創建分層集群集群,如下所示:

library("dendextend")
library("ggplot2")
library("reshape2")
data=read.csv("data.csv", header=T, row.names=1)
trimmed=data[, -ncol(data)]

 hc <- as.dendrogram(hclust(dist(trimmed)))
    labels.drk=data[,ncol(data)]
    groups.drk=labels.drk[order.dendrogram(hc)]
    genotypes=as.character(unique(data[,ncol(data)]))
    k=4
    cluster_cols=rainbow(k)

    hc <- hc %>%
      color_branches(k = k, col=cluster_cols) %>%

      set("branches_lwd", 1) %>%

      set("leaves_pch", rep(c(21, 19), length(genotypes))[groups.drk]) %>% 
      set("leaves_col", palette()[groups.drk]) 

    plot(hc, main="Total animals" ,horiz=T)

    legend("topleft", legend=genotypes,
           col=palette(), pch = rep(c(21,19), length(genotypes)),
           title="Genotypes")

    legend("bottomleft", legend=1:k,
           col=cluster_cols, lty = 1, lwd = 2,
           title="Drinking group")

然后我使用 cuttree 函數來評估哪些動物屬於哪個組,以便繪制每組的平均水攝入量。

groups<-cutree(hc, k=k, order_clusters_as_data = FALSE))
x<-cbind(data,groups)
intake_avg=aggregate(data[, -ncol(data)], list(x$groups), mean, header=T)

df <- melt(intake_avg, id.vars = "Group.1")
ggplot(df, aes(variable, value, group=factor(Group.1))) + geom_line(aes(color=factor(Group.1)))

問題是我從層次聚類中得到的數字與由 cuttree 函數分配的數字不一致。 當集群從 1 到 4 對分支進行自下而上的排序時,cutree 函數使用了一些我不熟悉的其他排序參數。 因此,聚類圖中和攝入量圖中的標簽不匹配。

我是編碼的初學者,所以可以肯定我使用了太多多余的行和循環,所以我的代碼可以縮短,但是如果你們能幫我解決這個特定的問題,我會很高興。

數據集

簇:簇

攝入量圖攝入量圖

要在樹狀圖中繪制相同的簇,您需要使用:

groups <- dendextend:::cutree(hc, k=k, order_clusters_as_data = FALSE)
idx <- match(rownames(data), names(groups))
x <- cbind(data,groups[idx])
intake_avg <- aggregate(data[, -ncol(data)], list(x$groups), mean, header=T)

df <- melt(intake_avg, id.vars = "Group.1")
ggplot(df, aes(variable, value, group=factor(Group.1))) + 
 geom_line(aes(color=factor(Group.1)), lwd=1)

這是攝入量圖:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM