我有一个数据集,其中包含一棵与下面的树类似的树
son father
1 1 NA
2 2 1
3 3 1
4 4 2
5 5 NA
6 6 2
7 7 4
8 8 5
9 9 4
构建了一个函数,允许我搜索节点(son)的整个层次结构
getTree = function(sons){
if( length(sons) > 0 ){
sons = subset(df, father %in% sons)[['son']]
sons = c(sons, getTree( sons ))
}
return(sons)
}
subset(df, son %in% getTree(8))
这让我回过神来
son father
4 4 2
6 6 2
7 7 4
9 9 4
但是,除了层次结构之外,还需要知道节点(子节点)位于树的哪个级别。我如何改变,或创建另一个功能,使我能够实现这一点
提前谢谢
这里可能有一个递归选项供您使用
data.frame
跟踪节点级别,即其中,输入参数
sons
的级别始终从0
开始到函数f
,这样我不确定您的函数在树中到底要找到什么,但这里有一个Python示例,它可以找到表中最深的子节点以及深度。它在每次调用时使用递增的计数器来跟踪深度:
相关问题 更多 >
编程相关推荐