我有一个由
制作的分类树library(party)
model.cart <- ctree(qtcf ~ ., data=training)
在我的情况下,我想在我的训练集(训练)和测试集(测试)中创建一个新变量,指示特定观察的终端节点编号。
显然,它可以像这样手动制作:
training$ctreegroup[((training$sex == 'female') & (training$rs12143842.y>0)
& (training$rs735951>0))] <- 'node14'
testing$ctreegroup[((testing$sex == 'female') & (testing$rs12143842.y>0) &
(testing$rs735951>0))] <- 'node14'
但是,有没有一种智能的方法可以自动执行此操作而无需手动编程所有决策?
答案 0 :(得分:0)
根据shuckle的建议
training$node_placement <- where(model.cart)
为训练集工作。不幸的是,它不适用于测试集,如
testing$node_placement <- where(model.cart)
产生了错误
Error in `$<-.data.frame`(`*tmp*`, ctreegroup, value = c(22L, 22L, 23L, :
replacement has 4440 rows, data has 1478
所以函数不重新检查数据