vec_expand_grid {vctrs} | R Documentation |
Create a data frame from all combinations of the inputs
Description
vec_expand_grid()
creates a new data frame by creating a grid of all
possible combinations of the input vectors. It is inspired by
expand.grid()
. Compared with expand.grid()
, it:
Produces sorted output by default by varying the first column the slowest, rather than the fastest. Control this with
.vary
.Never converts strings to factors.
Does not add additional attributes.
Drops
NULL
inputs.Can expand any vector type, including data frames and records.
Usage
vec_expand_grid(
...,
.vary = "slowest",
.name_repair = "check_unique",
.error_call = current_env()
)
Arguments
... |
Name-value pairs. The name will become the column name in the resulting data frame. |
.vary |
One of:
|
.name_repair |
One of |
.error_call |
The execution environment of a currently
running function, e.g. |
Details
If any input is empty (i.e. size 0), then the result will have 0 rows.
If no inputs are provided, the result is a 1 row data frame with 0 columns.
This is consistent with the fact that prod()
with no inputs returns 1
.
Value
A data frame with as many columns as there are inputs in ...
and as many
rows as the prod()
of the sizes of the inputs.
Examples
vec_expand_grid(x = 1:2, y = 1:3)
# Use `.vary` to match `expand.grid()`:
vec_expand_grid(x = 1:2, y = 1:3, .vary = "fastest")
# Can also expand data frames
vec_expand_grid(
x = data_frame(a = 1:2, b = 3:4),
y = 1:4
)