[R] Command line R / PHP?
Martin Maechler
maechler at stat.math.ethz.ch
Tue Aug 19 15:02:51 CEST 2003
>>>>> "ThomasB" == Thomas W Blackwell <tblackw at umich.edu>
>>>>> on Tue, 19 Aug 2003 08:14:45 -0400 (EDT) writes:
ThomasB> On Wed, 20 Aug 2003, Zitan Broth wrote:
ThomasB> . . .
>> What I am trying to do is use R as part of a web-based system and call R
>> from PHP. The common method of interfacing from PHP to many systems is via
>> the command line (although I could use swig to access R directly but that is
>> phase 2 ;-) ). I found in the install notes that I could call
>> Rterm.exe --no-restore --no-save < infile > outfile (windows, although I
>> will be rolling out to *nix) however I cannot find a reference of how to
>> call r-functions from the command line with this -- or perhaps I've missed
>> the point ?
ThomasB> infile is an ascii file of R commands - the same
ThomasB> commands and same syntax which you would type in
ThomasB> the R command line window. Frequently the first
ThomasB> line sets some session options using options(), the
ThomasB> second line reads some data from a separate, named
ThomasB> file into an R object, and the third and subsequent
ThomasB> lines operate on that data and print out the
ThomasB> results.
ThomasB> For example:
ThomasB> options(digits=4, width=88, length=1e+8)
ThomasB> object <- read.table("data.file")
ThomasB> summary(lm(y ~ 1 + a + b, object)
ThomasB> (This assumes that "data.file" contains columns
ThomasB> named a, b, y in any order. It does a linear
ThomasB> regression and prints out the results .. in the
ThomasB> command line window if you were working
ThomasB> interactively, but to outfile if R is running
ThomasB> noninteractively with the call above.)
Thanks a lot, Thomas, for the nice explanation..
ThomasB> (Gosh, my recollection is that in unix the call is
ThomasB> R BATCH infile outfile, but I could be mistaken.
ThomasB> That's on the unix man page for R if you forget.)
Both work in Unix (after replacing "Rterm.exe" by "R").
Even R BATCH infile does.
The "--no-restore --no-save" in all versions, since the S-back
compatible way is to work with `persistent' objects (via an .RData file).
This persistence if often undesired when working with scripts,
and I'd recommend the above switches and using "save(.. , file=) and
load(file=..)" if desired, with carefully chosen file names
"<....>.rda".
>> I did find in the FAQ: 7.22 How can I get command line
>> editing to work? But I'm not sure I understand the
>> answer ..
ThomasB> If running R non-interactively, you don't care.
>> So say as a simple example I want to call sd() (standard deviation) from the
>> command line what would I type ... or do I need to write some R code and
>> call this .. ?
ThomasB> Need code to read in the data, then a one line
ThomasB> command sd(object). The returned value is printed
ThomasB> automatically if it is not assigned.
>> I will continue to read .... Z.
ThomasB> HTH - tom blackwell - u michigan medical school - ann arbor -
Martin Maechler
More information about the R-help
mailing list