2017-03-17 40 views
0

我想从我的rpart输出创建一个表(请参见下文)。R rpart创建终端节点表

表基本上应包含以下变量作为数据帧: - 终端节点号(下面4,10,22,23,3的例子) - 终端节点观察 - 终端节点目标CNT(数缺席或存在于每个节点中)

但是我想在更改或修剪树时自动执行此操作。

有什么建议吗?

library(rpart) 
rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis) 
rp 
+0

'$ RP已经frame'所有你想要的信息 – rawr

回答

0

rp$frame$var告诉你一个节点是否是一片叶子。有点模糊的是节点号是rp $ frame中的行名。所以,你想要的是

rownames(rp$frame)[rp$frame$var == "<leaf>"] 
[1] "4" "10" "22" "23" "3" 

如果你想数字而不是字符串看起来像数字,你可以使用

as.numeric(rownames(rp$frame)[rp$frame$var == "<leaf>"]) 
[1] 4 10 22 23 3