我正在构建数十个预测模型,以确定一个冠军模型。我正在处理千兆字节的数据,因此跟踪运行时间很重要。
我想以列表类型的格式构建我的所有模型,因此我不必在全局环境中管理所有不同的模型名称。但是,似乎获得每个模型的时间的唯一方法是拥有单独的命名对象。
这是一种接近我正在寻找的基本方法:
library(tidyverse)
# Basic Approach
Time_1 <- system.time(
Model_1 <- lm(am ~ disp, mtcars)
)
Time_2 <- system.time(
Model_2 <- lm(am ~ disp + cyl, mtcars)
)
# etc. for dozens more
Time_List <-
mget(ls(pattern = "Time")) %>%
bind_rows()
但是,如您所见,我必须手动命名每个模型和时间记录。我正在寻找类似于使用以下代码生成的表的内容,其中“xxx”是运行时间的实际记录。
# Tribble Output
tribble(
~Model_Name, ~Model_Function, ~Run_Time,
"Model_1", lm(am ~ disp, mtcars), "xxx",
"Model_2", lm(am ~ disp + cyl, mtcars), "xxx"
)
# A tibble: 2 × 3
Model_Name Model_Function Run_Time
<chr> <list> <chr>
1 Model_1 <S3: lm> xxx
2 Model_2 <S3: lm> xxx
无论使用什么包,我都会很感激提供的任何输入。