expand.grid
Create a Data Frame from All Combinations of Factors
Create a data frame from all combinations of the supplied vectors or factors. See the description of the return value for precise details of the way this is done.
Usage
expand.grid(..., KEEP.OUT.ATTRS = TRUE, stringsAsFactors = TRUE)
Arguments
 ...
 vectors, factors or a list containing these.
 KEEP.OUT.ATTRS
 a logical indicating the
"out.attrs"
attribute (see below) should be computed and returned.  stringsAsFactors
 logical specifying if character vectors are converted to factors.
Value

A data frame containing one row for each combination of the supplied
factors. The first factors vary fastest. The columns are labelled by
the factors if these are supplied as named arguments or named
components of a list. The row names are ‘automatic’.Attribute
"out.attrs"
is a list which gives the dimension and
dimnames for use by predict
methods.
Note
Conversion to a factor is done with levels in the order they occur in the character vectors (and not alphabetically, as is most common when converting to factors).
References
Chambers, J. M. and Hastie, T. J. (1992) Statistical Models in S. Wadsworth & Brooks/Cole.
See Also
combn
(package utils
) for the generation
of all combinations of n elements, taken m at a time.
Examples
library(base)
require(utils)
expand.grid(height = seq(60, 80, 5), weight = seq(100, 300, 50),
sex = c("Male","Female"))
x < seq(0, 10, length.out = 100)
y < seq(1, 1, length.out = 20)
d1 < expand.grid(x = x, y = y)
d2 < expand.grid(x = x, y = y, KEEP.OUT.ATTRS = FALSE)
object.size(d1)  object.size(d2)
##> 5992 or 8832 (on 32 / 64bit platform)
Community examples
rachhpal1176
at
Feb 13, 2019
base
v3.5.2
```r dice1 < 1:6 dice2 < 1:6 expand.grid(dice1, dice2) ```