From rhelp at eoos.dds.nl  Thu Oct 26 16:14:04 2017
From: rhelp at eoos.dds.nl (Jan van der Laan)
Date: Thu, 26 Oct 2017 16:14:04 +0200
Subject: [Rd] How to create a table structure in Java code?
In-Reply-To: <qsAgsMs7JEnlkk9L-qi3GdtzAHk_Pom_FEfjfV2xGOm4iQxPYvapzPzUBAPyc5paAADkx0-sv16KwxJC-djTdd_MPvUCJcIbnh2yeljlB_8=@protonmail.com>
References: <TNxOU9bI1Nh3erxhoQT01mOAwutGoyscR-w7sumoj2hZY0fkKbVCK1Vl-Fwd_Vs-2NQjDQyRLNixrYz-8HA6X-tZZ-ltlk0mpWWp4QD6Q90=@protonmail.com>
 <7f1e36fe-f2c4-dce7-bb20-5c8a74f3f630@eoos.dds.nl>
 <qsAgsMs7JEnlkk9L-qi3GdtzAHk_Pom_FEfjfV2xGOm4iQxPYvapzPzUBAPyc5paAADkx0-sv16KwxJC-djTdd_MPvUCJcIbnh2yeljlB_8=@protonmail.com>
Message-ID: <8f5274f8-86f6-fb46-2a03-4b9fccc254a3@eoos.dds.nl>

As Joris mentioned this question does not belong on R-devel, but on R-help.

When replying to your earlier question I missed that I was replying to 
R-devel and not R-help. R-devel: sorry for that.

So, please post any follow up questions to R-help.

--
Jan


On 26-10-17 15:59, Morkus wrote:
> *_That's amazing! Thank you!!!_*
> 
> One follow up question, if that's OK?
> 
> If, instead of using hard-coded CSV, I read the CSV into a variable 
> _first_, then it fails again with a parse error.
> 
> Code below.
> 
> So, if I read the CSV into a variable, do I need an additional wrapper 
> method?
> 
> Seems like it should still work.
> 
> Thanks in advance for your reply.
> 
>  ?-M
> 
> *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"*;
> 
> *REXP irisData *=*rConnection*.*eval*(
> *"read.csv(textConnection(" *+ *inputIris *+ *"), header = FALSE)"*);
> 
> Sent from ProtonMail <https://protonmail.com>, Swiss-based encrypted email.
> 
> 
>> -------- Original Message --------
>> Subject: Re: [Rd] How to create a table structure in Java code?
>> Local Time: October 26, 2017 7:45 AM
>> UTC Time: October 26, 2017 11:45 AM
>> From: rhelp at eoos.dds.nl
>> To: r-devel at r-project.org
>>
>>
>> I suspect that you are looking for something like:
>>
>> read.csv(textConnection(
>> "5.1,3.5,1.4,0.2,setosa
>> 4.9,3,1.4,0.2,setosa
>> 4.7,3.2,1.3,0.2,setosa
>> 4.6,3.1,1.5,0.2,setosa
>> 5,3.6,1.4,0.2,setosa"
>> ), header = FALSE)
>>
>> HTH,
>> Jan
>>
>>
>>
>> On 25-10-17 12:50, Morkus via R-devel wrote:
>>
>>     Hi all,
>>     Using RConsole, it's easy to get data from the database that you
>>     can use in an R Command. Like this:
>>     (Reference case)
>>     irisQuery <- dbGetQuery(conn, "select * from iris")
>>     boxM(irisQuery [,-5], irisQuery[,5])
>>     ------------------------------------------------------------------------
>>
>>     (Actual case this posting is about)
>>     Yet, if I'm getting that same (sample IRIS) data, say, in a web
>>     service possibly POSTED from a SQL command, that same data might
>>     look like this (portion of the included iris data set below). I'm
>>     thus not sure how to package the data so R likes it.
>>     Example R-included IRIS data from SQL output:
>>     5.1,3.5,1.4,0.2,setosa,
>>     4.9,3,1.4,0.2,setosa,
>>     4.7,3.2,1.3,0.2,setosa,
>>     4.6,3.1,1.5,0.2,setosa,
>>     5,3.6,1.4,0.2,setosa,
>>     I've tried various combinations in code to achieve what's simple
>>     in RConsole, but I can't get R to accept my structure.
>>
>>       * I've tried just including the data in a string.
>>       * I've tried wrapping the data with "data"
>>       * I've tried wrapping the data with "data.frame" (as below).
>>
>>     Here's my latest attempt:
>>     String tableRead = "data.frame(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)" ;
>>     // using parseAndEval below to give me actual error R is sending...
>>     REXP rResponseObject =
>>     rConnection.parseAndEval("try(eval("+tableRead+"),silent=TRUE)");
>>     if (rResponseObject.inherits("try-error"))
>>     {
>>     System.out.println("R Serve Eval Exception :
>>     "+rResponseObject.asString());
>>     }
>>     REXP boxMResult = rConnection.eval("boxM("+ tableRead+ "[,-5]," +
>>     tableRead + "[, 5])"); // FAILS <<
>>     ------------------------------------------------------------------------
>>
>>     Error in the above case is:
>>     Disconnected from the target VM, address: '127.0.0.1:51356',
>>     transport: 'socket'
>>     org.rosuda.REngine.REngineException: eval failed, request status:
>>     R parser: syntax error
>>     at
>>     org.rosuda.REngine.Rserve.RConnection.parseAndEval(RConnection.java:454)
>>     at org.rosuda.REngine.REngine.parseAndEval(REngine.java:108)
>>     at
>>     net.example.start_r_fromjava.RStatisticsExample.main(RStatisticsExample.java:151)
>>     Does the POSTed data need to be in a different format or am I just
>>     not framing it correctly?
>>     Would appreciate any tips on how to package table data that might
>>     come from a SQL Query passed to Java code.
>>     Thanks very much in advance,
>>
>>       * M
>>
>>     Sent from ProtonMail <https://protonmail.com>, Swiss-based
>>     encrypted email.
>>     [[alternative HTML version deleted]]
>>     ------------------------------------------------------------------------
>>
>>     R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>>     https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>>
>> ------------------------------------------------------------------------
>>
>> R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] How to create a table structure in Java code?
Jan van der Laan