[R] writing R shell scripts?

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Jan 25 20:43:58 CET 2007


On Thu, 25 Jan 2007, Deepak Chandra wrote:

>> > Hi All,
>> >
>> > Another newbie question. I want to write an R script that takes
>> > argument from command line and runs and produces output to stdin.
>> 
>> You will find that difficult: did you mean stdout?
>
> My mistake -- I meant stdout :).
>
>> 
>> > For example if there is file foo.R with following in it.
>> >
>> > args = commandArgs()
>> > print(args)
>> >
>> > then, when I run it like
>> > $ R foo.R hello
>> > it should print 'hello' on the terminal.
>> >
>> > I searched the mainling list and found a very old post that said said
>> 
>
>> Please give an exact reference so we know what you are referring to.
>> This is not what is usually meant by 'R shell scripts' (it is an R script,
>> not a shell script).
>> 
>> > that this feature will be implemented soon. I am expecting this has
>> > already  been implemented by now.
>> 
>> That is not what commandArgs() is documented to do so you will need to do
>> something slightly different.  But in the development version of R you can
>> come very close:
>> 
>> gannet% cat foo.R
>> args <- commandArgs(TRUE)
>> print(args)
>> gannet% ~/R/R-devel/bin/Rscript foo.R hello
>> [1] "hello"
>> gannet%
>> 
>> and in any recent version of R
>> 
>> gannet% cat foo2.R
>> args <- commandArgs()
>> m <- match("--args", args)
>> print(args[-(1:m)])
>> gannet% R --slave --args hello < foo2.R
>> [1] "hello"
>> 
>> If you have a platform and build of R for which it works, there is also
>> littler (http://biostat.mc.vanderbilt.edu/twiki/bin/view/Main/LittleR),
>> but beware that are restrictions not stated on that page (such as the need
>> for R built as a shared library, which is not the default).
>
> My apologies for being sketchy in my example: I was hoping to
> elucidate my problem without too many details.
> I was looking #! capabilites for running my scripts with different
> arguments from my shell.

Rscript does that, and if you are lucky, littler will.

> Your response was helpful, and one of the three alternatives that you
> pointed to should solve my problem.
>
> Thanks,
> Deepak
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list