R: Transform a list of elements with similar structure into a...

list.unzip {rlist} | R Documentation

## Transform a list of elements with similar structure into a list of decoupled fields

### Description

Transform a list of elements with similar structure into a list of decoupled fields

### Usage

    list.unzip(.data, .fields = c("intersect", "union"), ...,
      .aggregate = "simplify2array", .missing = NA)

### Arguments

`.data` | A `list` of elements containing common fields
`.fields` | `'intersect'` to select only common fields for all `.data`'s elements. `'union'` to select any field that is defined in any elements in `.data`.
`...` | The custom aggregate functions. Can be a named list of functions or character vectors. If a function is specified as a list of functions, then the functions will be evaluated recursively on the result of the field. Use `identity` to avoid aggregating results. Use `NULL` to remove certain field.
`.aggregate` | The default aggregate function, by default, `simplify2array`. Can be a function, character vector or a list of functions. Use `identity` to avoid aggregating results.
`.missing` | When `.fields` is `'union'` and some elements do not contain certain fields, then `NULL` will be replaced by the value of `.missing`, by default, `NA`. This often makes the result more friendly.

### See Also

`list.zip`

### Examples

    list.unzip(list(p1 = list(a = 1, b = 2), p2 = list(a = 2, b = 3)))
    list.unzip(list(p1 = list(a = 1, b = 2), p2 = list(a = 2, b = 3, c = 4)))
    list.unzip(list(p1 = list(a = 1, b = 2), p2 = list(a = 2, b = 3, c = 4)), 'union')
    list.unzip(list(p1 = list(a = 1, b = 2), p2 = list(a = 2, b = 3, c = 4)), 'union', a = 'identity')
    list.unzip(list(p1 = list(a = 1, b = 2), p2 = list(a = 2, b = 3, c = 4)), 'intersect', a = NULL)

    x <-
     list(april = list(n_days = 30,
       holidays = list(list('2015-04-01', 'april fools'),
     list('2015-04-05', 'easter')),
       month_info = c(number = '4', season = 'spring')),
         july = list(n_days = 31,
     holidays = list(list('2014-07-04', 'july 4th')),
       month_info = c(number = '7', season = 'summer')))
    list.unzip(x, holidays = c('list.ungroup', 'unname', 'list.stack',
      function(df) setNames(df, c("date", "name"))))

[Package rlist version 0.4.6.1 Index]