我想计时一下如何使用不同的库计算几个回归模型。 到现在为止我一直在使用这样的东西:
benchmark(
"mod1" = {mod1 <- glm(varOUT~var1+var2+var3+varfact+City, data=myDF, family = "binomial")},
"mod2" = {mod2 <- glmer(varOUT~var1+var2+var3+varfact+(1|City/ID),data=myDF,family = "binomial")},
"mod3" = {mod3 <- glmmTMB(varOUT~var1+var2+var3+varfact+(1|ID),data=myDF,family = "binomial")},
replications=1
)
但是现在我还想添加有关这些回归中的每一个使用多少内存(最大)的信息。我该怎么办?
致谢。
答案 0 :(得分:3)
我认为您正在寻找软件包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
。