tests/testthat/_snaps/unnest.md

bad inputs generate errors

Code
  (expect_error(unnest(df, y)))
Output
  <error/vctrs_error_scalar_type>
  Error in `list_sizes()`:
  ! `x[[1]]` must be a vector, not a function.

multiple columns must be same length

Code
  (expect_error(unnest(df, c(x, y))))
Output
  <error/rlang_error>
  Error in `unnest()`:
  ! In row 1, can't recycle input of size 2 to size 3.
Code
  (expect_error(unnest(df, c(x, y))))
Output
  <error/rlang_error>
  Error in `unnest()`:
  ! In row 1, can't recycle input of size 2 to size 3.

unnesting column of mixed vector / data frame input is an error

Code
  (expect_error(unnest(df, x)))
Output
  <error/vctrs_error_ptype2>
  Error in `list_unchop()`:
  ! Can't combine `x[[1]]` <double> and `x[[2]]` <tbl_df>.

unnest() advises on outer / inner name duplication

Code
  unnest(df, y)
Condition
  Error in `unnest()`:
  ! Can't duplicate names between the affected columns and the original data.
  x These names are duplicated:
    i `x`, from `y`.
  i Use `names_sep` to disambiguate using the column name.
  i Or use `names_repair` to specify a repair strategy.

unnest() advises on inner / inner name duplication

Code
  unnest(df, c(x, y))
Condition
  Error in `unnest()`:
  ! Can't duplicate names within the affected columns.
  x These names are duplicated:
    i `a`, within `x` and `y`.
  i Use `names_sep` to disambiguate using the column name.
  i Or use `names_repair` to specify a repair strategy.

unnest() disallows renaming

Code
  unnest(df, c(y = x))
Condition
  Error in `unnest()`:
  ! Can't rename variables in this context.

cols must go in cols

Code
  unnest(df, x, y)
Condition
  Warning:
  `unnest()` has a new interface. See `?unnest` for details.
  i Try `df %>% unnest(c(x, y))`, with `mutate()` if needed.
Output
  # A tibble: 2 x 2
        x y    
    <dbl> <chr>
  1     3 a    
  2     4 b

need supply column names

Code
  unnest(df)
Condition
  Warning:
  `cols` is now required when using `unnest()`.
  i Please use `cols = c(y)`.
Output
  # A tibble: 2 x 2
        x y    
    <int> <chr>
  1     1 a    
  2     2 b

sep combines column names

Code
  out <- df %>% unnest(c(x, y), .sep = "_")
Condition
  Warning:
  The `.sep` argument of `unnest()` is deprecated as of tidyr 1.0.0.
  i Use `names_sep = '_'` instead.

unnest has mutate semantics

Code
  out <- df %>% unnest(z = map(y, `+`, 1))
Condition
  Warning:
  `unnest()` has a new interface. See `?unnest` for details.
  i Try `df %>% unnest(c(z))`, with `mutate()` if needed.

.drop and .preserve are deprecated

Code
  df %>% unnest(x, .preserve = y)
Condition
  Warning:
  The `.preserve` argument of `unnest()` is deprecated as of tidyr 1.0.0.
  i All list-columns are now preserved
Output
  # A tibble: 2 x 2
        x y        
    <dbl> <list>   
  1     3 <chr [1]>
  2     4 <chr [1]>
Code
  df %>% unnest(x, .drop = FALSE)
Condition
  Warning:
  The `.drop` argument of `unnest()` is deprecated as of tidyr 1.0.0.
  i All list-columns are now preserved.
Output
  # A tibble: 2 x 2
        x y        
    <dbl> <list>   
  1     3 <chr [1]>
  2     4 <chr [1]>

.id creates vector of names for vector unnest

Code
  out <- unnest(df, y, .id = "name")
Condition
  Warning:
  The `.id` argument of `unnest()` is deprecated as of tidyr 1.0.0.
  i Manually create column of names instead.


hadley/tidyr documentation built on Feb. 3, 2024, 10:45 a.m.