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)