问题描述
对于较慢的 model()
,我如何“打开”进度条?
根据 fable 和 fabletools 的开发,它似乎是一个选项......但我无法打开它。
有人能告诉我我错过了什么吗?
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))
)