listCrawler {crank}R Documentation

Descend a list, applying a function to each element.

Description

Descend a possibly nested list, seeking the element that has the extreme value of a function.

Usage

 listCrawler(x,FUN=NULL,maxval=TRUE,
  retval=list(indx=vector("numeric",0),element=NULL,value=NA))

Arguments

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.

maxval

Whether to look for maximal (TRUE) or minimal (FALSE) values of the function FUN.

retval

The list that is eventually returned.

Details

listCrawler descends the list structure of x applying FUN to any non-list elements it encounters. If the value of FUN is larger or smaller than the current extremum (depending upon the value of maxval), the new value becomes the current extremum. The default value of FUN just takes the value of the elements.

Value

A list containing:

indx

the indices of the element producing the extreme value of FUN.

element

The element that produced the extremum.

value

The extreme value of FUN.

Author(s)

Jim Lemon

See Also

list, listBuilder

Examples

 # a simple example using the square root function
 testlist<-list(list(9,16),list(25,list(36,49)))
 # first get the default maximum
 listCrawler(testlist,sqrt)
 # then the minimum
 listCrawler(testlist,sqrt,maxval=FALSE)

[Package crank version 1.1-2 Index]