rje (version 1.12.1)

fsapply: Fast and loose application of function over list.

Description

Faster highly stripped down version of sapply()

Usage

fsapply(x, FUN)

Value

A vector of results of applying FUN to x.

Arguments

x

a vector (atomic or list) or an expression object.

FUN

the function to be applied to each element of x. In the case of functions like +, the function name must be backquoted or quoted.

Warning

Very loose version of sapply which should really only by used if you're confident about how FUN is applied to each entry in x.

Author

Robin Evans

Details

This is just a wrapper for unlist(lapply(x, FUN)), which will behave as sapply if FUN returns an atomic vector of length 1 each time.

Speed up over sapply is not dramatic, but can be useful in time critical code.

Examples

Run this code

x = list(1:1000)
tmp = fsapply(x, sin)

if (FALSE) {
x = list()
set.seed(142313)
for (i in 1:1000) x[[i]] = rnorm(100)

system.time(for (i in 1:100) sapply(x, function(x) last(x)))
system.time(for (i in 1:100) fsapply(x, function(x) last(x)))
}

Run the code above in your browser using DataLab