我有一个数据集,有6个分类变量,级别从5到28不等。我已经从带有17个终端节点的ctree() (party包)获得了一个输出。我跟踪输入从ctree() - How to get the list of splitting conditions for each terminal node?‘the,以达到我想要的输出。
但是,我得到了运行代码的以下错误帖子:
Error in data.frame(ResulTable, Means, Counts) :
arguments imply differing number of rows: 17, 2
我试着增加了以下几行:
ResulTable <- rbind(ResulTable, cbind(Node = Node, Path = Path2))
ResulTable$Node <- rownames(ResulTable)
melt(ResulTable)
但到目前为止还没有成功。对哪里出错有什么建议吗?
发布于 2015-05-02 00:17:47
我建议使用新的partykit
实现的ctree()
,而不是旧的party
包,然后您可以使用函数.list.rules.party()
。这还没有正式导出,但可以利用它提取所需的信息。
library("partykit")
airq <- subset(airquality, !is.na(Ozone))
ct <- ctree(Ozone ~ ., data = airq)
partykit:::.list.rules.party(ct)
## 3 5
## "Temp <= 82 & Wind <= 6.9" "Temp <= 82 & Wind > 6.9 & Temp <= 77"
## 6 8
## "Temp <= 82 & Wind > 6.9 & Temp > 77" "Temp > 82 & Wind <= 10.3"
## 9
## "Temp > 82 & Wind > 10.3"
https://stackoverflow.com/questions/29999626
复制