R fable::model()“打开”进度条

问题描述

对于较慢的 model(),我如何“打开”进度条? 根据 fablefabletools 的开发,它似乎是一个选项......但我无法打开它。

有人能告诉我我错过了什么吗?

Sys.setenv(TZ = "Etc/UCT")
library(tidyverse)
library(fable)
#> Loading required package: fabletools
library(tictoc)

getoption("fable.show_progress")
#> [1] TRUE
getoption("fable.progress_bar")
#> NULL
options(fable.progress_bar = TRUE)

# Prepare data
aus <- tsibbledata::hh_budget %>% 
  filter(Country == "Australia") %>% 
  select(-Country)

# Create list of all possible combinations
subsets_list <- function(set,subset_size) {
  combn(set,subset_size) %>%
    BBmisc::convertColsToList() %>%
    unname()
}

# All possible aus variable combinations
xregs <-
  map(.x = 1:(length(aus) - 2),.f = subsets_list,set = colnames(aus[3:length(aus)])) %>% 
  unlist(recursive = F)


# Construct formulas
rhs <- map_chr(seq_along(xregs),~ paste(xregs[[.]],collapse = " + "))
lhs <- "Debt"
formulas <- map(paste(lhs,rhs,sep = " ~ "),as.formula)

# Create model specifications
model_specs <- set_names(map(formulas,ARIMA),formulas)

# Estimate models
tic()
aus %>%
  model(!!!model_specs)
#> # A mable: 1 x 31
#>                   `Debt ~ DI`        `Debt ~ Expenditure`
#>                       <model>                     <model>
#> 1 <LM w/ ARIMA(1,1,0) errors> <LM w/ ARIMA(1,0) errors>
#> # ... with 29 more variables: `Debt ~ Savings` <model>,`Debt ~
toc()
#> 8.39 sec elapsed

reprex package (v0.3.0) 于 2021 年 1 月 15 日创建

解决方法

可以通过使用 with_progress() 包中的 progressr 包装您的代码来启用进度条。还可以从进度包文档中找到进一步的自定义:https://cran.r-project.org/web/packages/progressr/index.html

library(fable)
progressr::with_progress(
  tsibbledata::PBS %>% 
    model(SNAIVE(Cost))
)