【发布时间】:2016-07-17 18:26:05
【问题描述】:
我试图将新数据传递给预测函数,而新数据是部分的,110 多列中只有 3 列被填充,我收到错误:
eval 中的错误(expr、envir、enclos):找不到对象“单元格”
虽然存在“单元格”列,但下面是我的 R 脚本:
library("AppliedPredictiveModeling")
library("ElemStatLearn")
library("pgmm")
library("rpart")
library("gtools")
library("caret")
# load data
data(segmentationOriginal)
# Subset the data to a training set and testing set based on
# the Case variable in the data set.
training <- segmentationOriginal[which(segmentationOriginal$Case ==
"Train"), ]
testing <- segmentationOriginal[which(segmentationOriginal$Case ==
"Test"), ]
# Set the seed to 125 and fit a CART model with the rpart
# method using all predictor variables and default caret
# settings.
set.seed(125)
modFit <- train(Class ~ ., method = "rpart", data = training)
modFit$finalModel
# use new values to predict , TotalIntench2 = 23,000;
# FiberWidthCh1 = 10; PerimStatusCh1=2
# create new data frame based on old data frame columns, this
# will contain new data
training1 <- training[0, ]
# create data frame with test values
newdata = data.frame(TotalIntench2 = 50000, FiberWidthCh1 = 10,
VarIntenCh4 = 100)
# use gtools package smartbind()
training1 <- training1[nrow(training1) + 1, ]
training1 <- smartbind(training1, newdata)
# remove initial empty row
training1[-c(1), ]
# inspect
training1[1, 0]
predict(modFit, newdata = training1[1, 0])
如何将填充了部分列的新数据传递给 predict() 函数?
谢谢
【问题讨论】:
-
投反对票的原因是什么?我想要关于这个问题的指导。
-
你想听什么?
training1 <- training1[nrow(training1) + 1, ] training1 <- smartbind(training1, newdata)? -
另外,您的
training1[1, 0]没有列 -
我正在尝试将 'newdata = data.frame(TotalIntench2 = 50000, FiberWidthCh1 = 10, VarIntenCh4 = 100)' 传递给 predict()
-
看不到数据或模型是什么样子,这里只是猜测。您确定新创建的数据与您的模型匹配吗?
标签: r machine-learning