The second step is to implement RCaller for Perl and Python. We have now our Perl developer and he is in progress. Python is not our primary language and we are waiting for your helps. If you are familier with R and a developer of one of those languages below, join us. We are planning to carry RCaller to
- Python
- .Net
at first.
And... How it looks like.. Let's give up Java and speak Php for a minute:
1 <?php 2 include_once ("RCaller.php"); 3 4 $rcaller = new RCaller(); 5 $rcaller->setRscriptExecutable("/usr/bin/Rscript"); 6 $rcode = new RCode(""); 7 $rcode->clear(); 8 $rcode->addRCode("mylist <- list(x=1:3, y=c(7,8,9))"); 9 10 $rcaller->setRCode($rcode); 11 $rcaller->runAndReturnResult("mylist"); 12 13 $x = $rcaller->getParser()->getAsStringArray("x"); 14 $y = $rcaller->getParser()->getAsStringArray("y"); 15 16 echo ("X is <br>"); 17 print_r ($x); 18 19 echo ("<br><br>Y is <br>"); 20 print_r ($y); 21 ?>
Waaav! Nothings changes! When you run this code, you will see values of x as 1, 2 and 3 and values of y as 7, 8, 9... The code above seems 100% compatible with the original library...
If you have used RCaller (Java edition) before, you will probably
understand the whole code. If not, lets have a look at the page RCaller 2.0 - Calling R from Java.
Note that, it is as in-efficient as the original version. Because RCaller creates external Rscript processes in each time RunAndReturnResult() thingies called. Be careful before using it in big and critical projects. Another note is about using it with too many users. RCaller uses temp directory to store its R codes and outputs. You need to clear this directory periodically. Otherwise you can have a "too many files" error.
Finally, source of is ready for use and development. Please visit the RCaller source code and downloads page. Php codes are stored as a separate project with name RCallerPhp.
Test it and do not hasitate to ask us!