[Rd] Warning when indexing data.frame with FALSE

Peter Dalgaard p.dalgaard at biostat.ku.dk
Mon Jul 31 14:43:06 CEST 2006


Prof Brian Ripley <ripley at stats.ox.ac.uk> writes:

> On Mon, 31 Jul 2006, hadley wickham wrote:
> 
> > Sorry, a better example is:
> > 
> > > data.frame(a=1)[FALSE]
> > NULL data frame with 1 rows
> > > data.frame(a=1)[NULL]
> > NULL data frame with 1 rows
> > 
> > vs
> > 
> > > data.frame()[FALSE]
> > Warning in is.na(nm) : is.na() applied to non-(list or vector)
> > NULL data frame with 0 rows
> > > data.frame()[NULL]
> > Warning in is.na(nm) : is.na() applied to non-(list or vector)
> > NULL data frame with 0 rows
> 
> It's reasonable:
> 
> > names(data.frame())
> NULL
> 
> which is a problem as data frames are supposed to have names.
> So the bug is in data.frame.

To wit:

> d <- data.frame()
> names(d) <- character(0)
> d[FALSE]
NULL data frame with 0 rows
> d[NULL]
NULL data frame with 0 rows



-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-devel mailing list