Для таких экспериментов я бы порекомендовал, например, пакет microbenchmark среди других вместо вызовов system.time()
, поскольку эти пакеты пытаются справиться с задачей с минимальными издержками и повышенной точностью (результаты в наносекундах).1004 *
Для этого потребуется написать некоторые функции, сохранить выходные данные этих функций в глобальной среде, а затем запустить эксперименты с конкурирующими функциями.
Небольшой пример:
foo <- function(x) assign(x, rnorm(1000), envir = .GlobalEnv)
boo <- function(x) assign(x, rbeta(1000, 0.1, 0.1), envir = .GlobalEnv)
res <- microbenchmark(foo("normal distr"), boo("beta distr"), times=100)
В этом примере НЕ будут сохранены ваши отдельные выходные данные, поскольку они будут перезаписаны во всех прогонах.Но вы могли бы написать внутренние функции, чтобы использовать заданные семена и добавить в список в глобальной среде, если вам это действительно нужно.