【发布时间】:2021-04-08 13:26:51
【问题描述】:
我有一个数据集,其中包含一棵类似于下面的树。
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
构建了一个函数,让我可以搜索节点(子)的整个层次结构
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
但是,除了层次结构之外,还需要知道该节点(子节点)在树的哪个级别。如何更改或创建另一个功能来实现此目的?
提前致谢!
【问题讨论】:
-
你只需要在你的函数中添加一个深度计数器参数,每次递归调用都会增加 1。
-
谢谢兰迪!我什至尝试过这个想法,我只是无法在函数调用中传递这个计数器。这怎么可能?
标签: python r tree binary-tree binary-search-tree