# expand.grid

##### Create a Data Frame from All Combinations of Factor Variables

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)`

```
# NOT RUN {
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- / 64-bit platform)
# }
```

*Documentation reproduced from package base, version 3.4.3, License: Part of R 3.4.3*