What ?

littler provides hash-bang (i.e. script starting with #!/some/path) capability for GNU R, as well as simple command-line and piping use.

Why ?

GNU R, a language and environment for statistical computing and graphics, provides a wonderful system for 'programming with data' as well as interactive exploratory analysis, often involving graphs.

Sometimes, however, simple scripts are desired. While R can be used in batch mode, and while so-called 'here' documents can be crafted, a long-standing need for a scripting front-end has often been expressed by the R Community.

littler (pronounced 'little R' and written 'r') aims to fill this need.

It can be used directly on the command-line just like, say, bc(1):
	$ echo 'cat(pi^2,"\n")' | r
	9.869604

Equivalently, commands that are to be evaluated can be given on the command-line
	$ r -e 'cat(pi^2, "\n")'
	9.869604

But unlike bc(1), GNU R has a vast number of statistical functions. For example, we can quickly compute a summary() and show a stem-and-leaf plot for file sizes in a given directory via
	$ ls -l /boot | awk '!/^total/ {print $5}' | \
		 r -e "fsizes <- as.integer(readLines()); \
			print(summary(fsizes)); stem(fsizes)"
	   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
	     13     512  110100  486900  768400 4735000
	Loading required package: grDevices

	  The decimal point is 6 digit(s) to the right of the |

	  0 | 00000000000000000011112223
	  0 | 5557778899
	  1 | 112233
	  1 | 5
	  2 |
	  2 |
	  3 |
	  3 |
	  4 |
	  4 | 7

And, last but not least, this (somewhat unwieldy) expression can be stored in a helper script:
	$ cat examples/fsizes.r
	#!/usr/bin/env r

	fsizes <- as.integer(readLines())
	print(summary(fsizes))
	stem(fsizes)
(where calling #!/usr/bin/env is a trick from Python which allows one to forget whether r is installed in /usr/bin/r, /usr/local/bin/r, ~/bin/r, ...)

A few examples are provided in the source directories examples/ and tests/.

Several projects use littler in an industrial-strength setting. CRANberries has been using it since July 2007 to provide detailed and immediate updates about new and updated packages at CRAN via RSS feeds and HTML pages. Similarly, cran2deb uses it for fully-automated generation of thousands of binary packages (in i386 and amd64 'flavours') for the Debian Linux distribution.

Where ?

littler can be downloaded from the local archive here or accessed via its GitHub repository.

It can also be obtained from Debian mirrors via a simple
	$ apt-get install littler
provided apt is pointed to the testing or unstable distributions.

littler is known to build and run on Linux and OS X.

What else ?

A few more questions are addressed in the README file which also contains a brief FAQ section.

Who ?

Copyright (C) 2006 - 2014 Jeffrey Horner and Dirk Eddelbuettel

Comments are welcome, as are are suggestions, bug fixes, or patches.

- Jeffrey Horner
- Dirk Eddelbuettel

Last modified: Wed Apr 23 19:14:10 CDT 2014