| listBuilder {crank} | R Documentation |
Build a possibly nested list using the result of a function.
listBuilder(x,FUN=NULL,fargs=NULL)
x |
The object that will be the first argument of FUN, or a
possibly nested list of such objects. |
FUN |
A function that can accept x as its first argument. |
fargs |
A list of the remaining arguments to FUN. |
listBuilder descends the list structure of x if it is a
list until it encounters a non-list element. It then passes that element
as the first argument to FUN and returns the value of FUN.
This may be a list of elements, replacing the original element, hence the
name.
If x is not a list and FUN is NULL, x is returned.
If FUN creates a list from one or more elements of x, a
list or nested list will be returned. Successive calls to listBuilder
can rapidly create very large, deeply nested list structures.
Jim Lemon
# define a function that splits a vector into a list
splitvec<-function(x) {
xlen<-length(x)
if(xlen > 1) {
newx<-vector("list",xlen)
for(newlist in 1:xlen) newx[[newlist]]<-x[newlist]
return(newx)
}
return(x)
}
testlist<-list(list(9,16),list(25,list(36,49)))
listBuilder(testlist,splitvec)