我正在使用rpart开发分类树。我需要每个节点的深度,以便识别更加孤立(距离父节点更远)的节点和更接近父节点的节点。有谁知道如何获得这些信息?提前致谢!
答案 0 :(得分:0)
我不确定你想要的深度是父母的数量还是孩子的数量。使用depth()
包中的partykit
方法可能有助于计算子级数。您可以在从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()
的源代码,了解这种循环如何通过树递归。可以使用类似的代码来查找父母的层数。