我有一个由
library(party)
model.cart <- ctree(qtcf ~ ., data=training)
就我而言,我想在我的训练集(training)和测试集(testing)中创建一个新变量,以指示特定观察的终端节点号。
显然,可以像这样手动进行:
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'
但是,有没有一种聪明的方法可以自动执行此操作,而无需手动编程所有决策?
最佳答案
正如的建议
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
所以功能在哪里不重新检查数据
关于r - ctree。将分类节点号放入变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46789491/