Я думаю, что вы ищете пакет bench
. Поскольку вы не предоставили данные, я просто воспользуюсь примером из виньетки:
library(bench)
set.seed(42)
dat <- data.frame(x = runif(10000, 1, 1000), y=runif(10000, 1, 1000))
bnch <- bench::mark(
logical = dat[dat$x > 500, ],
which = dat[which(dat$x > 500), ],
subset =subset(dat, x > 500),
iterations = 150,
check = FALSE
)
bnch
# A tibble: 3 x 14
expression min mean median max `itr/sec` mem_alloc n_gc n_itr total_time result memory time
<chr> <bch> <bch> <bch:> <bch:tm> <dbl> <bch:byt> <dbl> <int> <bch:tm> <list> <list> <lis>
1 logical 392us 532us 505us 1.2ms 1878. 377KB 2 148 78.8ms <data~ <Rpro~ <bch~
2 which 308us 358us 331us 636.45us 2793. 260KB 1 149 53.4ms <data~ <Rpro~ <bch~
3 subset 470us 553us 538us 1.19ms 1808. 494KB 3 147 81.3ms <data~ <Rpro~ <bch~
# ... with 1 more variable: gc <list>
mem_alloc
это то, что вы ищете, я думаю. По умолчанию проверяется, все ли результаты одинаковы. Поскольку в вашем случае могут быть некоторые различия между результатами, я установил значение check = FALSE
.