[R] More user-friendly error message needed.

Shin sdhyok at email.unc.edu
Wed Apr 7 22:09:47 CEST 2004


Thanks for your kind explanation.
Actually, I just begin to learn R, so not familiar with many behaviors
of R yet. As a user of Python and MATLAB, I understand the problem of
cryptic error messages of loosely-typed languages.

But,if some types of mistakes are often made by users in R interactive
shell, I believe we should try to give more informative messages at
least for the mistakes.
I think the error I reported is one of the mistakes.

Unfortunately, I don't have ability to create a patch for it.
Hopefully, somebody to fix it soon for better R.

Daehyok Shin


On Wed, 2004-04-07 at 15:35, Tony Plate wrote:
> It's actually not that easy to provide the meaningful kind of error message 
> you are asking for.  (Though it would be nice.)
> Consider what happens in the case you give:
> 
> (1) The argument of plot() of evaluated, and has the value NULL
> (2) plot() is called with a single argument, which is NULL
> 
> All the information available inside plot() is that its argument has the 
> value NULL (without getting into meta programming).  However, it would be 
> possible for plot(), or xy.coords(), to print a more meaningful error 
> message like "called with NULL value for x".  This disadvantage of doing 
> this is that if you do it everywhere, a considerable volume of the code 
> becomes tests and error messages, which can make the code less readable and 
> more prone to errors (because of the possibility that some of the tests are 
> buggy themselves).  The weak type checking in the S language exacerbates 
> these problems.  As it currently is, many functions are simple and concise, 
> but provide very cryptic error messages when something goes wrong.  This is 
> the tradeoff.
> 
> One might argue that x$z should cause an error, but it is a 
> long-established behavior that the "$" operator returns NULL when the list 
> element does not exist or is not uniquely identified (this might even be in 
> the written definition of the S language).
> 
> It might be an interesting CS grad student project to build a system that 
> matches cryptic error messages and stack traces against a library of common 
> errors in order to provide less cryptic error messages.
> 
> -- Tony Plate
> 
> At Wednesday 01:07 PM 4/7/2004, Shin wrote:
> >When I tried the following commands, I got a strange message.
> >
> >
> > > x<-data.frame(y=c(1:10))
> > > plot(x$z)
> >Error in xy.coords(x, y, xlabel, ylabel, log) :
> >         x and y lengths differ
> >
> >"The data frame, x, does not have a field named z."
> >may be better user-friendly message for this kind of common error.
> >
> >
> >Daehyok Shin
> >
> >______________________________________________
> >R-help at stat.math.ethz.ch mailing list
> >https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list