intro.Rmd
Пакет для проекта Кассандра :)
Прогнозирование российских макро-экономических показателей.
Есть три кита, для которых заведено три отдельных репозитория в рамках проекта.
Репозиторий данных. В папке raw
по дням скачивания содержатся отконвертированные из ужаса .csv
файлы.
devtools::install_github("kassandra-ru/kassandr")
Сначала затягиваем репозиторий с данными на жёсткий диск.
Типичный пример скрипта, скачивающего свежие данные.
Смотрим, что скачивает kassandr
:
watchdog
## url
## 1 http://www.gks.ru/free_doc/new_site/prices/potr/I_ipc.xlsx
## 2 http://www.gks.ru/free_doc/new_site/vvp/kv/tab5a.xls
## 3 http://www.gks.ru/free_doc/new_site/vvp/kv/tab9a.xls
## 4 http://www.gks.ru/free_doc/new_site/vvp/kv/tab9.xls
## 5 http://www.gks.ru/free_doc/new_site/vvp/kv/tab6b.xls
## 6 http://www.cbr.ru/hd_base/mkr/mkr_monthes/
## 7 http://www.gks.ru/free_doc/new_site/population/urov/urov_12kv.doc
## 8 http://www.gks.ru/bgd/regl/b18_02/IssWWW.exe/Stg/d010/1-08.doc
## 9 http://www.gks.ru/bgd/regl/b18_02/IssWWW.exe/Stg/d010/1-03.doc
## 10 http://www.gks.ru/bgd/regl/b18_02/IssWWW.exe/Stg/d010/1-11.doc
## 11 http://www.cbr.ru/vfs/statistics/credit_statistics/M2-M2_SA.xlsx
## 12 http://www.cbr.ru/hd_base/mrrf/mrrf_m/
## 13 http://www.gks.ru/storage/mediabank/ind_okved2(1).xlsx
## 14 https://www.cbr.ru/vfs/statistics/credit_statistics/trade/trade.xls
## 15 http://www.gks.ru/bgd/regl/b19_02/IssWWW.exe/Stg/d010/1-06-0.xlsx
## 16
## 17 https://gks.ru/storage/mediabank/ind-baza-2018.xlsx
## file_raw file_main processing univariate
## 1 i_ipc.xlsx i_ipc.csv convert_i_ipc_xlsx TRUE
## 2 tab5a.xls tab5a.csv convert_tab5a_xls TRUE
## 3 tab9a.xls tab9a.csv convert_tab9a_xls TRUE
## 4 tab9.xls tab9.csv convert_tab9_xls TRUE
## 5 tab6b.xls tab6b.csv convert_tab6b_xls TRUE
## 6 lendrate.html lendrate.csv convert_lendrate FALSE
## 7 urov_12kv.doc urov_12kv.csv convert_urov_12kv_doc FALSE
## 8 1-08.doc 1-08.csv convert_1_nn_doc TRUE
## 9 1-03.doc 1-03.csv convert_1_nn_doc TRUE
## 10 1-11.doc 1-11.csv convert_1_nn_doc TRUE
## 11 m2-m2_sa.xlsx m2-m2_sa.csv convert_m2_m2_sa_xlsx TRUE
## 12 reserves.html reserves.csv convert_reserves FALSE
## 13 ind_okved2.xlsx ind_okved2.csv convert_ind_okved2_xlsx FALSE
## 14 trade.xls trade.csv convert_trade_xls FALSE
## 15 1-06-0.xlsx invest.csv convert_1_06_0_xlsx TRUE
## 16 exchangerate.csv parse_exchangerate TRUE
## 17 ind_baza_2018.xlsx ind_baza_2018.csv convert_ind_baza_2018_xlsx FALSE
## frequency
## 1 12
## 2 4
## 3 4
## 4 4
## 5 4
## 6 12
## 7 12
## 8 12
## 9 12
## 10 12
## 11 12
## 12 12
## 13 NA
## 14 12
## 15 4
## 16 NA
## 17 NA
## comment
## 1 Monthly chained CPI from Russian Statistical Agency
## 2 Gross domestic product quarterly current prices
## 3 Deflator index in percent to the previous quarter
## 4 Deflator index in percent to the previous quarter early data
## 5 Gross domestic product quarterly 2016 prices
## 6 Monthly lending rate multiple duration periods
## 7 Real disposable income percentage to previous period and to same month of previous year
## 8 Agricultural index
## 9 Construction
## 10 Budget
## 11 Seasonally adjusted M2
## 12 Reserves data from cbr
## 13 Industrial production index
## 14 Trade statistics
## 15 Fixed capital investment
## 16 Exchange rate from cbr
## 17 Industrial production index, new edition, base year = 2018
При скачивании некоторых показателей используется конвертация .doc файлов. Чтобы она работала должен быть установлен libre office. И R должен знать как его найти.
info = Sys.info() # получаем информацию о системе if (info[1] == "Linux") { set_libreoffice_path("/usr/bin/libreoffice") # ubuntu or macos Sys.setenv(LD_LIBRARY_PATH = "/usr/lib/libreoffice/program/") # ubuntu protection against libreglo.so not found } if (info[1] == "Windows") { Sys.setenv("TAR" = "internal") # if install_github() fails on Windows OS set_libreoffice_path("C:/Program Files/LibreOffice/program/soffice.exe") # windows }
Далее всё просто:
path = "~/Downloads" # прописываем путь к папке, где хранятся данные download_log_new = download_statistics(path, watchdog)
Смотрим, что корректно скачалось и конвертировалось:
download_log_new
## url
## 1 http://www.gks.ru/free_doc/new_site/prices/potr/I_ipc.xlsx
## 2 http://www.gks.ru/free_doc/new_site/vvp/kv/tab5a.xls
## 3 http://www.gks.ru/free_doc/new_site/vvp/kv/tab9a.xls
## 4 http://www.gks.ru/free_doc/new_site/vvp/kv/tab9.xls
## 5 http://www.gks.ru/free_doc/new_site/vvp/kv/tab6b.xls
## 6 http://www.cbr.ru/hd_base/mkr/mkr_monthes/
## 7 http://www.gks.ru/free_doc/new_site/population/urov/urov_12kv.doc
## 8 http://www.gks.ru/bgd/regl/b18_02/IssWWW.exe/Stg/d010/1-08.doc
## 9 http://www.gks.ru/bgd/regl/b18_02/IssWWW.exe/Stg/d010/1-03.doc
## 10 http://www.gks.ru/bgd/regl/b18_02/IssWWW.exe/Stg/d010/1-11.doc
## 11 http://www.cbr.ru/vfs/statistics/credit_statistics/M2-M2_SA.xlsx
## 12 http://www.cbr.ru/hd_base/mrrf/mrrf_m/
## 13 http://www.gks.ru/storage/mediabank/ind_okved2(1).xlsx
## 14 https://www.cbr.ru/vfs/statistics/credit_statistics/trade/trade.xls
## 15 http://www.gks.ru/bgd/regl/b19_02/IssWWW.exe/Stg/d010/1-06-0.xlsx
## 16
## 17 https://gks.ru/storage/mediabank/ind-baza-2018.xlsx
## file_raw file_main processing univariate
## 1 i_ipc.xlsx i_ipc.csv convert_i_ipc_xlsx TRUE
## 2 tab5a.xls tab5a.csv convert_tab5a_xls TRUE
## 3 tab9a.xls tab9a.csv convert_tab9a_xls TRUE
## 4 tab9.xls tab9.csv convert_tab9_xls TRUE
## 5 tab6b.xls tab6b.csv convert_tab6b_xls TRUE
## 6 lendrate.html lendrate.csv convert_lendrate FALSE
## 7 urov_12kv.doc urov_12kv.csv convert_urov_12kv_doc FALSE
## 8 1-08.doc 1-08.csv convert_1_nn_doc TRUE
## 9 1-03.doc 1-03.csv convert_1_nn_doc TRUE
## 10 1-11.doc 1-11.csv convert_1_nn_doc TRUE
## 11 m2-m2_sa.xlsx m2-m2_sa.csv convert_m2_m2_sa_xlsx TRUE
## 12 reserves.html reserves.csv convert_reserves FALSE
## 13 ind_okved2.xlsx ind_okved2.csv convert_ind_okved2_xlsx FALSE
## 14 trade.xls trade.csv convert_trade_xls FALSE
## 15 1-06-0.xlsx invest.csv convert_1_06_0_xlsx TRUE
## 16 exchangerate.csv parse_exchangerate TRUE
## 17 ind_baza_2018.xlsx ind_baza_2018.csv convert_ind_baza_2018_xlsx FALSE
## frequency
## 1 12
## 2 4
## 3 4
## 4 4
## 5 4
## 6 12
## 7 12
## 8 12
## 9 12
## 10 12
## 11 12
## 12 12
## 13 NA
## 14 12
## 15 4
## 16 NA
## 17 NA
## comment
## 1 Monthly chained CPI from Russian Statistical Agency
## 2 Gross domestic product quarterly current prices
## 3 Deflator index in percent to the previous quarter
## 4 Deflator index in percent to the previous quarter early data
## 5 Gross domestic product quarterly 2016 prices
## 6 Monthly lending rate multiple duration periods
## 7 Real disposable income percentage to previous period and to same month of previous year
## 8 Agricultural index
## 9 Construction
## 10 Budget
## 11 Seasonally adjusted M2
## 12 Reserves data from cbr
## 13 Industrial production index
## 14 Trade statistics
## 15 Fixed capital investment
## 16 Exchange rate from cbr
## 17 Industrial production index, new edition, base year = 2018
## access_date download_status processing_status
## 1 2020-06-30 success success
## 2 2020-06-30 success success
## 3 2020-06-30 success success
## 4 2020-06-30 success success
## 5 2020-06-30 success success
## 6 2020-06-30 success success
## 7 2020-06-30 success success
## 8 2020-06-30 success success
## 9 2020-06-30 success success
## 10 2020-06-30 success success
## 11 2020-06-30 success success
## 12 2020-06-30 success success
## 13 2020-06-30 success success
## 14 2020-06-30 success success
## 15 2020-06-30 success success
## 16 2020-06-30 <NA> success
## 17 2020-06-30 success success
## hash_raw hash_main
## 1 9eb24c4a3aec114045f6f2b8323f1e57 5b7e26c129bfa1bf3a7a765279524cbb
## 2 92991231b04e6146c90654237e83aa53 4619c09e5c637dd4668ad7e4289da6aa
## 3 283a0ae528bb283b99c1d1d16720d782 e27d70dc05a64b62678f0bcbd99bb49f
## 4 77b735f84e1b848187c18c36d45b2a7a c7b32eeafb3f478080982da795fd8985
## 5 316f98edfe372e4d51f47da48875ace3 0db63ef9871175240d157acd5d60152d
## 6 462794eff08f10bd105e095f3934cc3c c195fc0b21fb2c30180d093a5d79efc9
## 7 8ffc6cc247d1106e64e3d6a3671d8c87 a3728d0c434454a0cdd20c706977ad37
## 8 603bfcc199bffafbe0269afa0524449b aaf668d17f19466bbeda62d6f92739dc
## 9 79f38760795ceb8ede4e0e69eca6c508 775406d5c38e02ff22c67f0d88ed5b1c
## 10 eed1162ebe3fa98840e42b8e7da35db5 ab566475f7cc4def35bc5a84cae2024f
## 11 b5e246786f74f92450f161cac263dfec e2e82ae03f326509d0de728fac2cdb7b
## 12 2cde1cbf9cd1fc183cb161dc521e3357 a9c5608de410f0eef76534bcc352bd0e
## 13 c8d103cd2c21879fc139daef90761d33 b874291aa8ba04861c99c9f0e0bd7ec8
## 14 bf1dcdc1743b5be9d9410e5fb6ba82aa 7998bfccee27b9efc16728dd576d7379
## 15 77bc0e03ffede902111dc075117d26ce 6a9c2a6e0fc842db016dd0018aaf8c3e
## 16 <NA> c69704a566cce4666757842b69af9c33
## 17 820f7b461715e2e5f635ae4614e37ccd 65816a81701d042be27b8050e11e8b77
Исходные файлы добавляем в .gitignore
Забрасываем обновлённые данные в репозиторий на гитхабе.
Затягиваем актуальную версию пакета с гитхаба на жёсткий диск.
Встаём в локальную папку пакета.
setwd("путь к пакету")
В папке R
в файле converters.R
пишем новый конвертор. Лучше не править старые, а дописывать новые!
Проверяем его работоспособность.
load_all()
Добавляем в табличку watchdog
нужные данные.
Записываем обновленный watchdog
в пакет.
use_data(watchdog)
check() pkgdown::build_site()