library(rvest)
library(magrittr)
library(dplyr)
library(tidyr)
library(plotly)
library(stringr)

Сторінка Мінфіна із інфляцією:

page_link <- "http://index.minfin.com.ua/index/infl/?2017"

Парсимо її:

result <- page_link %>% 
  read_html %>% 
  html_node("table.line") %>% 
  html_table()

result
##      X1     X2      X3    X4     X5    X6    X7    X8     X9      X10
## 1    NA январь февраль  март апрель   май  июнь  июль август сентябрь
## 2  2000  104,6   103,3 102,0  101,7 102,1 103,7  99,9  100,0    102,6
## 3  2001  101,5   100,6 100,6  101,5 100,4 100,6  98,3   99,8    100,4
## 4  2002  101,0    98,6  99,3  101,4  99,7  98,2  98,5   99,8    100,2
## 5  2003  101,5   101,1 101,1  100,7 100,0 100,1  99,9   98,3    100,6
## 6  2004  101,4   100,4 100,4  100,7 100,7 100,7 100,0   99,9    101,3
## 7  2005  101,7   101,0 101,6  100,7 100,6 100,6 100,3  100,0    100,4
## 8  2006  101,2   101,8  99,7   99,6 100,5 100,1 100,9  100,0    102,0
## 9  2007  100,5   100,6 100,2  100,0 100,6 102,2 101,4  100,6    102,2
## 10 2008  102,9   102,7 103,8  103,1 101,3 100,8  99,5   99,9    101,1
## 11 2009  102,9   101,5 101,4  100,9 100,5 101,1  99,9   99,8    100,8
## 12 2010  101,8   101,9 100,9   99,7  99,4  99,6  99,8  101,2    102,9
## 13 2011  101,0   100,9 101,4  101,3 100,8 100,4  98,7   99,6    100,1
## 14 2012  100,2   100,2 100,3  100,0  99,7  99,7  99,8   99,7    100,1
## 15 2013  100,2    99,9 100,0  100,0 100,1 100,0  99,9   99,3    100,0
## 16 2014  100,2   100,6 102,2  103,3 103,8 101,0 100,4  100,8    102,9
## 17 2015  103,1   105,3 110,8  114,0 102,2 100,4  99,0   99,2    102,3
## 18 2016  100,9    99,6 101,0  103,5 100,1  99,8  99,9   99,7    101,8
## 19 2017  101,1   101,0 101,8  100,9 101,3 101,6 100,2   99,9    102,0
##        X11    X12     X13    X14
## 1  октябрь ноябрь декабрь За год
## 2    101,4  100,4   101,6  125,8
## 3    100,2  100,5   101,6  106,1
## 4    100,7  100,7   101,4   99,4
## 5    101,3  101,9   101,5  108,2
## 6    102,2  101,6   102,4  112,3
## 7    100,9  101,2   100,9  110,3
## 8    102,6  101,8   100,9  111,6
## 9    102,9  102,2   102,1  116,6
## 10   101,7  101,5   102,1  122,3
## 11   100,9  101,1   100,9  112,3
## 12   100,5  100,3   100,8  109,1
## 13   100,0  100,1   100,2  104,6
## 14   100,0   99,9   100,2   99,8
## 15   100,4  100,2   100,5  100,5
## 16   102,4  101,9   103,0  124,9
## 17    98,7  102,0   100,7  143,3
## 18   102,8  101,8   100,9  112,4
## 19                         110,2

Приведемо до нормального вигляду:

result %<>% 
  dplyr::as_data_frame() %>% 
  dplyr::rename_all(funs(c("date_for_report_year", 1:12, "all"))) %>% 
  dplyr::select(-all) %>% 
  tidyr::drop_na() %>% 
  tidyr::gather(
    key   = date_for_report_month, 
    value = inflation_stat, 
    -date_for_report_year
  ) %>% 
  dplyr::mutate(
    date_for_report = lubridate::ymd(
      paste(date_for_report_year, date_for_report_month, "01", sep = "-")
    ),
    inflation_stat = as.numeric(
      stringr::str_replace_all(inflation_stat, ",", ".")
    )
  ) %>% 
  dplyr::arrange(date_for_report)

result
## # A tibble: 216 x 4
##    date_for_report_year date_for_report_month inflation_stat
##                   <int>                 <chr>          <dbl>
##  1                 2000                     1          104.6
##  2                 2000                     2          103.3
##  3                 2000                     3          102.0
##  4                 2000                     4          101.7
##  5                 2000                     5          102.1
##  6                 2000                     6          103.7
##  7                 2000                     7           99.9
##  8                 2000                     8          100.0
##  9                 2000                     9          102.6
## 10                 2000                    10          101.4
## # ... with 206 more rows, and 1 more variables: date_for_report <date>

Графік:

result %>% 
  plot_ly() %>% 
  add_lines(x = ~date_for_report, y = ~inflation_stat)