2017-02-04 9 views
0

Я получаю указанную выше ошибку при попытке запустить свой R-код (модель Naive Bayes с использованием e1071).Ошибка в таблице «все аргументы должны иметь одинаковую длину»

1) Установка: Я создал таблицу в формате CSV со следующими шестью полями:

dep variable -> cncl_flag: 0,1 

indep variables -> Channel: red, blue, green, black 
       -> Age:  <1, 1-2, >2 
       -> Cases: 0,1 
       -> Products: product 1, product 2, ... , product 8 
       -> Dollars: <100, 100-200, ... , >1000 

2) Код R: Используя таблицу подробно выше я запускаю следующий R код:

myData<-read.csv("C:/Users/me/Desktop/R/NBC.csv", header = TRUE, sep = ",") 

myData[,"train"] <- ifelse(runif(nrow(myData))<0.80,1,0) 
trainColNum <- grep("train",names(myData)) 
trainmyData <- myData[myData$train==1,-trainColNum] 
testmyData <- myData[myData$train==0,-trainColNum] 


library(e1071) 
nb_model <- naiveBayes(cncl_flag~.,data = trainmyData) 

summary(nb_model) 
nb_test_predict <- predict(nb_model,testmyData[,-1]) 
table(pred=nb_test_predict,true=testmyData$cncl_flag) 

3) Выход: Ошибка в таблице (= nb_test_predict пред, правда = testmyData $ cncl_flag): все аргументы должны иметь одинаковую длину

4) Что я пробовал: я удалил все строки, содержащие любой «NA» или пустые результаты

ответ

0

Если вы можете проверить длину nb_test_predict и testmyData$cncl_flag с помощью length() функции, вы поймете причину ошибки.

Смежные вопросы