Introduction to sidrar

Renato Prado Siqueira

2017-07-24

R Interface to the SIDRA’s API

The “sidrar” R package seeks to provide direct access to the data of SIDRA - Sistema IBGE de Recuperação Automática - within the R environment in an easy and flexible way.

Installation

To install the version available on CRAN:

install.packages("sidrar")

To install the development version hosted on Github:

library(devtools)
install_github("rpradosiqueira/sidrar")

Functions

For the time being, the “sidra” package contains only three functions:

get_sidra          It recovers data from the geven table
                   according to the parameters

info_sidra         It allows you to check what parameters
                   are available for a table via an web browser
                   
search_sidra       It searches which tables have a particular 
                   word in their names

Examples

get_sidra

  1. Let’s assume that we want the IPCA (Índice de Preços ao Consumidor Amplo) for the city of Campo Grande/MS. However, we will only recover the overall percentage rate in the last 12 months. To do this simply execute:
library(sidrar)

get_sidra(x = 1419,
          variable = 63,
          period = c("last" = 12),
          geo = "City",
          geo.filter = 5002407,
          classific = "c315",
          category = list(7169),
          header = FALSE,
          format = 3)
#> # A tibble: 12 x 7
#>        D1C               D1N            D2N                    D3N
#>      <chr>             <chr>          <chr>                  <chr>
#>  1 5002704 Campo Grande - MS     julho 2016 IPCA - Variação mensal
#>  2 5002704 Campo Grande - MS    agosto 2016 IPCA - Variação mensal
#>  3 5002704 Campo Grande - MS  setembro 2016 IPCA - Variação mensal
#>  4 5002704 Campo Grande - MS   outubro 2016 IPCA - Variação mensal
#>  5 5002704 Campo Grande - MS  novembro 2016 IPCA - Variação mensal
#>  6 5002704 Campo Grande - MS  dezembro 2016 IPCA - Variação mensal
#>  7 5002704 Campo Grande - MS   janeiro 2017 IPCA - Variação mensal
#>  8 5002704 Campo Grande - MS fevereiro 2017 IPCA - Variação mensal
#>  9 5002704 Campo Grande - MS     março 2017 IPCA - Variação mensal
#> 10 5002704 Campo Grande - MS     abril 2017 IPCA - Variação mensal
#> 11 5002704 Campo Grande - MS      maio 2017 IPCA - Variação mensal
#> 12 5002704 Campo Grande - MS     junho 2017 IPCA - Variação mensal
#> # ... with 3 more variables: D4N <chr>, MN <chr>, V <dbl>


  1. In this example we will download the Gini index data for the 2014 GDP of the states, containing only the codes in the table (format = 1):
get_sidra(x = 5939,
          variable = 529,
          period = "2014",
          geo = "State",
          header = TRUE,
          format = 1)
#> Considering all categories once 'classific' was set to 'all' (default)
#> # A tibble: 26 x 5
#>    `Unidade da Federação (Código)` `Ano (Código)` `Variável (Código)`
#>                              <chr>          <chr>               <chr>
#>  1                              11           2014                 529
#>  2                              12           2014                 529
#>  3                              13           2014                 529
#>  4                              14           2014                 529
#>  5                              15           2014                 529
#>  6                              16           2014                 529
#>  7                              17           2014                 529
#>  8                              21           2014                 529
#>  9                              22           2014                 529
#> 10                              23           2014                 529
#> # ... with 16 more rows, and 2 more variables: `Unidade de Medida
#> #   (Código)` <chr>, Valor <dbl>


  1. Finally, if you want to put the parameters of the API directly, just execute:
get_sidra(api = "/t/1378/n1/all/n2/all/v/all/p/all/c1/all/c2/0/c287/0/c455/all/d/v1000093%202")
#> All others arguments are desconsidered when 'api' is informed
#> # A tibble: 900 x 19
#>    `Nível Territorial (Código)` `Nível Territorial`
#>                           <chr>               <chr>
#>  1                            1              Brasil
#>  2                            1              Brasil
#>  3                            1              Brasil
#>  4                            1              Brasil
#>  5                            1              Brasil
#>  6                            1              Brasil
#>  7                            1              Brasil
#>  8                            1              Brasil
#>  9                            1              Brasil
#> 10                            1              Brasil
#> # ... with 890 more rows, and 17 more variables: `Brasil e Grande Região
#> #   (Código)` <chr>, `Brasil e Grande Região` <chr>, `Variável
#> #   (Código)` <chr>, Variável <chr>, `Ano (Código)` <chr>, Ano <chr>,
#> #   `Situação do domicílio (Código)` <chr>, `Situação do domicílio` <chr>,
#> #   `Sexo (Código)` <chr>, Sexo <chr>, `Idade (Código)` <chr>,
#> #   Idade <chr>, `Condição no domicílio e o compartilhamento da
#> #   responsabilidade pelo domicílio (Código)` <chr>, `Condição no
#> #   domicílio e o compartilhamento da responsabilidade pelo
#> #   domicílio` <chr>, `Unidade de Medida (Código)` <chr>, `Unidade de
#> #   Medida` <chr>, Valor <dbl>


For most users the data request is done via the online portal (https://sidra.ibge.gov.br). In this case, if you want to save the parameters of the table selected in the portal to a posterior request of the same table via sidrar, you should copy the path in the red rectangle and pass to the api argument in get_sidra:



info_sidra

In the previous examples we know how to recover data from tables according to the parameters reported. However, if I do not know what the parameters are, how should I proceed? To verify the parameters (variables, classifications, periods, etc.) of a given table, simply use the function “info_sidra”, informing the code of the table. The function returns a list with the possible parameters in the console. However, if wb = TRUE, the user can allow the result to be displayed in an web browser.

#> $table
#> [1] "Tabela 5939: Índice de Gini do produto interno bruto a preços correntes e do valor adicionado bruto a preços correntes por atividade econômica - Referência 2010"
#> 
#> $period
#> [1] "2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014"
#> 
#> $variable
#>    cod
#> 1  529
#> 2  531
#> 3  532
#> 4 6568
#> 5  534
#>                                                                                                                                                                        desc
#> 1                                                                                       Índice de Gini da distribuição do produto interno bruto a preços correntes (Índice)
#> 2                                                                      Índice de Gini da distribuição do valor adicionado bruto a preços correntes da agropecuária (Índice)
#> 3                                                                         Índice de Gini da distribuição do valor adicionado bruto a preços correntes da indústria (Índice)
#> 4 Índice de Gini da distribuição do valor adicionado bruto a preços correntes dos serviços, exclusive administração, saúde e educação públicas e seguridade social (Índice)
#> 5                      Índice de Gini da distribuição do valor adicionado bruto a preços correntes da administração, saúde e educação públicas e seguridade social (Índice)
#> 
#> $classific_category
#> NULL
#> 
#> $geo
#>      cod                      desc
#> 1 Brazil                Brasil (1)
#> 2 Region         Grande Região (5)
#> 3  State Unidade da Federação (26)

if wb = TRUE:

info_sidra(5939, wb = TRUE)
#> Can the web browser be open? (y/n):

By placing y, we have in this example:


search_sidra

If the user wants to know if there is a table that contains a certain term / word, simply use the function ** search_sidra ** informing the words of interest. The function returns the tables containing these terms in their headings.

search_sidra(c("gini"))
#>  [1] "Tabela 155 - Índice de Gini da renda das pessoas responsáveis pelos domicílios"                                                                                                                                                                                         
#>  [2] "Tabela 299 - Índice de Gini da distribuição do rendimento mensal das pessoas de 10 anos ou mais de idade com rendimento, por sexo"                                                                                                                                      
#>  [3] "Tabela 379 - Índice de Gini - recebimento médio mensal das famílias"                                                                                                                                                                                                    
#>  [4] "Tabela 403 - Índice de Gini da distribuição do rendimento mensal dos domicílios particulares permanentes, com rendimento"                                                                                                                                               
#>  [5] "Tabela 411 - Índice de Gini da distribuição do rendimento mensal de todos os trabalhos das pessoas de 10 anos ou mais de idade, ocupadas na semana de referência, com rendimento de trabalho, por sexo"                                                                 
#>  [6] "Tabela 567 - Índice de Gini da distribuição do rendimento mensal das pessoas de 10 anos ou mais de idade com rendimento, por sexo (exceto a área rural da Região Norte - exclusive a de Tocantins)"                                                                     
#>  [7] "Tabela 570 - Índice de Gini da distribuição do rendimento mensal de todos os trabalhos das pessoas de 10 anos ou mais de idade, ocupadas na semana de referência, com rendimento de trabalho, por sexo (exceto a área rural da Região Norte - exclusive a de Tocantins)"
#>  [8] "Tabela 573 - Índice de Gini da distribuição do rendimento mensal dos domicílios particulares permanentes, com rendimento (exceto a área rural de Rondônia, Acre, Amazonas, Roraima, Pará e Amapá)"                                                                      
#>  [9] "Tabela 599 - Índice de Gini do produto interno bruto a preços correntes e do valor adicionado bruto a preços correntes por atividade econômica - Referência 2002 (Série encerrada)"                                                                                     
#> [10] "Tabela 1167 - Índice de Gini da distribuição do rendimento mensal das pessoas de 10 anos ou mais de idade, com rendimento"                                                                                                                                              
#> [11] "Tabela 1722 - Índice de Gini da distribuição do rendimento nominal mensal das pessoas de 10 anos ou mais de idade, com rendimento, por situação do domicílio e sexo"                                                                                                    
#> [12] "Tabela 2036 - Índice de Gini da distribuição do rendimento nominal mensal das pessoas de 10 anos ou mais de idade, com rendimento, por situação do domicílio"                                                                                                           
#> [13] "Tabela 2037 - Índice de Gini da distribuição do rendimento nominal mensal dos domicílios particulares permanentes, com rendimento domiciliar, por situação do domicílio"                                                                                                
#> [14] "Tabela 2906 - Índice de Gini da distribuição do rendimento nominal mensal das pessoas de 10 anos ou mais de idade, com rendimento, por condição de ativiidade na semana de referência, sexo e situação do domicílio"                                                    
#> [15] "Tabela 2907 - Índice de Gini da distribuição do rendimento nominal mensal de todos os trabalhos das pessoas de 10 anos ou mais de idade, ocupadas na semana de referêrncia,com rendimento de trabalho, por sexo e situação do domicílio"                                
#> [16] "Tabela 2932 - Índice de Gini da distribuição do rendimento nominal mensal das famílias residentes em domicílios particulares, com rendimento familiar, por situação do domicílio"                                                                                       
#> [17] "Tabela 3568 - Índice de Gini da distribuição do rendimento nominal mensal dos domicílios particulares permanentes, com rendimento domiciliar, por situação do domicílio - Amostra Rendimento"                                                                           
#> [18] "Tabela 5642 - Índice de Gini da distribuição do rendimento mensal das pessoas de 15 anos ou mais de idade, com rendimento"                                                                                                                                              
#> [19] "Tabela 5801 - Índice de Gini da distribuição do rendimento mensal das pessoas de 15 anos ou mais de idade, com rendimento - Série Histórica"                                                                                                                            
#> [20] "Tabela 5939 - Índice de Gini do produto interno bruto a preços correntes e do valor adicionado bruto a preços correntes por atividade econômica - Referência 2010"