On 07-Nov-05 Gabor Grothendieck wrote:
> Or you could call those other programs from within R. See
> ?system
A possibility which might work, and if so would work as you intend,
is to use a FIFO ("named pipe") or two to communicate with R.
In R, see "?connections"; in Linux, see "man mkfifo".
Then you should be able to start R up so that it reads commands
from the FIFO, (and optionally writes output to a FIFO which can
be read by the shell script; though it might be simpler to write
the output to a regular file).
This would be the converse of running systen commands from within
R using 'system()'.
However, there can be issues with this approach since, in my
experience, you have to ensure that the program reading the
FIFO knows when there is more to come on the FIFO, and also
when to stop reading. In principle it's straightforward,
though, and rather like reading the commamnds simply from
a file.
Or you might emulate the whole thing using regular files:
Put R into a loop which reads commands from a file (testing
whether it has changed) which the shell script updates as
needed. But you'd need to be careful that R does not read
a partially updated file.
Best wishes,
Ted.
> On 11/7/05, Stuart Macgregor <[EMAIL PROTECTED]> wrote:
>> Hi,
>> I want to use R within a unix shell script where I repeatedly open
>> and close R (doing some computation within R whilst it is open). i.e.
>> something like
>>
>> #!/bin/sh
>> R --vanilla << EOF
>> # some R commands
>> EOF
>> # some unix commands
>> R --vanilla << EOF
>> # some R commands
>> EOF
>> # some unix commands
>> ...etc
>>
>> the problem is that since I open and close R many times, the shell
>> script takes a long time to run (R takes ~1 second to start up, even
>> on
>> a fast machine; I've tried various linux installations and versions of
>> R
>> from 1.7 to 2.2). Is there some way of making R start up faster? I've
>> tried altering the memory start options but this makes little
>> difference.
>> Note I have various other programs called from the shell script and
>> don't want to do everything from "within" R.
>> One possible solution may be to send the relevant commands to an
>> already
>> running copy of R but I've yet to figure out how to achieve this.
>>
>> Any suggestions gratefully received.
>>
>> Stuart.
>>
>> ______________________________________________
>> [email protected] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide!
>> http://www.R-project.org/posting-guide.html
>>
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
--------------------------------------------------------------------
E-Mail: (Ted Harding) <[EMAIL PROTECTED]>
Fax-to-email: +44 (0)870 094 0861
Date: 07-Nov-05 Time: 08:57:16
------------------------------ XFMail ------------------------------
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html