[R] User input when running R code in batch mode
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Tue Oct 27 10:17:24 CET 2009
On Tue, Oct 27, 2009 at 9:20 AM, Kaushik Krishnan
<kaushik.s.krishnan at gmail.com> wrote:
> $ r --vanilla < test.r
>> a <- scan(what='character',n=1); a
> 1: Read 0 items
> character(0)
> ----
> Now it's not working.
Assuming this is a unix environment, the syntax '< test.r' means 'my
standard input stream is the file test.r'. That's not what you want.
Give R the file name as an argument and let the standard input stream
remain user input:
$ r --vanilla test.r
1: hello
Read 1 item
[1] "hello"
Note that this is 'r' and not 'R'. For me this comes from the
'littler' package in Ubuntu Linux. The same thing with 'R' doesn't
work:
$ R --vanilla test.r
ARGUMENT 'test.r' __ignored__
[banner]
> [the R prompt appears]
Maybe there's a way of doing this with big R, but I think littler is
designed for this kind of thing.
> Is there any way to make R stop for the user to enter values when
> running in batch mode either by changing the way I invoke scan() or
> readLines() or by using any other function?
An alternative is to use the tcltk package to make a dialog for user input.
Barry
More information about the R-help
mailing list