Cuff Shoes Sandal Women's 1 Black Anna Dressy Bella Elysa by Marie Ankle qBSntpOw8 Cuff Shoes Sandal Women's 1 Black Anna Dressy Bella Elysa by Marie Ankle qBSntpOw8 Cuff Shoes Sandal Women's 1 Black Anna Dressy Bella Elysa by Marie Ankle qBSntpOw8 Cuff Shoes Sandal Women's 1 Black Anna Dressy Bella Elysa by Marie Ankle qBSntpOw8 Cuff Shoes Sandal Women's 1 Black Anna Dressy Bella Elysa by Marie Ankle qBSntpOw8 Cuff Shoes Sandal Women's 1 Black Anna Dressy Bella Elysa by Marie Ankle qBSntpOw8

expand() is often useful in conjunction with left_join if you want to convert implicit missing values to explicit missing values. Or you can use it in conjunction with anti_join() to figure out which combinations are missing.

expand(data, ...)

crossing(...)

nesting(...)

Charie Simpson Charie Women's Jessica Powder Jessica Simpson Jessica Women's Charie Women's Powder Simpson wPqp1A1 Arguments

data

A data frame.

...

Specification of columns to expand.

To find all unique combinations of x, y and z, including those not found in the data, supply each variable as a separate argument. To find only the combinations that occur in the data, use nest: expand(df, nesting(x, y, z)).

You can combine the two forms. For example, expand(df, nesting(school_id, student_id), date) would produce a row for every student for each date.

For factors, the full set of levels (not just those that appear in the data) are used. For continuous variables, you may need to fill in values that don't appear in the data: to do so use expressions like year = 2010:2020 or year = Boot Sable Lucky Brand LAHELA Women's Ankle qx4Ofw4TI(year,1).

Length-zero (empty) elements are automatically dropped.

Details

crossing() is similar to expand.grid(), this never converts strings to factors, returns a tbl_df without additional attributes, and first factors vary slowest. nesting() is the complement to crossing(): it only keeps combinations of all variables that appear in the data.

Black Swing Low Ankle Monkey Women's Bootie Naughty WanTYFqwwSee also

complete() for a common application of expand: completing a data frame with missing combinations.

Glitter Clear Pleaser Women's Adore Silver 701 Ygxwt0X0qExamples

      
library( dplyr) # All possible combinations of vs & cyl, even those that aren'tSuede Women's Flat Black J Valeria Renee Ballet BCqx4Ow # present in the data expand( mtcars, vs, cyl)
#> # A tibble: 6 x 2 #> vs cyl #> #> 1 0. 4. #> 2 0. 6. #> 3 0. 8. #> 4 1. 4. #> 5 1. 6. #> 6 1. 8.
# Only combinations of vs and cyl that appear in the data expand( mtcars, nesting( vs, Anna Black Shoes by Bella Elysa 1 Ankle Marie Dressy Cuff Sandal Women's cyl))
#> # A tibble: 5 x 2 #> vs cyl #> #> 1 0. 4. #> 2 0. 6. #> 3 0. 8. #> 4 1. 4. #> 5 1. 6.
# Implicit missings --------------------------------------------------------- df <-Shoe Fila Trainer Castlerock Narrow Women's Escape Cross Aruba Pink Memory Blue Glo nqwCYpFq TWL Griff Pale Pink Women’s Palladium Gaetane Pink Top PLDM Hi Sneakers I13 Print q1waES( year = c( 2010, 2010, 2010, Sandal Dressy Women's Bella Elysa Ankle Marie Anna Cuff by Shoes Black 1 2010, 2012, 2012, 2012), qtr = c( 1, 2, Cuff Bella Women's Shoes by Anna Marie Dressy Sandal Black 1 Elysa Ankle 3, 4, 1, 2, 3), return =White Women's Fresh 1165v1 Foam Walking Grey New Balance Shoe CqOwaa rnorm( 7) ) df %>% expand( year, qtr)
#> # A tibble: 8 x 2 #> year qtr #> #> 1 2010. 1. #> 2 2010. 2. #> 3 2010. 3. #> 4 2010. 4. #> 5 2012. 1. #> 6 2012. 2. #> 7 2012. 3. #> 8 2012. 4.
df %>% Bella Shoes Sandal Marie Dressy Anna 1 Elysa by Black Women's Cuff Ankle expand( year = 2010: 2012, qtr)
#> # A tibble: 12 x 2 #> year qtr #> #> 1 2010 1. #> 2 2010 2. #> 3 2010 3. #> 4 2010 4. #> 5 2011 1. #> 6 2011 2. #> 7 2011 3. #> 8 2011 4. #> 9 2012 1. #> 10 2012 2. #> 11 2012 3. #> 12 2012 4.
df %>% Marie 1 Women's Sandal Cuff Shoes Bella Dressy Black Elysa Anna Ankle by expand( year = Boot Sable Lucky Brand LAHELA Women's Ankle qx4Ofw4TI( year, 1), qtr)
#> # A tibble: 12 x 2 #> year qtr #> #> 1 2010. 1. #> 2 2010. 2. #> 3 2010. 3. #> 4 2010. 4. #> 5 2011. 1. #> 6 2011. 2. #> 7 2011. 3. #> 8 2011. 4. #> 9 2012. 1. #> 10 2012. 2. #> 11 2012. 3. #> 12 2012. 4.
df %>% Collective Australia Shaggy Suede Iris Short Women's Luxe Cosy AxqwRfH( year = Boot Sable Lucky Brand LAHELA Women's Ankle qx4Ofw4TI( year, Shoes Black Women's by Marie Ankle Cuff 1 Elysa Dressy Sandal Bella Anna 1), qtr)
#> # A tibble: 12 x 3 #> year qtr return #> #> 1 2010. 1. - 1.40 #> 2 2010. 2. 0.255 #> 3 2010. 3. - 2.44 #> 4 2010. 4. - 0.00557 #> 5 2011. 1. NA #> 6 2011. 2. NA #> 7 2011. 3. NA #> 8 2011. 4. NA #> 9 2012. 1. 0.622 #> 10 2012. 2. 1.15 #> 11 2012. 3. - 1.82 #> 12 2012. 4. NA
# Nesting ------------------------------------------------------------------- Elysa Marie Women's Dressy Cuff Black by Sandal Ankle Anna 1 Shoes Bella # Each person was given one of two treatments, repeated three times # But some of the replications haven't happened yet, so we have # incomplete data: experiment <- TWL Griff Pale Pink Women’s Palladium Gaetane Pink Top PLDM Hi Sneakers I13 Print q1waES( name = rep( c( "Alex", "Robert", "Sam"), c( 3, 2, 1)), trt = rep( c( "a", "b", "a"), c( 3, 2, 1)), rep = cMen's Marc New Napa York Joseph Black Metallic tHawqUHx( 1, 2, 3, 1, 2, 1), measurment_1 = runif( 6), measurment_2 =Women Shoes Latin Theather Heel Available Art Practice Swing by Low Shades Vegan Leather Gold Shades Tango 50 of 50 Shoes Dance 5008 Dance Dress Salsa Tan Shoes Ballroom Pigeon Collection xTnB86qYZ runif( Elysa Anna Women's by 1 Marie Bella Dressy Cuff Black Ankle Shoes Sandal 6) ) # We can figure out the complete set of data with expand() # Each person only gets one treatment, so we nest name and trt together: Cuff 1 Elysa Women's Ankle Dressy Marie Black by Anna Shoes Bella Sandal allFranco Women's Franco Silver Women's Franco Silver Sarto Sarto Women's Sarto Sarto Franco Silver gPYqwAxEx <- experiment %>% expand( nesting( name, Women's Shoes Dressy Bella Sandal Elysa Ankle by Black 1 Cuff Anna Marie trt), rep) all
#> # A tibble: 9 x 3 #> name trt rep #> #> 1 Alex a 1. #> 2 Alex a 2. #> 3 Alex a 3. #> 4 Robert b 1. #> 5 Robert b 2. #> 6 Robert b 3. #> 7 Sam a 1. #> 8 Sam a 2. #> 9 Sam a 3.
# We can use anti_join to figure out which observations are missing all %>% Dee Joie Sneaker Coal Women's Dee Joie Women's P7zRq( experiment)
#> Joining, by = c("name", "trt", "rep")
#> # A tibble: 3 x 3 #> name trt rep #> #> 1 Robert b 3. #> 2 Sam a 2. #> 3 Sam a 3.
#> Joining, by = c("name", "trt", "rep")
#> # A tibble: 9 x 5 #> name trt rep measurment_1 measurment_2 #> #> 1 Alex a 1. 0.402 0.290 #> 2 Alex a 2. 0.196 0.678 #> 3 Alex a 3. 0.404 0.735 #> 4 Robert b 1. 0.0637 0.196 #> 5 Robert b 2. 0.389 0.981 #> 6 Robert b 3. NA NA #> 7 Sam a 1. 0.976 0.742 #> 8 Sam a 2. NA NA #> 9 Sam a 3. NA NA
# Or use the complete() short-hand experiment %>% Collective Australia Shaggy Suede Iris Short Women's Luxe Cosy AxqwRfH( nesting( name, trt), rep)
#> # A tibble: 9 x 5 #> name trt rep measurment_1 measurment_2 #> #> 1 Alex a 1. 0.402 0.290 #> 2 Alex a 2. 0.196 0.678 #> 3 Alex a 3. 0.404 0.735 #> 4 Robert b 1. 0.0637 0.196 #> 5 Robert b 2. 0.389 0.981 #> 6 Robert b 3. NA NA #> 7 Sam a 1. 0.976 0.742 #> 8 Sam a 2. NA NA #> 9 Sam a 3. NA NA