[R] getting informative error messages

Spencer Graves spencer.graves at pdf.com
Tue May 8 19:58:37 CEST 2007

Dear Prof. Ripley: 

      1.  I very much appreciate your contributions to the R project. 

      2.  Whether with release 2.4.0 or earlier, I noticed that 
'traceback()' had become less informative.  This loss was more than 
offset when I learned to use the 'debug' function in the 'base' 
package:  It increased my productivity so much that it helped complete 
my transition from S-Plus:  The last few times I had to use S-Plus, I 
ported them to R, got the code working using 'debug', then ported the 
results back to S-Plus.  That was quicker for me than debugging directly 
in S-Plus.

      3.  Thanks again for your many contributions to the R project and 
to my education more generally. 

      Best Wishes,
      Spencer Graves

Prof Brian Ripley wrote:
> It is not clear to me what you want here.
> Errors are tagged by a 'call', and f(1:3) is the innermost 'call' (special 
> primitives do not set a context and so do not count if you consider '[' 
> to be a function).
> The message could tell you what the type was, but it does not and we have 
> lost the pool of active contributors we once had to submit tested patches 
> for things like that.
> On Mon, 7 May 2007, Tony Plate wrote:
>> Certain errors seem to generate messages that are less informative than
>> most -- they just tell you which function an error happened in, but
>> don't indicate which line or expression the error occurred in.
>> Here's a toy example:
>>> f <- function(x) {a <- 1; y <- x[list(1:3)]; b <- 2; return(y)}
>>> options(error=NULL)
>>> f(1:3)
>> Error in f(1:3) : invalid subscript type
>>> traceback()
>> 1: f(1:3)
>> In this function, it's clear that the error is in subscripting 'x', but
>> it's not always so immediately obvious in lengthier functions.
>> Is there anything I can do to get a more informative error message in
>> this type of situation?  I couldn't find any help in the section
>> "Debugging R Code" in "R-exts" (or anything at all relevant in "R-intro").
>> (Different values for options(error=...) and different formatting of the
>> function made no difference.)
>> -- Tony Plate
>>> sessionInfo()
>> R version 2.5.0 (2007-04-23)
>> i386-pc-mingw32
>> locale:
>> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
>> States.1252;LC_MONETARY=English_United
>> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>> attached base packages:
>> [1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
>> [7] "base"
>> other attached packages:
>> tap.misc
>>    "1.0"
>> ______________________________________________
>> R-help at stat.math.ethz.ch 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.

More information about the R-help mailing list