如何将rpart对象转换为树形图? (as.dendrogram.rpart?))

时间:2017-07-11 09:35:17

标签: r dendrogram rpart

我想要一种方法将rpart树对象转换为嵌套的列表列表(树形图)。理想情况下,每个节点中的属性将包括rpart对象中的信息(杂质,变量和用于拆分的规则,汇集到该节点的观察数量等)。

查看rpart $ frame对象,我不清楚如何阅读它。有什么建议吗?

微小的例子:

library(rpart)
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
fit$frame
      var  n wt dev yval complexity ncompete nsurrogate    yval2.V1    yval2.V2    yval2.V3    yval2.V4    yval2.V5 yval2.nodeprob
1   Start 81 81  17    1 0.17647059        2          1  1.00000000 64.00000000 17.00000000  0.79012346  0.20987654     1.00000000
2   Start 62 62   6    1 0.01960784        2          2  1.00000000 56.00000000  6.00000000  0.90322581  0.09677419     0.76543210
4  <leaf> 29 29   0    1 0.01000000        0          0  1.00000000 29.00000000  0.00000000  1.00000000  0.00000000     0.35802469
5     Age 33 33   6    1 0.01960784        2          2  1.00000000 27.00000000  6.00000000  0.81818182  0.18181818     0.40740741
10 <leaf> 12 12   0    1 0.01000000        0          0  1.00000000 12.00000000  0.00000000  1.00000000  0.00000000     0.14814815
11    Age 21 21   6    1 0.01960784        2          0  1.00000000 15.00000000  6.00000000  0.71428571  0.28571429     0.25925926
22 <leaf> 14 14   2    1 0.01000000        0          0  1.00000000 12.00000000  2.00000000  0.85714286  0.14285714     0.17283951
23 <leaf>  7  7   3    2 0.01000000        0          0  2.00000000  3.00000000  4.00000000  0.42857143  0.57142857     0.08641975
3  <leaf> 19 19   8    2 0.01000000        0          0  2.00000000  8.00000000 11.00000000  0.42105263  0.57894737     0.23456790

(函数ggdendro ::: dendro_data.rpart可能会有所帮助,但是我无法真正解决问题)

1 个答案:

答案 0 :(得分:1)

这是一个带有函数rpart2dendro的GitHub要点,用于将类“rpart”的对象转换为树形图。请注意,分支在输出对象中没有加权,但是递归修改树形图的“高度”属性以获得比例分支长度应该相当简单。 Kyphosis示例在底部提供。