NAME
    Statistics::R - Controls the R (R-project) interpreter through Perl.

DESCRIPTION
    This will permit the control of the the R (R-project) interpreter
    through Perl in different architectures and OS.

    You can for example, start only one instance of the R interpreter and
    have different Perl process accessing it.

SYNOPSIS
      use Statistics::R ;
  
      my $R = Statistics::R->new() ;
  
      $R->startR ;
  
      $R->send(q`postscript("file.ps" , horizontal=FALSE , width=500 , height=500 , pointsize=1)`) ;
      $R->send(q`plot(c(1, 5, 10), type = "l")`) ;
  
      $R->send(qq`x = 123 \n print(x)`) ;
      my $ret = $R->read ;
  
      $R->stopR() ;

NEW
    When creating the R bridje object (Statistics::R), you can set some
    options:

    log_dir
        The directory where the bridge between R and Perl will be created.

        R and Perl need to have read and write access to the directory!

        *By dafault it will be created at *%TMP_DIR%/Statistics-R*.*

    r_bin
        The path to the R binary.

        *By default the path will be searched in the default installation
        path of R in the OS.*

    r_dir
        The directory of R.

    tmp_dir
        A temporary directory.

        *By default the temporary directory of the OS will be
        used/searched.*

METHODS
    startR
        Start R and the communication bridge.

    start_sharedR
        Start R or use an already running communication bridge.

    stopR
        Stop R and the bridge.

    restartR
        stop() and start() R.

    Rbin
        Return the path to the R binary (executable).

    send ($CMD)
        Send some command to be executed inside R. Note that *$CMD* will be
        loaded by R with *source()*

    read ($TIMEOUT)
        Read the output of R for the last group of commands sent to R by
        *send()*.

    lock
        Lock the bridge for your PID.

    unlock
        Unlock the bridge if your PID have locked it.

    is_blocked
        Return *TRUE* if the bridge is blocked for your PID.

        In other words, returns *TRUE* if other process has *lock()ed* the
        bridge.

    is_started
        Return *TRUE* if the R interpreter is started, or still started.

    clean_up
        Clean up the enverioment, removing all the objects.

    error
        Return the last error message.

INSTALL
    To install this package you need to install R in your OS first, since
    *Statistics::R* need to find R path to work fine.

    A standart installation of R on Win32 and Linux will work fine and
    detected automatically by *Statistics::R*.

    Download page of R: <http://cran.r-project.org/banner.shtml>

    Or go to the R web site: <http://www.r-project.org/>

EXECUTION FOR MULTIPLE PROCESS
    The main pourpose of *Statistics::R* is to start a single R interpreter
    that hear multiple Perl process.

    Note that to do that R and Perl need to be running with the same
    user/group level.

    To start the *Statistics::R* bridge you can use the script
    *statistics-r.pl*:

      $> statistics-r.pl start

    From your script you need to use the *start_sharedR()* option:

      use Statistics::R ;
  
      my $R = Statistics::R->new() ;
  
      $R->start_sharedR ;
  
      $R->send('x = 123') ;
  
      exit;

    Note that in the example above the method *stopR()* wasn't called, sine
    it will close the bridge.

SEE ALSO
    *   Statistics::R::Bridge

    *   The R-project web site: <http://www.r-project.org/>

    *   Statistics:: modules for Perl:
        <http://search.cpan.org/search?query=Statistics&mode=module>

AUTHOR
    Graciliano M. P. <gm@virtuasites.com.br>

MAINTAINER
    Brian Cassidy <bricas@cpan.org>

COPYRIGHT & LICENSE
    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

