Just re-read your question and realized I misread the error message. The argument is of zero length. But the conclusion is the same, either a bug in the package, or a problem with your input. On Fri, Aug 21, 2020 at 4:16 PM Abby Spurdle <spurdle.a at gmail.com> wrote:> > Note that I'm not familiar with this package or the method. > Also note that you haven't told anyone what function you're using, or > what your call was. > > I'm assuming that you're using the rotationForest() function. > According to its help page, the default is: > > K = round(ncol(x)/3, 0) > > There's no reason why the default K value should be higher than the > number of columns, unless: > (1) There's a bug with the package; or > (2) There's a problem with your input. > > I note that the package is only version 0.1.3, so a bug is not out of > the question. > Also, I'm a little surprised the author didn't use integer division: > > K = ncol (x) %/% 3 > > You could just set K to the above value, and see what happens... > > > On Fri, Aug 21, 2020 at 1:06 PM Sparks, John <jspark4 at uic.edu> wrote: > > > > Hi R Helpers, > > > > I wanted to try the rotationForest package. > > > > I pointed it at my data set and got the error message "Error in if (K >= ncol(x)) stop("K should not be greater than or equal to the number of columns in x") : > > argument is of length zero'. > > > > My dataset has 3688 obs. of 111 variables. > > > > Would a quick adjustment to the default value of K resolve this? > > > > If anybody with more experience with the package than me has a general suggestion I would appreciate it. > > > > --John Spaarks > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code.
On 2020-08-21 16:22 +1200, Abby Spurdle wrote: | On Fri, Aug 21, 2020 at 4:16 PM Abby Spurdle <spurdle.a at gmail.com> wrote: | | On Fri, Aug 21, 2020 at 1:06 PM Sparks, John <jspark4 at uic.edu> wrote: | | | | | | Hi R Helpers, | | | | | | I wanted to try the rotationForest | | | package. | | | | | | I pointed it at my data set and | | | got the error message "Error in if | | | (K >= ncol(x)) stop("K should not | | | be greater than or equal to the | | | number of columns in x") : | | | argument is of length zero'. | | | | | | My dataset has 3688 obs. of 111 variables. | | | | | | Would a quick adjustment to the | | | default value of K resolve this? | | | | | | If anybody with more experience | | | with the package than me has a | | | general suggestion I would | | | appreciate it. | | | | Note that I'm not familiar with this | | package or the method. Also note | | that you haven't told anyone what | | function you're using, or what your | | call was. | | | | I'm assuming that you're using the | | rotationForest() function. | | According to its help page, the | | default is: | | | | K = round(ncol(x)/3, 0) | | | | There's no reason why the default K | | value should be higher than the | | number of columns, unless: | | (1) There's a bug with the package; or | | (2) There's a problem with your input. | | | | I note that the package is only | | version 0.1.3, so a bug is not out | | of the question. Also, I'm a little | | surprised the author didn't use | | integer division: | | | | K = ncol(x) %/% 3 | | | | You could just set K to the above | | value, and see what happens... | | Just re-read your question and | realized I misread the error message. | The argument is of zero length. | | But the conclusion is the same, either | a bug in the package, or a problem | with your input. Dear John, check to see if your columns only has numbers in them like the *de jure* iris dataset used in the example in ?rotationForest::rotationForest. idx <- 1:100 idx.new <- which(!(1:nrow(iris) %in% idx)) y <- as.factor(ifelse(iris$Species[idx]=="setosa", 0, 1)) x <- iris[idx, -5] newdata <- iris[idx.new, -5] K <- ncol(x) %/% 3 L <- 100 rF <- rotationForest::rotationForest( x=x, y=y, K=K, L=L) predict(object=rF, newdata=newdata) Best, Rasmus
Thanks Abby and Rasumus. I like to leave the solution on this list for the next potential person. I had failed to realize that this package doesn't use one of the formula forms. So my call of RotFor2000<-rotationForest(up~.,data=modeldata) is what caused the error. After converting to the appropriate form x<-subset(modeldata,select=-c(up)) y<-modeldata$up tic() RotFor2000<-rotationForest(x,y) toc() It ran just fine. Thanks again. --John Sparks ________________________________ From: Rasmus Liland <jral at posteo.no> Sent: Friday, August 21, 2020 3:18 AM To: Abby Spurdle <spurdle.a at gmail.com> Cc: Sparks, John <jspark4 at uic.edu>; R-help <r-help at r-project.org> Subject: Re: [R] Rotation Forest Error Message On 2020-08-21 16:22 +1200, Abby Spurdle wrote: | On Fri, Aug 21, 2020 at 4:16 PM Abby Spurdle <spurdle.a at gmail.com> wrote: | | On Fri, Aug 21, 2020 at 1:06 PM Sparks, John <jspark4 at uic.edu> wrote: | | | | | | Hi R Helpers, | | | | | | I wanted to try the rotationForest | | | package. | | | | | | I pointed it at my data set and | | | got the error message "Error in if | | | (K >= ncol(x)) stop("K should not | | | be greater than or equal to the | | | number of columns in x") : | | | argument is of length zero'. | | | | | | My dataset has 3688 obs. of 111 variables. | | | | | | Would a quick adjustment to the | | | default value of K resolve this? | | | | | | If anybody with more experience | | | with the package than me has a | | | general suggestion I would | | | appreciate it. | | | | Note that I'm not familiar with this | | package or the method. Also note | | that you haven't told anyone what | | function you're using, or what your | | call was. | | | | I'm assuming that you're using the | | rotationForest() function. | | According to its help page, the | | default is: | | | | K = round(ncol(x)/3, 0) | | | | There's no reason why the default K | | value should be higher than the | | number of columns, unless: | | (1) There's a bug with the package; or | | (2) There's a problem with your input. | | | | I note that the package is only | | version 0.1.3, so a bug is not out | | of the question. Also, I'm a little | | surprised the author didn't use | | integer division: | | | | K = ncol(x) %/% 3 | | | | You could just set K to the above | | value, and see what happens... | | Just re-read your question and | realized I misread the error message. | The argument is of zero length. | | But the conclusion is the same, either | a bug in the package, or a problem | with your input. Dear John, check to see if your columns only has numbers in them like the *de jure* iris dataset used in the example in ?rotationForest::rotationForest. idx <- 1:100 idx.new <- which(!(1:nrow(iris) %in% idx)) y <- as.factor(ifelse(iris$Species[idx]=="setosa", 0, 1)) x <- iris[idx, -5] newdata <- iris[idx.new, -5] K <- ncol(x) %/% 3 L <- 100 rF <- rotationForest::rotationForest( x=x, y=y, K=K, L=L) predict(object=rF, newdata=newdata) Best, Rasmus [[alternative HTML version deleted]]