[R] Re: RFC: "R::Wrapper" perl module
Aaron J Mackey
ajm6q at virginia.edu
Tue Feb 19 14:08:46 CET 2002
For those who are interested, a preview version can be obtained at:
http://www.people.virginia.edu/~ajm6q/R-Wrapper-0.01.tar.gz
-Aaron
On Thu, 14 Feb 2002, Aaron J Mackey wrote:
>
> If I actually finished writing this module, would any of you use it?
> Would you wish it did something else/different than what's described
> below? Any comments or suggestions on its proposed usage, intent, or
> syntax are welcome! (An alternative, better name would also be
> appreciated) -Aaron
>
> NAME
> R::Wrapper - Wrapper around the RS-Perl R module
>
> SYNOPSIS
> #!/usr/bin/perl -w
>
> use strict;
>
> use R::Wrapper qw(:all);
>
> my @x = 1 .. 10;
> my @y = 1 .. 10;
> @x = cumsum(\@x);
>
> plot( { x => \@x,
> y => \@y,
> main => 'Test Plot'
> }
> );
>
> __END__
>
> # then, at the command line:
>
> # just view it, nothing else;
> % ./script.pl
>
> # after viewing, have the option to save as PDF
> # (prompt for filename):
> % ./script.pl --pdf
>
> # do the same, but specify filenames in advance:
> % ./script.pl --dump=rawdata.txt
> % ./script.pl --pdf=testplot.pdf
> % ./script.pl --ps=testplot.ps
>
> # only generate the dump, don't preview at all:
> % ./script.pl --nopreview --pdf=testplot.pdf
>
> # pipe the postscript to something else:
> % ./script.pl --ps="| enscript -Pbiochem_LJ5P"
>
> # the default argument for lpr is -P
> % ./script.pl --lpr=biochem_LJP
>
> # send other parameters to lpr (e.g. 2 copies);
> % ./script.pl --lpr="-Pwrp_ph56 -#2"
>
> # send pdf's to someone:
> % ./script.pl --pdf --email=amackey at virginia.edu --subject="Here's the latest version"
>
> DESCRIPTION
> R::Wrapper is meant to be a utility wrapper around the RS-Perl R module.
> It currently provides three main features: the first is a visually
> "cleaner" interface to the R module's calling interface (and handling
> for a few sticky issues the R module has with vectors versus scalars).
>
> The second feature is to automatically "annotate" each page of output
> with meta-information about the script (it's name, path, the date,
> arguments to the script, etc etc); These annotations will appear at the
> bottom of the output page, and are meant to aid in the reproduction of
> the data used by the figure(s) at a later date.
>
> The third feature is that R::Wrapper provides automatic recognition for
> --dump, --pdf, --ps, --lpr and --email command line switches to scripts
> that use R::Wrapper. The point of these switches is that after
> "previewing" any plotted data in a graphical window, R::Wrapper will
> automatically prompt the user if they wish to dump the raw numerical
> data used to generate the plot (--dump), or obtain PDF or postscript
> (--pdf and --ps, respectively) versions of the plot (including
> annotations); if a filename was not specified at the command line, or if
> multiple plots are drawn by the script, the user will be prompted for
> each necessary filename. Instead of specifying filenames for --dump,
> --pdf and --ps, the outputs can also be piped into another process.
> The --lpr option expects arguments to the lpr command, instead of
> filenames. The --email option is used in conjunction with the other
> options, and specifies that the outputs should be MIME-attached to an
> email to be sent to the specified user(s).
>
> R::Wrapper uses the Getopt::Long module to handle command line options,
> so scripts that make use of it should 'use R::Wrapper' before any other
> processing of @ARGV occurs (R::Wrapper will strip out it's specific
> arguments, leaving any others in @ARGV for processing by the script
> itself).
>
> MOTIVATION
> Currently, our research "flow" looks like this:
>
> 1. Generate/collect raw data
> 2. Use Perl scripts to "munge" or otherwise convert raw data into
> tabular format (or import into a relational database)
> 3. Use R script(s) to analyze, transform and visualize data read in
> from tabular format (or obtained out of relational database);
> edit script until the desired output formatting/layout is
> achieved
> 4. Edit R scripts furiously to redirect plotting output into
> pdf/postscript/etc.
> 5. Use either Perl or R to (re)generate tabular-formatted plotting
> data (for import into publication-quality graphing environments)
>
> R::Wrapper attempts to combine steps 3 through 5 (although it could
> also be used in a "super script" that performed steps 1 and 2, if
> desired). The advantage of doing this is to keep the definitions for
> data production the same: the same set of Perl and R functions are
> used to generate "preview" data in step 3, generate hardcopy in step 4
> and generate export data in step 5.
>
> SUPPORTED ROUTINES
> Currently, R::Wrapper only supports text output (--dump) for plots
> generated using the following R functions (as a proof of concept, and
> because these are the plotting routines we use most often):
>
> * plot
> * points
> * lines
>
> TODO
>
> * Add some kind of templating mechanism, so that text output can be
> user-controlled.
> * Add --dump support for more plotting routines (i.e. 'histogram',
> 'barplot', 'boxplot', etc. etc.).
>
> AUTHOR
> Aaron J Mackey, amackey at virginia.edu
>
> SEE ALSO
> perl(1), RS-Perl
>
>
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list