ranges-expand: Expand list-columns in a Ranges object

expand_rangesR Documentation

Expand list-columns in a Ranges object

Description

Expand list-columns in a Ranges object

Usage

expand_ranges(
  data,
  ...,
  .drop = FALSE,
  .id = NULL,
  .keep_empty = FALSE,
  .recursive = FALSE
)

Arguments

data

A Ranges object

...

list-column names to expand then unlist

.drop

Should additional list columns be dropped (default = FALSE)? By default expand_ranges() will keep other list columns even if they are nested.

.id

A character vector of length equal to number of list columns. If supplied will create new column(s) with name .id identifying the index of the list column (default = NULL).

.keep_empty

If a list-like column contains empty elements, should those elements be kept? (default = FALSE)

.recursive

If there are multiple list-columns, should the columns be treated as parallel? If FALSE each column will be unnested recursively, otherwise they are treated as parallel, that is each list column has identical lengths. (deafualt = FALSE)

Value

a GRanges object with expanded list columns

Examples

grng <- as_granges(data.frame(seqnames = "chr1", start = 20:23, width = 1000))
grng <- mutate(grng, 
               exon_id = IntegerList(a = 1, b = c(4,5), c = 3, d = c(2,5))
               )
expand_ranges(grng)
expand_ranges(grng, .id = "name")

# empty list elements are not preserved by default
grng <- mutate(grng, 
               exon_id = IntegerList(a = NULL, b = c(4,5), c= 3, d = c(2,5))
               )
expand_ranges(grng)
expand_ranges(grng, .keep_empty = TRUE)
expand_ranges(grng, .id = "name", .keep_empty = TRUE)


sa-lee/plyranges documentation built on April 15, 2024, 12:25 p.m.