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 > > > >______________________________________________ > >[EMAIL PROTECTED] 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 > ______________________________________________ [EMAIL PROTECTED] 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
