[R] Invoking R from application

Duncan Murdoch murdoch at stats.uwo.ca
Fri Aug 8 13:35:57 CEST 2008


On 08/08/2008 7:00 AM, Dobedani wrote:
> Dear all,
> 
> I'm trying to invoke R from an application which I'm developing. I
> have indications that the problem is specific to R. I'm able to e.g.
> invoke a Python script in the same way with success, but R is giving
> me problems. Last year a guy with nickname vital101 posted a message
> on the Java forums website about invoking R from Java. The link to
> that thread is:
> http://www.java-forums.org/advanced-java/3433-external-program-execution-problems.html#post6970
> 
> Unfortunately, he did not report back whether he found a solution at
> the time. As I said, I believe the problems he encountered were
> specific to R. What he was doing from Java, I'm now trying to do from
> C#. And I'm getting exactly the same warnings / errors back from R as
> he was getting:
> ARGUMENT '<' __ignored__
> ARGUMENT 'test.r' __ignored__
> 
> FYI: I'm using Windows XP. If I enter the following behind the command
> prompt:
> C:\Progra~1\R\R-2.7.1\bin\Rterm.exe --slave < test.r
> then my script test.r is dealt with correctly, but if I use DotNet
> classes Process and StartInfo from the System.Diagnostics namespace,
> things go wrong :-(
> 
> Does anyone understand what is going wrong here? Pls let me know
> something. TIA

This is not a problem with R.  When you enter a command at the command 
line, it is the shell (typically CMD.EXE in Windows) that handles the 
input redirection "<".  R never sees that, and so R has no code to 
handle it.

When you are invoking R directly, it's up to you to handle the input 
redirection, since you're not using the shell.  I've got no idea how to 
do that in C#.

However, R does allow you to use the -f (or --file=) command line option 
to take input from a file, and that's likely to do what you want.

Duncan Murdoch



More information about the R-help mailing list