2017-02-24 123 views
0

試圖運行下面通過選擇列預測:試圖運行地預測

這裏的現有代碼:

model <- glm(Automatable1Y0N ~.,family=binomial(link='logit'),data=train) 
data <- subset(training.data.raw,select=c(5,6,7,8,10,12,27)) 
train <- data[1:800,] 
test <- data[801:957,] 

model <- glm(Automatable1Y0N ~.,family=binomial(link='logit'),data=train) 
anova(model, test="Chisq") 

NO問題在此2行。而當我跑這個預測線:

fitted.results <- predict(model,newdata=subset(test,select=c(5,6,7,8,10,12)),type='response') 

,但我收到此錯誤:

Error in `[.data.frame`(x, r, vars, drop = drop) : undefined columns selected 

是否有人可以幫忙嗎?謝謝。

我試圖提取該子命令:

newdata <-subset(test,select=c(5,)) 

下面是結果,當我添加的列8這時候,錯誤想出了:

> newdata <-subset(test,select=c(5)) 
> newdata <-subset(test,select=c(5,6)) 
> newdata <-subset(test,select=c(5,6,7)) 
> newdata <-subset(test,select=c(5,6,7,8)) 
Error in `[.data.frame`(x, r, vars, drop = drop) : 
    undefined columns selected 
+1

可能是'model'和'newdata'之間的變量名稱不匹配。但沒有一個可重複的例子,這很難確認。 –

+0

感謝您的編輯,但這確實有助於我們在系統中再現您的問題。例如,我們沒有'train'和'test'對象。請參閱[這裏](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)以獲取更多信息。 –

回答

0

我看看是什麼導致該錯誤:命令:

data <- subset(training.data.raw,select=c(5,6,7,8,10,12,27)) 

在這裏,你現在有7列,該命令:

fitted.results <- predict(model,newdata=subset(test,select=c(5,6,7,8,10,12)),type='response') 

除了指定的原始列的,現在應該

select=c(1,2,3,4,5,6,7) 

因爲數據集現在已經7列。感謝您通過@Paul提供反饋