Como usar purrr::invoke_map() sem carregar pacote?

Olá, pessoal! Tudo bem?

Estou fazendo um código que queria que funcionasse sem a necessidade de carregar os pacotes. Então, por exemplo, no código abaixo crio uma lista com as funções que quero usar para depois utilizar a função purrr::invoke_map() da seguinte forma:

## Primeiro
by_grupos <- by_grupos %>%
  dplyr::mutate(
    params = purrr::map(
      .x = ts,
      ~list(
        auto.arima = list(y = .x),
        ets = list(y = .x),
        bats = list(y = .x))
    ),
    params = purrr::map(.x = params, .f = ~tibble::enframe(.x, name = "f", value = "params"))
  )

E usando a função purrr::invoke_map temos:

by_grupos <- by_grupos %>%
  dplyr::mutate(
    models = purrr::map(
      .x = params,
      ~.x %>% dplyr::mutate(
        fit = purrr::invoke_map(.f = f, .x = params)
      )
    )
  )  

No entanto, recebo o seguinte erro:

> Erro: Problem with `mutate()` input `models`.
> x Problem with `mutate()` input `fit`.
> x não foi possível encontrar a função "auto.arima"
> i Input `fit` is `invoke_map(.f = f, .x = params)`.
> i Input `models` is `map(.x = params, ~.x %>% mutate(fit = invoke_map(.f = f, .x = params)))`.

Alguém tem alguma ideia de como posso fazer para usar a função invoke_map com o ::, por exemplo, forecast::auto.arima().

Muito obrigado!

1 curtida

Como não possuo todos os objetos utilizados no seu código, tenho apenas uma intuição: ao invés de usar a função auto.arima() como você fez, tente chamar a função junto com o seu pacote forecast::auto.arima(). Isso funciona?

1 curtida