expand.grid() (PR#301)

Jonathan Rougier J.C.Rougier@durham.ac.uk
Fri, 29 Oct 1999 16:38:30 +0100 (BST)


On Fri, 29 Oct 1999 maechler@stat.math.ethz.ch wrote:

> Well, that is not quite true,
> 
>       expand.grid(NULL)  
> 
> gives NULL  without your change 
> but gives an error with your change...
> since
> 	data.frame(NULL)  
> fails.
> 
> The following (only this one of all 4 possibilities  as/no-as  x NULL/list() )
> would work
> 
> > as.data.frame(list())
> NULL data frame with 0 rows
> 
> ---
> Better patch ? (and what does S do ?)

Hmm ... Splus returns a data frame for a single variables or for a NULL
variable, the latter looking a bit strange:

> expand.grid(factor(c("L", "H")))
  Var1 
1    L
2    H
> expand.grid(NULL)                   
  Var1 
1   NA
0   NA

I think your patch is a good one.  So you would suggest

	if (nargs == 1)
	  return(if (is.null(args[[1]])) as.data.frame(list()) else
	    data.frame(args))

Cheers, Jonathan.

Jonathan Rougier                       Science Laboratories
Department of Mathematical Sciences    South Road
University of Durham                   Durham DH1 3LE

"[B]egin upon the precept ... that the things we see are to be 
 weighed in the scale with what we know"  (Meredith, 1879, The Egoist)

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._