Warnes, Gregory R
2004-Apr-20 15:13 UTC
[Rd] Re: [R] More user-friendly error message needed.
> -----Original Message----- > From: r-devel-bounces@stat.math.ethz.ch > [mailto:r-devel-bounces@stat.math.ethz.ch]On Behalf Of Douglas Bates > Sent: Wednesday, April 07, 2004 5:13 PM > To: Warnes, Gregory R > Cc: Shin; r-devel@stat.math.ethz.ch; 'Duncan Murdoch' > Subject: Re: [Rd] Re: [R] More user-friendly error message needed. > > > "Warnes, Gregory R" <gregory_r_warnes@groton.pfizer.com> writes: > > > Perhaps one could create a utility function > > > > has.element <- function(list, name) name %in% names(list) > > > > and then have $ generate a warning (not an error!) when the > named element > > does not exist. > > Because of partial matching, list$name can return a result when > your has.element function returns FALSE.Ash, well simple enough to fix: has.element <- function(list,name) !is.na(pmatch(name,names(list))> > > lst = list(foo = 1:3, bar = LETTERS[1:3]) > > lst$f > [1] 1 2 3 > > has.element <- function(list, name) name %in% names(list) > > has.element(lst, "f") > [1] FALSE > > Before we go too far in speculating about what the $ operator should > or should not return when the name is not matched, let's all remember > that the semantics of the $ operator explicitly state that it should > return NULL and, as Duncan wrote, there are many, many places in the > base code for R that depend upon this behavior. Trust me - you really > don't want to change this.While I do think that it is necessary to preseve the present semantics, it would still be helpful to (at least optionally) have a warning issued when NULL is returned because there is no matching name. This really would help in debugging code. -Greg> > ______________________________________________ > R-devel@stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-devel >LEGAL NOTICE\ Unless expressly stated otherwise, this messag...{{dropped}}