我正在使用rpart生成一个分类树。我需要每个节点的深度,以便识别更隔离的节点(离父节点更远)和离父节点更近的节点。有没有人知道我怎样才能得到这些信息?提前感谢!
发布于 2016-04-01 21:12:06
我不确定你想要的深度是父母的数量还是孩子的数量。使用partykit包中的depth()方法可能会有所帮助,该方法计算子对象的级别数。在从rpart强制转换为party,然后使用nodeapply()时,可以使用此选项
## packages
library("rpart")
library("partykit")
## rpart tree
rp <- rpart(Species ~ ., data = iris)
## coercion to party
pr <- as.party(rp)
plot(pr)
## query depth of each node
nodeapply(pr, ids = nodeids(pr), depth)
## $`1`
## [1] 2
##
## $`2`
## [1] 0
##
## $`3`
## [1] 1
##
## $`4`
## [1] 0
##
## $`5`
## [1] 0您可以查看depth.party()的源代码,以了解它是如何在树中递归循环的。类似的代码可以用来找出父代的层数。
https://stackoverflow.com/questions/36171950
复制相似问题