vibha patel
2010-Mar-24 06:14 UTC
[R] how to solve error in precict( ) while using with rpart?
Hello, I am working with rpart function but geting some error in prediction. the same code works fine with iris dataset. but applying other dataset it doesn't work. sample code is given for reference.> acc_model<-rpart(V1~V2+V3+V4+V5+V6+V7+V8, data=accEx.train) > plotcp(acc_model) >acc_find_cp<-(acc_model$cptable)[,"CP"][which.min(acc_model$cptable[,"xerror"])]> acc_prune_model<-prune(acc_model,acc_find_cp) > acc_predict_tree<-predict(acc_prune_model,newdata=accEx.test,type="class") Error in predict.rpart(acc_prune_model, newdata = accEx.test, type "class") : Invalid prediction for rpart object #conf.mat #function(true, new) { t <- table(true, new) s <- sum(t) acc <- round((sum(diag(t)))/s, 2) res <- list(conf = t, accuracy = acc) } # I thought the Error is in match.arg(type) : # 'arg' should be one of “vector”, “prob”, “class”, “matrix” # accEx.test # V1 is response V2 to V8 are predictors V1 V2 V3 V4 V5 V6 V7 V8 1 3.66356 7.74414 -4.4 4.2 0.0 18.0 19 116 2 3.04452 8.03398 -5.7 4.8 -0.3 69.1 9 506 3 3.71357 4.70048 -13.5 4.3 0.2 80.0 3 95 4 2.94444 7.52510 1.4 3.0 0.1 177.0 22 161 5 4.06044 7.76260 4.1 5.6 1.1 287.0 7 80 6 3.68888 7.88683 5.8 2.3 -0.1 200.0 9 33 7 3.33220 7.81521 2.7 1.9 0.4 228.0 7 129 8 3.36730 7.77779 7.1 8.9 0.2 220.0 15 155 9 2.07944 6.89163 4.1 2.0 0.1 183.0 9 132 10 1.94591 7.67740 1.1 5.2 0.1 43.1 10 480 ...... ...... ......> acc_predict_tree<-predict(acc_prune_model,newdata=accEx.test,type="vector")> acc_conf<-conf.mat(accEx.train,acc_predict_tree)Error in sort.list(unique.default(x), na.last = TRUE) : 'x' must be atomic for 'sort.list' Have you called 'sort' on a list? how to solve this problem? [[alternative HTML version deleted]]