这里有R的总初学者,我知道这个错误以前已经解决过,但是可用的答案不能解决我的问题。
我正在尝试在测试数据集上应用朴素贝叶斯分类器,但与用于创建分类器的训练数据集相比,变量(列)要少。换句话说,我创建了分类器以基于某些变量(8个独立变量)来预测特定细分市场中的客户成员资格,并且在测试数据集上效果很好(就变量而言与培训数据相同),但是现在我想要测试如果我拥有的数据未包含训练数据中的所有变量(例如,如果我仅拥有客户的人口统计信息),模型将如何执行。因此,我要做的是从测试数据中选择某些变量(列)像这样:
data.test2 <- data.test[,c(1,2,5,6,8)]
这样的测试数据仅包含训练集中原始8个变量中的五个独立变量。我还取出了响应变量(第9列)
但是我收到此错误:
`[[<-。data.frame`(`* tmp *`,i,value = integer(0))错误:
替换有0行,数据有207
我确保变量名称与训练数据中的名称完全相同。我从软件包中了解到,这应该不是问题:
“新数据:具有新预测变量的数据框(列数可能少于训练数据)。请注意,新数据的列名与训练数据的列名匹配。”
有什么想法吗?谢谢!