gpt4 book ai didi

r - 如何使用 R 根据 child 的标签标记树状图中的每个节点

转载 作者:行者123 更新时间:2023-12-02 05:04:13 24 4
gpt4 key购买 nike

我在 R 中有一个树状图,其中每个叶子都有一个值。我喜欢通过求和其子节点的值来定义每个节点的值。我熟悉 dendrapply,但是我不知道如何在函数中访问节点的子节点以及如何递归地编写函数。

这是开始的代码:

library("stats")
library("fastcluster")
library("cluster")
D = rbind( + c(1,1,1,1,1),
+ c(1,2,1,1,1),
+ c(2,2,2,2,2),
+ c(3,4,5,6,9)

)
dnd = as.dendrogram(hclust.vector(D))

apply_text <<- function(n) {
if (!is.leaf(n)) {

attr(n, "edgetext") <- add the value of the branches
}
if (is.leaf(n)) {
attr(n, "edgetext") <- 1
}
n
}

tmp <- dendrapply(dnd, apply_text)
plot(tmp)

最佳答案

这可能是一个答案,但是,它正在重新实现 dendrapply。

apply_text <<- function(n){
if (!is.leaf(n)) {
cutversion = cut(n, h = attributes(n)$height)
leftLabel = attr(apply_text(cutversion$lower[[1]]), "edgetext")
rightLabel= attr(apply_text(cutversion$lower[[2]]), "edgetext")
attr(n, "edgetext") = as.numeric(as.character(leftLabel)) + as.numeric(as.character(rightLabel))
}
if(is.leaf(n)) {
attr(n,"edgetext") <- 1
}
n
}

tmp <- dendrapply(dnd, apply_text)

有人知道如何删除标签上的多边形吗?其他人似乎也要求删除它们。有什么进展吗?

关于r - 如何使用 R 根据 child 的标签标记树状图中的每个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com