La siguiente función se encarga de escoger una serie de tiempo de la base proporcionada.

obt_serie <- function(ser,n.serie,remover=NULL){
  if(n.serie=="aleatorio"){
    renglon <- sample(1:nrow(ser),1)
  } else if(is.numeric(n.serie)==T){
    renglon <- n.serie
  } 
  
  if(is.null(remover)==T){
    s <- ser[renglon,] %>% t() %>% na.omit()
  } else{
    s <- ser[renglon,-(remover)] %>% t() %>% na.omit()
  }
  
}

La función cuenta con tres parametros:

  1. ser es la base que contiene a las series de tiempo
  2. n.serie es el renglón o la serie número \(n\) que vamos a obtener. Puede ser un número, en tal caso nos devolvería esa serie; o la palabra “aleatorio” y esto nos devolvería una serie escogida al azar
  3. remover por default es NULL pero puede ser un número o un vector númerico que indica que columnas remover de la base a la hora de escoger la serie

Para probar la función vamos a variar los parametros

serie1 <- obt_serie(series,10)
serie2 <- obt_serie(series,"aleatorio",1:7)
serie3 <- obt_serie(series,14,c(2,4))
##  [1] "YAF11"  "30"     "1"      "6"      "YEARLY" "1977"   "MICRO1"
##  [8] "19.13"  "21.67"  "21.17"
##  [1] 8458 7323 7796 7339 6650 9032 8400 7431 6961 5346
##  [1] "YAF15"  "1"      "YEARLY" "1976"   "MICRO1" "23180"  "21827" 
##  [8] "32567"  "9717"   "27319"

Ahora, con la siguiente función vamos a graficar las series de tiempo obtenidas

graf_serie <- function(s, tipo=NULL){
  if(is.null(tipo)==T){
    ggplot(data.frame(x=(1:length(s)),y=s),aes(x=x,y=y))+geom_line(aes(color=x))+
      labs(title = "Serie de tiempo", x="Tiempo", y="Valor")+
      scale_color_viridis()+geom_point()
  } else{
    if(tipo=="animado"){
      ggplot(data.frame(x=(1:length(s)),y=s),aes(x=x,y=y))+geom_line(aes(color=x))+
        labs(title = "Serie de tiempo", x="Tiempo", y="Valor")+
        scale_color_viridis()+transition_reveal(x)+geom_point()
    } else if(tipo=="plotly"){
      graf <- ggplot(data.frame(x=(1:length(s)),y=s),aes(x=x,y=y))+
        geom_line()+geom_point()+
        labs(title = "Serie de tiempo", x="Tiempo", y="Valor")
      ggplotly(graf)
    }
  }
}

Esta función cuenta con dos parámetros:

  1. s es la serie de tiempo que se va a graficar
  2. tipo es que tipo de gráfica va a devolver la función

Vamos a ver los ejemplos a continuación

graf_serie(serie1)

graf_serie(serie2,"animado")

graf_serie(serie3,"plotly")