The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
fedstatAPIr представляет собой неофициальное API для загрузки данных с fedstat.ru (система ЕМИСС Росстата) с заданными фильтрами.
Пакет позволяет сэкономить ⏳ и нервы 😡 при работе с бесконечно падающим ЕМИСС через автоматическое повторение неотвеченных запросов и сохранение ранее использованных настроек фильтров.
На данный момент пакет доступен только на R, Вы можете загрузить fedstatAPIr из CRAN, используя следующую команду в R:
install.packages("fedstatAPIr")
Версия для разработки может быть загружена следующей командой:
# install.packages("devtools")
::install_github("DenchPokepon/fedstatAPIr") devtools
Загрузим данные по инфляции к предыдущему месяцу и к соотв. месяцу прошлого года за январь 2023 года по всем товарам и услугам только по России
Возьмем номер индикатора из URL веб страницы с данными https://fedstat.ru/indicator/31074
library(fedstatAPIr)
<- fedstat_data_load_with_filters(
data indicator_id = "31074",
filters = list(
"Классификатор объектов административно-территориального деления (ОКАТО)" = "Российская Федерация",
"Виды показателя" = c(
"К соответствующему периоду предыдущего года",
"К предыдущему месяцу"
),"Период" = "Январь",
"Год" = "2023",
"Виды товаров и услуг" = "*"
) )
EI | ObsValue | PERIOD | Time | s_POK | s_grtov | s_OKATO | s_OKATO_code | s_POK_code | s_grtov_code |
---|---|---|---|---|---|---|---|---|---|
процент | 100.84 | январь | 2023 | К предыдущему месяцу | Все товары и услуги | Российская Федерация | 643 | 44 | 1 |
процент | 111.77 | январь | 2023 | К соответствующему периоду предыдущего года | Все товары и услуги | Российская Федерация | 643 | 9 | 1 |
процент | 100.78 | январь | 2023 | К предыдущему месяцу | Все товары | Российская Федерация | 643 | 44 | 2 |
процент | 111.15 | январь | 2023 | К соответствующему периоду предыдущего года | Все товары | Российская Федерация | 643 | 9 | 2 |
процент | 100.30 | январь | 2023 | К предыдущему месяцу | Базовый индекс потребительских цен | Российская Федерация | 643 | 44 | 3 |
процент | 113.72 | январь | 2023 | К соответствующему периоду предыдущего года | Базовый индекс потребительских цен | Российская Федерация | 643 | 9 | 3 |
Необходимо учитывать, что ЕМИСС часто лагает, поэтому не стоит загружать больше 500 тысяч строк за один запрос. В случае большой выгрузки желательно разбить запросы на подзапросы, в ином случае ЕМИСС может игнорировать такие большие запросы
Фильтры задаются в форме JSON:
{
"Название поля фильтра 1": ["Значение фильтра 1", "Значение фильтра 2"],
"Название поля фильтра 2": ["Значение фильтра 1", "Значение фильтра 2"],
...
}
Где Название поля фильтра 1
может быть, например
Год
, а Значение фильтра 1
для этого поля
2023
.
Поля и значения фильтров берутся прямо из названий фильтров на
fedstat.ru, в filters
они должны быть такими же. Однако
разные регистры фильтров и лишние пробелы не сломают фильтрацию.
Доступны следующие специальные значения фильтров:
Можно не указывать какой-то фильтр вообще, тогда по умолчанию будет использоваться *.
Библиотека стремится поддерживать загрузку всех доступных на fedstat индикаторов, на данный момент поддерживается абсолютное большинство, но в некоторых случаях специальных индикаторов могут быть непредвиденные баги.
Внутри пакета доступна база данных всех индикаторов, по которым
представлены данные на fedstat.ru. Она содержится в переменной
fedstat_indicators_names_database
.
Все доступные фильтры каждого индикатора можно посмотреть через вызов функции
<- fedstat_get_data_ids("31074") data_ids
Результат выглядит следующим образом
filter_field_id | filter_field_title | filter_value_id | filter_value_title | filter_field_object_ids |
---|---|---|---|---|
0 | Показатель | 31074 | Индексы потребительских цен на товары и услуги | filterObjectIds |
3 | Год | 2002 | 2002 | columnObjectIds |
3 | Год | 2003 | 2003 | columnObjectIds |
3 | Год | 2004 | 2004 | columnObjectIds |
3 | Год | 2005 | 2005 | columnObjectIds |
3 | Год | 2006 | 2006 | columnObjectIds |
Также можно посмотреть полный внутренний словарь (соотношения кодов и
человеческих названий сущностей) через задание аргумента
return_type = dictionary
library(fedstatAPIr)
<- fedstat_data_load_with_filters(
data indicator_id = "31074",
filters = list(
"Классификатор объектов административно-территориального деления (ОКАТО)" = "Российская Федерация",
"Виды показателя" = c(
"К соответствующему периоду предыдущего года",
"К предыдущему месяцу"
),"Период" = "Январь",
"Год" = "2023",
"Виды товаров и услуг" = "*"
),return_type = "dictionary"
)
Функция fedstat_data_load_with_filters
является оберткой
из отдельных функций, которые отвечают за:
fedstat_get_data_ids
);filters
с учетом
специальных значений и стандартных фильтров
(fedstat_data_ids_filter
);fedstat_post_data_ids_filtered
);fedstat_parse_sdmx_to_table
).По каждой функции доступна подробная документация, которую можно
вызвать в R через функцию help()
. Например
help("fedstat_data_load_with_filters")
или
?fedstat_data_load_with_filters
.
Загрузим те же данные, используя каждую функцию отдельно
<- fedstat_get_data_ids("31074") # Можеть занимать много времени из-за лагов
data_ids # fedstat, для скорости лучше всего кэшировать или даже записывать в базу данных,
# более подробно по этому моменту в документации
<- data_ids %>%
data_ids_filtered fedstat_data_ids_filter(
filters = list(
"Классификатор объектов административно-территориального деления (ОКАТО)" = "Российская Федерация",
"Виды показателя" = c(
"К соответствующему периоду предыдущего года",
"К предыдущему месяцу"
),"Период" = "Январь",
"Год" = "2023",
"Виды товаров и услуг" = "*"
)
)
<- data_ids_filtered %>%
data_sdmx_parsed fedstat_post_data_ids_filtered(data_format = "sdmx") %>%
fedstat_parse_sdmx_to_table()
<- data_ids_filtered %>%
data_xls_binary fedstat_post_data_ids_filtered(data_format = "excel") # также можем загружать excel
writeBin(data_xls_binary, "data.xls") # также можем записать в xls файл.
# Его формат зависит от колонки filter_field_object_ids в data_ids, можно изменять самостоятельно
Вопросы можно писать на почту deniskrylovvit@gmail.com
Буду рад Вашему вкладу в проект. Перед коммитом изменений необходимо пройти R CRAN check –as-cran.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.