我正在使用partykit
R 包构建一棵树,我想知道是否有一种简单有效的方法来确定每个内部节点的深度数。例如,根节点的深度为 0,前两个子节点的深度为 1,下一个子节点的深度为 2,依此类推。这最终将用于计算变量的最小深度。下面是一个非常基本的示例(取自vignette("constparty", package="partykit")
):
library("partykit")
library("rpart")
data("Titanic", package = "datasets")
ttnc<-as.data.frame(Titanic)
ttnc <- ttnc[rep(1:nrow(ttnc), ttnc$Freq), 1:4]
names(ttnc)[2] <- "Gender"
rp <- rpart(Survived ~ ., data = ttnc)
ttncTree<-as.party(rp)
plot(ttncTree)
#This is one of my many attempts which does NOT work
internalNodes<-nodeids(ttncTree)[-nodeids(ttncTree, terminal = TRUE)]
depth(ttncTree)-unlist(nodeapply(ttncTree, ids=internalNodes, FUN=function(n){depth(n)}))
在这个例子中,我想输出类似于:
nodeid = 1 2 4 7
depth = 0 1 2 1
如果我的问题太具体,我深表歉意。