从agnes的树形图中添加非数字标签

时间:2014-01-02 23:02:25

标签: r cluster-analysis hierarchical-clustering

我正在尝试使用R中的集群例程agnes来执行UPGMA并生成树状图,其中节点标记有与研究站点名称(而不是数字)相等的文本值。我对R很糟糕,但得到了dist矩阵并进行了分析以便运行但是我无法进行绘图。我按照以下链接的说明,但收到错误消息。

How do I label the terminal nodes of a cut dendrogram?

#Simpson dissim 
library(betapart)
dist.sim<-beta.pair(Data, index.family="sor")
class(dist.sim)
betasim.sim<-dist.sim[["beta.sim"]]
class(betasim.sim)

UPGMA.orig<-agnes(betasim.sim)

labels = read.csv("labels.csv", header = T)
labels = labels$label
as.vector(labels)

local({
  newLab <<- function(n) {
    if(is.leaf(n)) {
      a <- attributes(n)
      i <<- i+1
      attr(n, "label") <- labels[i]
    }
    n
  }
  i <- 0
})

 UPGMA.orig<- dendrapply(dagn , newLab)
 labels(UPGMA.orig)

print.factor出错(c(NA_integer_,NA_integer_,NA_integer_,NA_integer_:   替换的长度为零

par(mfrow = c(1, 1))
dagn  <- as.dendrogram(as.hclust(UPGMA.orig))
dagn2 <- as.dendrogram(as.hclust(UPGMA.orig), hang = 0.2)
op <- par(mar = par("mar") + c(0,0,0,4)) # more space to the right
plot(dagn2, horiz = TRUE)
plot(dagn, horiz = TRUE, center = TRUE,
 nodePar = list(lab.cex = 0.6, lab.col = "black", pch = NA, labels=labels),
 main = paste("Sky Island Birds"), xlab = "Dissimilarity (ßsim)" ,  xlim=c(0.4, 0))
par(op)

0 个答案:

没有答案