I've seen (I think on SO) the use of a function similar to system.time that assesses the time of multiple functions at once and spits out one output. I can't remember what it was and an internet search with the terms I'm using does not yield the response I want.
Anyone know the name/location of the function I'm talking about?
You want the rbenchmark package and its benchmark
function. (There is also the related and more specialised microbenchmark package.)
Here is the beginning of the example section:
R> example(benchmark)
bnchmrR> # example 1
bnchmrR> # benchmark the allocation of one 10^6-element numeric vector,
bnchmrR> # replicated 100 times
bnchmrR> benchmark(1:10^6)
test replications elapsed relative user.self sys.self user.child sys.child
1 1:10^6 100 0.286 1 0.2 0.08 0 0
bnchmrR> # Example 2
bnchmrR> # A call to benchmark with two named expressions and three replication
bnchmrR> # counts, output sorted by the replication counts and then by the
bnchmrR> # elapsed time:
bnchmrR> means.rep = function(n, m)
bnchmr+ mean(replicate(n, rnorm(m)))
bnchmrR> means.pat = function(n, m)
bnchmr+ colMeans(array(rnorm(n*m), c(m, n)))
bnchmrR> benchmark(
bnchmr+ rep=means.rep(100, 100),
bnchmr+ pat=means.pat(100, 100),
bnchmr+ replications=10^(1:3),
bnchmr+ order=c('replications', 'elapsed'))
test replications elapsed relative user.self sys.self user.child sys.child
4 pat 10 0.011 1.00000 0.02 0 0 0
1 rep 10 0.015 1.36364 0.02 0 0 0
5 pat 100 0.107 9.72727 0.10 0 0 0
2 rep 100 0.155 14.09091 0.16 0 0 0
6 pat 1000 1.073 97.54545 1.07 0 0 0
3 rep 1000 1.553 141.18182 1.55 0 0 0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With