Ken Termiso
2008-Feb-05 16:23 UTC
[R] Uninformative error msgs w/ svm.default - Error in svm.default ... y must be a vector or a factor -
Hello, I'm using recursive SVM script (rSVM - http://www.stanford.edu/group/wonglab/RSVMpage/R-SVM.html ) on some microarray data. The data to be input are log2, as numeric matrix w/ attributes -- str(svm_num_mat) num [1:10, 1:12340] 13.1 13.1 13.1 13.1 13.0 ... - attr(*, "dimnames")=List of 2 ..$ : chr [1:10] "rma_log2_con_sample_1" "rma_log2_con_sample_2" "rma_log2_con_sample_3" "rma_log2_con_sample_4" ... ..$ : chr [1:12340] "AFFX-HSAC07/X00351_3_at" "AFFX-HSAC07/X00351_5_at" "AFFX-HSAC07/X00351_M_at" "AFFX-HUMGAPDH/M33197_3_at" ... and the class labels --> str(m.cl.f)Factor w/ 2 levels "-1","1": 2 2 2 2 2 1 1 1 1 1> > m.cl.f[1] 1 1 1 1 1 -1 -1 -1 -1 -1 Levels: -1 1> mode(m.cl.f)[1] "numeric" the rSVM function is called as such (it is a wrapper for svm in e1071, which then calls low-level svm.default ) -> rsvm_output <- RSVM(x=svm_num_mat, y=m.cl.f, ladder=laddy, CVtype="LOO" )Error in svm.default(xTrain[, SelInd], yTrain, scale = F, type = "C-classification", : y must be a vector or a factor. ....the 'laddy' variable just specifies a recursive parameter for the overlying rSVM procedure - here, it calls the 1st round w/ all 12340 elements, then with the highest scoring 9255 elements, etc..> laddy[1] 12340 9255 6941 5206 3904 2928 2196 1647 1235 926 694 520 [13] 390 292 219 164 123 92 69 52 39 29 22 16 [25] 12 9 7 5 ...however, the error depends on the matrix size --> rsvm_output <- RSVM(x=svm_num_mat[,5000:6000], y=m.cl.f, ladder=laddy[laddy gc()used (Mb) gc trigger (Mb) max used (Mb) Ncells 185948 10.0 467875 25.0 467875 25.0 Vcells 758060 5.8 2983420 22.8 2798915 21.4>..help? Thanks, -Ken _________________________________________________________________ 08