Skip to content

New project: littler for GNU R

4 messages · Richard M. Heiberger, Gabor Grothendieck, Brian Ripley +1 more

#
I like this plan and have now played with the concept.  I did the following
on Windows in cygwin.  It would also work in Unix, and I think could be tickled
to work on the standard MS cmd line in Windows.  It would certainly work
on Windows with a Windows-native port of the basic unix utilities.

echo 'options(echo=FALSE);cat(pi^2,"\n")' | Rterm --no-save 

This produces an output file, that normally shows up in the *shell*
buffer, but could be redirected.   The obvious place to redirect it to is
awk with a script to filter out everything above the echo of the options()
line. 

The only change to R needed to remove the need for an awk script
is to suppress the display of the copyright message and startup
information.  I suppose that could be done with a new
 --suppress-startup-info argument to Rterm.

The other optimizations that Jeffrey and Dirk have, such as
suppressing the loading of many of the standard packages,
would also need to be done.

Very good work and concept.

Rich
#
The way it should work IMHO is that one can write any of these
(in analogy to awk/perl/etc.):

R -f myprog.R mydata.dat
R -f myprog.R < mydata.dat
cat mydata.dat | R -f myprog.R # or analogously on Windows
R -e "...some.R.code... " mydata.dat
R -e "...some.R.code... " < mydata.dat

and there should be a simple way for myprog.R to read the
input data that does not require that it know whether it
was specified on the command line or redirected.
On 9/26/06, Richard M. Heiberger <rmh at temple.edu> wrote:
#
On Tue, 26 Sep 2006, Richard M. Heiberger wrote:

            
It is called --slave.
Rterm --slave R_DEFAULT_PACKAHES=NULL

and variables is already widely used in the R build process.

  
    
#
On 9/26/06, Richard M. Heiberger <rmh at temple.edu> wrote:
It seems to me that a big difference between this and littler is how
stdin is treated. How would you implement the fsizer.r example using
this concept?
I typically use

--vanilla --slave

(which I assume would work on Windows too).