Olá, pessoal. Tudo bem?
Segue uma dúvida que acredito que possam me ajudar.
Tenho o seguinte código:
# Pacotes
devtools::install_github('wilsonfreitas/rbcb')
library(rbcb)
library(tidyverse)
library(tibbletime)
# Base de dados.
ipca_livres <- rbcb::get_series(code = list("ipca" = 11428))
Em seguida, crio uma função que faz uma modelagem ARIMA e uma rolling regression.
# Construindo a função ARIMA e rolling regression.
get_ar1 <- function(x){
x_ts <- ts(x, frequency = 12)
fit_sar1 <- arima(x_ts, order = c(1,0,0), seasonal = list(order = c(1,0,0)))
out <- list("beta" = fit_sar1[["coef"]]["ar1"],
"se" = fit_sar1[["var.coef"]]["ar1", "ar1"] %>% sqrt())
}
roll_get_ar1 <- tibbletime::rollify(.f = get_ar1, window = 60, unlist = FALSE)
Após isso, utilizo a função criada e faço um mutate na base original. No entanto, na variável out
é criada uma lista dentro do tibble. Minhha dúvida é como transformar essa variável em duas colunas dentro do data.frame. Eu vi alguma coisa com map_dfr
e map_dfc
mas não sei como poderia usar.
# Calculando a inércia.
inercia <- ipca_livres %>%
dplyr::mutate(out = roll_get_ar1(ipca)) %>%
dplyr::filter(!is.na(out))
Sendo assim, como eu transfiro uma lista que está dentro do data.frame para duas colunas também dentro do data.frame?
Muito obrigado!