[R] more help needed Re: communicate from Rterm

From: stephen bond <stenka1_at_go.com>
Date: Fri, 18 Jan 2008 18:01:01 +0000 (UTC)


I think the message from Prof. Ripley refers to calling shell and system from R. There is no "system" call in Windows cmd or VBA and I am calling R from VBA.

Now I want to use tryCatch to output the error to a text file and exit gracefully. My expression will be source("file.r") and that will contain file I/O and db connect+query. to exemplify I am trying with

tryCatch(read.csv(nosuchfile.csv),error=function(e){print (signalCondition(e)},finally=print("graceful exit"))

and not only it does not work but prints me a warning, so handling definitely fails.

Please, help or refer to tryCatch examples with real handlers. I could not get much out of the examples in the help file.

Thanks everybody

----Original Message----
From: ripley_at_stats.ox.ac.uk
Date: 01/11/2008 12:31
To: "Duncan Murdoch"<murdoch_at_stats.uwo.ca> Cc: "stephen bond"<stenka1_at_go.com>, <r-help_at_r-project.org> Subj: Re: [R] communicate from Rterm

I think the confusion may be the assumption that Microsoft's use of 'shell' has anything to do with 'shell' as used in the Unix/POSIX world.

For MinGW C executables (like Rterm.exe), redirection is expected to be
handled by a shell, not by the executable. (Other Windows runtimes may
handle redirection themselves.)

Compare the R-for-Windows system() and shell() commands and you will see
one way to do this.

On Fri, 11 Jan 2008, Duncan Murdoch wrote:

> On 1/11/2008 10:14 AM, stephen bond wrote:
>> I try with:
>>
>> ret = Shell(exestr)
>>
>> and it starts R, but the source file is not executed
>
> That's a VBA issue. VBA isn't handling the input redirection "< m.
in.R
> > out.txt". I don't know how to set that up: you'll need to
contact
> Microsoft tech support.
>
> Duncan Murdoch
>
>>
>> inside R
>>
>>> a=commandArgs()
>>> a
>> [1] "Rterm" "--restore" "--save" "--args" "2005-02-03" #correct
date
>> passed
>> [6] "<" "m.in.R" ">" "out.txt"
>>>
>>
>> it restores the correct workspace, but then it fails to source the
>> script, which is located in the same dir as the workspace.
>>
>> inside R
>>
>>> source("m.in.R") # does the job, so it is not a finding problem
>>
>> BTW is it possible to get the error message from R somehow???
>>
>>
>> ----Original Message----
>> From: murdoch_at_stats.uwo.ca
>> Date: 01/11/2008 6:30
>> To: "stephen bond"<stenka1_at_go.com>
>> Cc: <r-help_at_r-project.org>
>> Subj: Re: [R] communicate from Rterm
>>
>> On 1/11/2008 9:18 AM, stephen bond wrote:
>>> Please, help with announcing an error from Rterm:
>>>
>>> I am calling R from an Excel VBA and noticed that if there is an
>> error
>>> nothing conspicuous happens. I would like just a popup window when
>> R
>>> cannot finish cleanly. The "ret " value returned from Shell is
>> useless
>>> in determining what happened.
>>
>> This seems to be a VBA problem, not an R problem. Rterm returns a
0
>> return value when it exits cleanly, and a non-zero value when
there's
>> an
>> error. It looks as though you're losing that by wrapping the Rterm
>> call
>> in a batch file. Can't VBA make the call to Rterm directly?
>>
>> Duncan Murdoch
>>
>>>
>>> Thank you all.
>>>
>>> *****************************
>>> Public Sub Repo()
>>> ds = InputBox("Type in reporting date as YYYY-MM-DD", "reporting
>>> date")
>>>
>>> ''----- weird way to pass the date argument as Windows won't
>>> ''----- execute the command line directly, so I create a .bat
>>>
>>> exestr = "Rterm --restore --save --args " & ds & " < m.in.R > out.
>> txt"
>>> Set fs = CreateObject("Scripting.FileSystemObject")
>>> Set a = fs.CreateTextFile("rpcd.bat", True)
>>> a.writeline (exestr)
>>> a.Close
>>>
>>> ret = Shell("rpcd.bat")
>>> MsgBox ("wait for about 5 seconds as the script runs
>> asynchronously")
>>>
>>> End Sub
>>>
>>> **************m.in.R************
>>> ds=commandArgs(T)[1]
>>>
>>> ans=f.repo(ds)
>>>
>>> q("yes")
>>>
>>> ______________________________________________
>>> R-help_at_r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide http://www.R-project.org/posting-
>> guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>> ______________________________________________
>> R-help_at_r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-
guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

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

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 18 Jan 2008 - 18:13:06 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 18 Jan 2008 - 19:30:07 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive