[R] getting informative error messages
Spencer Graves
spencer.graves at pdf.com
Tue May 8 16:40:25 CEST 2007
Hi, Tony:
Are you familiar with the 'debug' command? I agree that more
informative error messages and 'traceback' would be nice, but I've found
the 'debug' facility quite useful. [I even sometimes prepare a shell of
a function 'fn', then say debug(fn) and fn(), and complete writing the
function in its native environment where I can more easily check what
each step does.] I've heard that 'debug' does not work will with S4
class generics, but I have not so far had to deal with that. {There is
also a 'debug' package, which is completely separate from the debug
command in the 'base' package. I've heard that it has more extensive
capabilities, but I've never used it.}
I suspect you may already know 'debug', but for those who don't, I
think it's worth noting its utility for this kind of thing.
Hope this helps.
Spencer Graves
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