我试图从ctree的输出中提取树信息。我尝试了“BinaryTree”类信息,但没有成功。任何输入表示赞赏。
谢谢你
最佳答案
ctree对象至少在顶部是S4对象,并且树信息在“tree”插槽中。 “树槽可以使用@运算符进行访问。如果您在help(ctree)页面中使用第一个示例,则可以通过以下方式获得图形显示:
plot(airct)
然后可以通过遍历列表操作来查找树的分支。树的“叶子”是具有“terminal” == TRUE的节点的后代:
> airct@tree$right$terminal
[1] FALSE
> airct@tree$left$terminal
[1] FALSE
> airct@tree$right$right$terminal
[1] TRUE
> airct@tree$right$left$terminal
[1] TRUE
> airct@tree$left$left$terminal
[1] TRUE
> airct@tree$left$right$terminal
[1] FALSE
叶子上方节点上的信息也可以恢复:
> airct@tree$left$right
4) Temp <= 77; criterion = 0.997, statistic = 11.599
5)* weights = 48
4) Temp > 77
6)* weights = 21
如果您知道节点号,这就是
nodes
函数将恢复的信息:> nodes(airct,4)
[[1]]
4) Temp <= 77; criterion = 0.997, statistic = 11.599
5)* weights = 48
4) Temp > 77
6)* weights = 21
关于r - 如何从ctree函数中提取树结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8675664/