如何将 R 中的 data.tree 树截断到特定级别

问题描述 投票:0回答:1

我正在使用 data.tree 包在 R 中处理树结构。我想将树截断到特定级别,仅保留达到该级别的节点并删除所有更深的级别。例如,如果我有一棵有 4 个级别的树(根、子代、孙子、曾孙),我想将其截断为 2 级,只保留根、子代和孙子。

library(data.tree)

# Create a sample tree
tree <- Node$new("A")
tree$AddChild("B")
tree$AddChild("C")
tree$B$AddChild("D")
tree$B$AddChild("E")
tree$C$AddChild("F")
tree$C$AddChild("G")
tree$B$D$AddChild("H")

print(tree, "name")

我正在寻找一种可靠且有效的方法来截断树而不修改原始树结构。

救命!

r tree
1个回答
0
投票

使用

Clone
功能:

Clone(tree, \(x) length(x$path) <= 3) #root, children, and grandchildren.

  levelName
1 A        
2  ¦--B    
3  ¦   ¦--D
4  ¦   °--E
5  °--C    
6      ¦--F
7      °--G

Clone(tree, \(x) length(x$path) <= 2) #root, children

  levelName
1     A    
2      ¦--B
3      °--C
© www.soinside.com 2019 - 2024. All rights reserved.