The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
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.
Health stats visible at Monitor.