[R] Scripting with an external editor

ripley@stats.ox.ac.uk ripley at stats.ox.ac.uk
Mon Mar 24 11:26:38 CET 2003


On Mon, 24 Mar 2003, Jim Lemon wrote:

> I've had time to return to the "external editor" project. The following 
> function does almost what I want, which is to allow an external editor to 
> feed command lines to R.
> 
> ext.editor<-function(editor) {
>  ext.input<-pipe(editor,"r")
>  eval(parse(ext.input))
>  close(ext.input)
> }
> 
> While the description of parse() indicates that it should parse input line by 
> line, the output of the editor is not read until it exits. The external 
> editor is sending the output as requested, so I must be using the wrong 
> connection setup. Any hints?

?parse says

     `parse' returns the parsed but unevaluated expressions in a list. 
     Each element of the list is of mode `expression'.

that is, it takes all the input and returns a list once all the input has 
been parsed.  There is no multi-tasking in the R evaluator, and you have 
no loop in your code, so eval can only be called once when parse exits.

I am not clear what you actually want.  If it is to repeatedly send a
block of code to R and get that block evaluated then you need to indicate
the end of the block somehow, split the pipe stream up into blocks and run
a loop to parse and evaluate each block.  If you want to simulate the
command-line, the easiest way to do this is to submit to the command line,
and to help with that you would have to at least tell us your platform!

-- 
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