Hi Bill, Thanks for catching that. However, the problem remains.
If I use R debugging code with the rResponseObject below, I get a maybe better error, but it still doesn't make sense. This is the actual error R is throwing: Error in `[.data.frame`(boxMVariable, , -5) : undefined columns selected Does this error make sense? Please reply. :) Thanks in advance. --------------- <R Debugging code, one line substituted from earlier posting> REXP rResponseObject = rConnection.parseAndEval("try(eval(" + boxVariable+ "),silent=TRUE)"); if (rResponseObject.inherits("try-error")) { System.out.println("R Serve Eval Exception : " + rResponseObject.asString()); } Sent from [ProtonMail](https://protonmail.com), Swiss-based encrypted email. > -------- Original Message -------- > Subject: Re: [Rd] Cannot Compute Box's M (Three Days Trying...) > Local Time: October 27, 2017 4:00 PM > UTC Time: October 27, 2017 8:00 PM > From: wdun...@tibco.com > To: Morkus <mor...@protonmail.com> > r-devel@r-project.org <r-devel@r-project.org> > > Does it work if you supply the closing parenthesis on the call to boxM? The > parser says the input is incomplete and a missing closing parenthesis would > cause that error.. > > // create a string command with that variable name.String boxVariable = > "boxM(boxMVariable [,-5], boxMVariable[,5]"; > > // try to execute the command... > // FAILS with org.rosuda.REngine.Rserve.RserveException: eval failed, request > status: R parser: input incomplete>>>> FAILS ! >>>> REXP theBoxMResult = > rConnection.eval(boxVariable); <<<< FAILS <<<<< > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Fri, Oct 27, 2017 at 12:41 PM, Morkus via R-devel <r-devel@r-project.org> > wrote: > >> It can't be this hard, right? I really need a shove in the right direction >> here. Been spinning wheels for three days. Cannot get past the errors. >> >> I'm doing something wrong, obviously, since I can easily compute the Box's M >> right there in RStudio >> >> But I don't see what is wrong below with the coding equivalent. >> >> The entire code snippet is below. The code fails below on the call to the >> boxM statistic call. >> >> PLEASE HELP!!! >> >> Thanks in advance, >> >> ------------------------- >> >> rConnection.eval("library('biotools')"); >> >> String inputIris = "5.1,3.5,1.4,0.2,setosa\n" + >> "4.9,3,1.4,0.2,setosa\n" + >> "4.7,3.2,1.3,0.2,setosa\n" + >> "4.6,3.1,1.5,0.2,setosa\n" + >> "5,3.6,1.4,0.2,setosa\n" + >> "5.4,3.9,1.7,0.4,setosa\n" + >> "4.6,3.4,1.4,0.3,setosa\n" + >> "5,3.4,1.5,0.2,setosa\n" + >> "4.4,2.9,1.4,0.2,setosa\n" + >> "4.9,3.1,1.5,0.1,setosa\n" + >> "5.4,3.7,1.5,0.2,setosa\n" + >> "4.8,3.4,1.6,0.2,setosa\n" + >> "4.8,3,1.4,0.1,setosa\n" + >> "4.3,3,1.1,0.1,setosa\n" + >> "5.8,4,1.2,0.2,setosa\n" + >> "5.7,4.4,1.5,0.4,setosa\n" + >> "5.4,3.9,1.3,0.4,setosa\n" + >> "5.1,3.5,1.4,0.3,setosa\n" + >> "5.7,3.8,1.7,0.3,setosa\n" + >> "5.1,3.8,1.5,0.3,setosa\n" + >> "5.4,3.4,1.7,0.2,setosa\n" + >> "5.1,3.7,1.5,0.4,setosa\n" + >> "4.6,3.6,1,0.2,setosa\n" + >> "5.1,3.3,1.7,0.5,setosa\n" + >> "4.8,3.4,1.9,0.2,setosa\n" + >> "5,3,1.6,0.2,setosa\n" + >> "5,3.4,1.6,0.4,setosa\n" + >> "5.2,3.5,1.5,0.2,setosa\n" + >> "5.2,3.4,1.4,0.2,setosa\n" + >> "4.7,3.2,1.6,0.2,setosa\n" + >> "4.8,3.1,1.6,0.2,setosa\n" + >> "5.4,3.4,1.5,0.4,setosa\n" + >> "5.2,4.1,1.5,0.1,setosa\n" + >> "5.5,4.2,1.4,0.2,setosa\n" + >> "4.9,3.1,1.5,0.2,setosa\n" + >> "5,3.2,1.2,0.2,setosa\n" + >> "5.5,3.5,1.3,0.2,setosa\n" + >> "4.9,3.6,1.4,0.1,setosa\n" + >> "4.4,3,1.3,0.2,setosa\n" + >> "5.1,3.4,1.5,0.2,setosa\n" + >> "5,3.5,1.3,0.3,setosa\n" + >> "4.5,2.3,1.3,0.3,setosa\n" + >> "4.4,3.2,1.3,0.2,setosa\n" + >> "5,3.5,1.6,0.6,setosa\n" + >> "5.1,3.8,1.9,0.4,setosa\n" + >> "4.8,3,1.4,0.3,setosa\n" + >> "5.1,3.8,1.6,0.2,setosa\n" + >> "4.6,3.2,1.4,0.2,setosa\n" + >> "5.3,3.7,1.5,0.2,setosa\n" + >> "5,3.3,1.4,0.2,setosa\n" + >> "7,3.2,4.7,1.4,versicolor\n" + >> "6.4,3.2,4.5,1.5,versicolor\n" + >> "6.9,3.1,4.9,1.5,versicolor\n" + >> "5.5,2.3,4,1.3,versicolor\n" + >> "6.5,2.8,4.6,1.5,versicolor\n" + >> "5.7,2.8,4.5,1.3,versicolor\n" + >> "6.3,3.3,4.7,1.6,versicolor\n" + >> "4.9,2.4,3.3,1,versicolor\n" + >> "6.6,2.9,4.6,1.3,versicolor\n" + >> "5.2,2.7,3.9,1.4,versicolor\n" + >> "5,2,3.5,1,versicolor\n" + >> "5.9,3,4.2,1.5,versicolor\n" + >> "6,2.2,4,1,versicolor\n" + >> "6.1,2.9,4.7,1.4,versicolor\n" + >> "5.6,2.9,3.6,1.3,versicolor\n" + >> "6.7,3.1,4.4,1.4,versicolor\n" + >> "5.6,3,4.5,1.5,versicolor\n" + >> "5.8,2.7,4.1,1,versicolor\n" + >> "6.2,2.2,4.5,1.5,versicolor\n" + >> "5.6,2.5,3.9,1.1,versicolor\n" + >> "5.9,3.2,4.8,1.8,versicolor\n" + >> "6.1,2.8,4,1.3,versicolor\n" + >> "6.3,2.5,4.9,1.5,versicolor\n" + >> "6.1,2.8,4.7,1.2,versicolor\n" + >> "6.4,2.9,4.3,1.3,versicolor\n" + >> "6.6,3,4.4,1.4,versicolor\n" + >> "6.8,2.8,4.8,1.4,versicolor\n" + >> "6.7,3,5,1.7,versicolor\n" + >> "6,2.9,4.5,1.5,versicolor\n" + >> "5.7,2.6,3.5,1,versicolor\n" + >> "5.5,2.4,3.8,1.1,versicolor\n" + >> "5.5,2.4,3.7,1,versicolor\n" + >> "5.8,2.7,3.9,1.2,versicolor\n" + >> "6,2.7,5.1,1.6,versicolor\n" + >> "5.4,3,4.5,1.5,versicolor\n" + >> "6,3.4,4.5,1.6,versicolor\n" + >> "6.7,3.1,4.7,1.5,versicolor\n" + >> "6.3,2.3,4.4,1.3,versicolor\n" + >> "5.6,3,4.1,1.3,versicolor\n" + >> "5.5,2.5,4,1.3,versicolor\n" + >> "5.5,2.6,4.4,1.2,versicolor\n" + >> "6.1,3,4.6,1.4,versicolor\n" + >> "5.8,2.6,4,1.2,versicolor\n" + >> "5,2.3,3.3,1,versicolor\n" + >> "5.6,2.7,4.2,1.3,versicolor\n" + >> "5.7,3,4.2,1.2,versicolor\n" + >> "5.7,2.9,4.2,1.3,versicolor\n" + >> "6.2,2.9,4.3,1.3,versicolor\n" + >> "5.1,2.5,3,1.1,versicolor\n" + >> "5.7,2.8,4.1,1.3,versicolor\n" + >> "6.3,3.3,6,2.5,virginica\n" + >> "5.8,2.7,5.1,1.9,virginica\n" + >> "7.1,3,5.9,2.1,virginica\n" + >> "6.3,2.9,5.6,1.8,virginica\n" + >> "6.5,3,5.8,2.2,virginica\n" + >> "7.6,3,6.6,2.1,virginica\n" + >> "4.9,2.5,4.5,1.7,virginica\n" + >> "7.3,2.9,6.3,1.8,virginica\n" + >> "6.7,2.5,5.8,1.8,virginica\n" + >> "7.2,3.6,6.1,2.5,virginica\n" + >> "6.5,3.2,5.1,2,virginica\n" + >> "6.4,2.7,5.3,1.9,virginica\n" + >> "6.8,3,5.5,2.1,virginica\n" + >> "5.7,2.5,5,2,virginica\n" + >> "5.8,2.8,5.1,2.4,virginica\n" + >> "6.4,3.2,5.3,2.3,virginica\n" + >> "6.5,3,5.5,1.8,virginica\n" + >> "7.7,3.8,6.7,2.2,virginica\n" + >> "7.7,2.6,6.9,2.3,virginica\n" + >> "6,2.2,5,1.5,virginica\n" + >> "6.9,3.2,5.7,2.3,virginica\n" + >> "5.6,2.8,4.9,2,virginica\n" + >> "7.7,2.8,6.7,2,virginica\n" + >> "6.3,2.7,4.9,1.8,virginica\n" + >> "6.7,3.3,5.7,2.1,virginica\n" + >> "7.2,3.2,6,1.8,virginica\n" + >> "6.2,2.8,4.8,1.8,virginica\n" + >> "6.1,3,4.9,1.8,virginica\n" + >> "6.4,2.8,5.6,2.1,virginica\n" + >> "7.2,3,5.8,1.6,virginica\n" + >> "7.4,2.8,6.1,1.9,virginica\n" + >> "7.9,3.8,6.4,2,virginica\n" + >> "6.4,2.8,5.6,2.2,virginica\n" + >> "6.3,2.8,5.1,1.5,virginica\n" + >> "6.1,2.6,5.6,1.4,virginica\n" + >> "7.7,3,6.1,2.3,virginica\n" + >> "6.3,3.4,5.6,2.4,virginica\n" + >> "6.4,3.1,5.5,1.8,virginica\n" + >> "6,3,4.8,1.8,virginica\n" + >> "6.9,3.1,5.4,2.1,virginica\n" + >> "6.7,3.1,5.6,2.4,virginica\n" + >> "6.9,3.1,5.1,2.3,virginica\n" + >> "5.8,2.7,5.1,1.9,virginica\n" + >> "6.8,3.2,5.9,2.3,virginica\n" + >> "6.7,3.3,5.7,2.5,virginica\n" + >> "6.7,3,5.2,2.3,virginica\n" + >> "6.3,2.5,5,1.9,virginica\n" + >> "6.5,3,5.2,2,virginica\n" + >> "6.2,3.4,5.4,2.3,virginica\n" + >> "5.9,3,5.1,1.8,virginica\n"; >> >> List tableRead = rConnection.eval( >> "read.csv(textConnection(\"" + inputIris + "\"), header = FALSE)").asList(); >> // works! >> >> double[] d1 = ((REXPVector) ((RList) tableRead).get(0)).asDoubles(); >> double[] d2 = ((REXPVector) ((RList) tableRead).get(1)).asDoubles(); >> double[] d3 = ((REXPVector) ((RList) tableRead).get(2)).asDoubles(); >> double[] d4 = ((REXPVector) ((RList) tableRead).get(3)).asDoubles(); >> String[] d5 = ((REXPVector) ((RList) tableRead).get(4)).asStrings(); >> >> // create data frame with data.REXP myDf = REXP.createDataFrame(new RList( >> new REXP[] >> { >> new REXPDouble(d1), >> new REXPDouble(d2), >> new REXPDouble(d3), >> new REXPDouble(d4), >> new REXPString(d5) >> })); >> >> // assign the data to a variable as was >> suggested.rConnection.assign("boxMVariable", myDf); >> >> // create a string command with that variable name.String boxVariable = >> "boxM(boxMVariable [,-5], boxMVariable[,5]"; >> >> // try to execute the command... >> // FAILS with org.rosuda.REngine.Rserve.RserveException: eval failed, >> request status: R parser: input incomplete>>>> FAILS ! >>>> REXP >> theBoxMResult = rConnection.eval(boxVariable); <<<< FAILS <<<<< >> >> sent from [ProtonMail](https://protonmail.com), Swiss-based encrypted email. >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel