[R] Testing for warning inside functions

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed May 18 11:29:02 CEST 2005


On Wed, 18 May 2005, Peter Wolf wrote:

> I am looking for a way to get a warning message
> immediately after an evaluation within a function.
> To get error messages you can use geterrmessage().

Well, only in an error handler, as an error normally throws you out of the 
function.  (That is the point of geterrmessage(), to enable error handlers 
to be written.)

To print the message immediately, look up options("warn").  We don't have 
a general warnings handler mechanism, but you can make use of condition 
objects.

> But I found no function that allows me to check for
> warnings.
>
> Five years ago this questions has been posted
> but I haven't found any answer.

What exactly is `this question'?  I see several assertions but no 
question.  (It would have been helpful to give an exact reference to the 
archives.)

> Thanks for any help.
>
> Peter Wolf
>
>
> ------------
>
> For illustration purpose a simple example follows:
> you can get warnings after an error occured or after
> exiting from the function but not at once after
> "x<-matrix(1:3,2,2)":
>
>> options(warn=0)
>> f<-function(x){
>  x<-matrix(1:3,2,2)
>  print(0)
>  warnings()  # no warning is shown
>  print(1)
>  try({xxx})
>  print(2)
>  print(geterrmessage())
>  print(3)
>  warnings()
>  print(4)
> }
>> f()
> [1] 0
> [1] 1
> Fehler in try({ : Objekt "xxx" nicht gefunden
> Zusätzlich: Warnmeldung:
> Datenlänge [3] ist kein Teiler oder Vielfaches der Anzahl der Zeilen [2] in 
> matrix
> [1] 2
> [1] "Fehler in try({ : Objekt \"xxx\" nicht gefunden\n"
> [1] 3
> Warning message:
> Datenlänge [3] ist kein Teiler oder Vielfaches der Anzahl der Zeilen [2] in 
> matrix
> [1] 4

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