Search code examples
rinvalid-argument

Error in rep(" ", len) : invalid 'times' argument


library(OneR)
library(RWeka)

loan_train <- read.csv("loan_train.csv")
loan_test <- read.csv("loan_test.csv")
loan_train <- optbin(loan_train, method = "logreg", na.omit = TRUE)
loan_test <- optbin(loan_test, method = "logreg", na.omit = TRUE)

#Task 1
loan_1R <- OneR(bad_loans ~ ., data = loan_train)
loan_1R

loan_JRip <- JRip(bad_loans ~ ., data = loan_train)
loan_JRip

Need some help with my code. I am able to run everything but for some reason, every time I print loan_1R, it gives me an error. Tried using traceback() but have no idea what it means. My csv file can be in the link below.

https://drive.google.com/file/d/1139FUSXUc_fdzgtKAleo5bGAtjcVGoRC/view?usp=sharing

Error in rep(" ", len) : invalid 'times' argument

In addition: Warning message:
In max(nchar(names(model$rules))) :
  no non-missing arguments to max; returning -Inf
> traceback()
3: cat("If ", model$feature, " = ", names(model$rules[iter]), rep(" ", 
       len), " then ", model$target, " = ", model$rules[[iter]], 
       "\n", sep = "")
2: print.OneR(x)
1: function (x, ...) 
   UseMethod("print")(x) 


> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_Singapore.1252  LC_CTYPE=English_Singapore.1252   
[3] LC_MONETARY=English_Singapore.1252 LC_NUMERIC=C                      
[5] LC_TIME=English_Singapore.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RWeka_0.4-37 OneR_2.2    

loaded via a namespace (and not attached):
[1] compiler_3.4.1    tools_3.4.1       grid_3.4.1        rJava_0.9-9       RWekajars_3.9.2-1

Solution

  • After hours of testing i found out the problem but I have no idea why it is so. Think that it has something to do with the library(RWeka) package.... Placing library(RWeka) after the OneR code seemed to make it run. But this means i encounter the error only once i run the library(RWeka). Any workaround this?

    library(OneR)
    
    loan_train <- read.csv("loan_train.csv")
    loan_test <- read.csv("loan_test.csv")
    loan_train <- optbin(loan_train, method = "logreg", na.omit = TRUE)
    loan_test <- optbin(loan_test, method = "logreg", na.omit = TRUE)
    
    #Task 1
    loan_1R <- OneR(bad_loans ~ ., data = loan_train)
    loan_1R
    
    library(RWeka)
    
    loan_JRip <- JRip(bad_loans ~ ., data = loan_train)
    loan_JRip