Skip to contents

Jam-specific recursive apply

Usage

jam_rapply(x, FUN, how = c("unlist", "list"), ...)

Arguments

x

list

FUN

function to be called on non-list elements in x.

how

character string indicating whether to return the list or whether to call unlist() on the result.

...

additional arguments are passed to FUN.

Value

vector or list based upon argument how.

Details

This function is a very lightweight customization to base::rapply(), specifically that it does not remove NULL entries.

See also

Other jam list functions: cPaste(), heads(), list2df(), mergeAllXY(), mixedSorts(), rbindList(), relist_named(), rlengths(), sclass(), sdim(), uniques(), unnestList()

Examples

L <- list(entryA=c("miR-112", "miR-12", "miR-112"),
   entryB=factor(c("A","B","A","B"),
      levels=c("B","A")),
   entryC=factor(c("C","A","B","B","C"),
      levels=c("A","B","C")),
   entryNULL=NULL)
rapply(L, length)
#> entryA entryB entryC 
#>      3      4      5 
jam_rapply(L, length)
#>    entryA    entryB    entryC entryNULL 
#>         3         4         5         0 

L0 <- list(A=1:3, B=list(C=1:3, D=4:5, E=NULL));
rapply(L0, length)
#>   A B.C B.D 
#>   3   3   2 
jam_rapply(L0, length)
#>   A B.C B.D B.E 
#>   3   3   2   0