MP-Execucao-Orcamentaria

Investigação da Execução Orçamentária e dados de despesas pelo Estado e Município.

View the Project on GitHub dan-reznik/MP-Execucao-Orcamentaria

Empenho: Preparo dos Dados, 2018

Inclusão de pacotes

library(tidyverse)
library(fs)
library(assertthat)
source("preparo_util.R")

Lista diretório

dir_ls("data")
#> data/despesa.zip              data/despesa2018.csv          
#> data/despesa2018.zip          data/despesa2018_squished.zip 
#> data/df_all.rds

Pelo menos o csv ou zip devem existir, e se só o ultimo, unzipar

fname_2018 <- "data/despesa2018.csv"
fname_2018_zip <- repl_ext(fname_2018,"zip")
assert_that(file_exists(fname_2018)|
              file_exists(fname_2018_zip))
#> [1] TRUE
if(!file_exists(fname_2018))
  unzip(fname_2018_zip,exdir='data')

Cria variável com nome do arquivo e conta linhas

linhas <- read_file(fname_2018) %>% str_count('\\n')
linhas
#> [1] 99368

Olhar para as primeiras linhas

read_lines(fname_2018, n_max=10)
#>  [1] "Governo do Estado do Rio de Janeiro"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
#>  [2] "Secretaria de Estado de Fazenda"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
#>  [3] "Subsecretaria de Pol<ed>tica Fiscal"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
#>  [4] "Transpar<ea>ncia Fiscal"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
#>  [5] "Despesa entre 01/01/2018 e 31/12/2018"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#>  [6] "Poder     ;Nome Poder          ;Grupo               ;Nome Grupo          ;Modalidade de Aplica<e7><e3>o       ;Nome Modalidade de Aplica<e7><e3>o  ;Elemento            ;Nome Elemento       ;Sub Elemento        ;Nome Sub Elemento   ;<d3>rg<e3>o               ;Nome <d3>rg<e3>o          ;UO                  ;Nome UO                       ;UG                  ;Nome UG                       ;Credor              ;Nome Credor         ;Fonte de Recursos             ;Nome Fonte de Recursos        ;Processo                      ;Fun<e7><e3>o              ;Nome Fun<e7><e3>o         ;Sub Fun<e7><e3>o          ;Nome Sub Fun<e7><e3>o     ;Licita<e7><e3>o                     ;Nome Licita<e7><e3>o                ;Empenho             ;Hist<f3>rico           ;Valor Empenhado     ;Valor Liquidado     ;Valor Pago          "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
#>  [7] "1         ;Executivo                                                                       ;3     ;;90    ;Aplica<e7><f5>es Diretas                                                              ;339036;Outros Servi<e7>os de Terceiros - Pessoa F<ed>sica                                    ;;;21    ;Secretaria de Estado da Casa Civil e Desenvol                                   ;2133  ;Departamento de Tr<e2>nsito do Estado do Rio de                                    ;263100;DEPARTAMENTO DE TRANSITO DO RIO DE JANEIRO                                      ;965.197.977-15;ALEXANDRE CESAR DE SOUZA                                                        ;32    ;Taxas pelo Exerc<ed>cio do Poder de Pol<ed>cia e por Servi<e7>os P<fa>blicos                ;E-12/061/7244/20                                                                ;06    ;Seguran<e7>a P<fa>blica                                                               ;122   ;Administra<e7><e3>o Geral                                                             ;05    ;DISPENSA                                                                        ;4390                ;Cancelamento conforme Decreto n<U+00BA>46.139/2017.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ;0               ;0               ;0               "
#>  [8] "1         ;Executivo                                                                       ;3     ;;90    ;Aplica<e7><f5>es Diretas                                                              ;339014;Di<e1>rias - Civil                                                                 ;;;31    ;Secretaria de Estado de Transportes                                             ;3131  ;Instituto de Pesos e Medidas do Estado do Rio                                   ;053100;INSTITUTO DE PESOS E MEDIDAS DO RJ                                              ;042.670.427-48;LUIS ALEXANDRE FERREIRA SILVEIRA                                                ;12    ;Transfer<ea>ncias Volunt<e1>rias                                                      ;E-12/171/1022/17                                                                ;22    ;Ind<fa>stria                                                                       ;122   ;Administra<e7><e3>o Geral                                                             ;07    ;NAO APLICAVEL                                                                   ;1354                ;Empenho para pagamento de di<e1>rias.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ;0               ;0               ;0               "            
#>  [9] "1         ;Executivo                                                                       ;3     ;;90    ;Aplica<e7><f5>es Diretas                                                              ;339039;Outros Servi<e7>os de Terceiros - Pessoa Jur<ed>dic                                   ;;;29    ;Secretaria de Estado de Sa<fa>de                                                   ;2961  ;Fundo Estadual de Sa<fa>de                                                         ;296100;FUNDO ESTADUAL DE SAUDE - FES                                                   ;40.197.840/000;BRASIL SUL IND E COM LTDA                                                       ;22    ;Adicional do ICMS - FECP                                                        ;E-08-001/1193 /2                                                                ;10    ;Sa<fa>de                                                                           ;302   ;Assist<ea>ncia Hospitalar e Ambulatorial                                           ;09    ;PREG<c3>O ELETR<d4>NICO                                                               ;7927                ;Decreto 46139 de 30 de outubro de 2017                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ;0               ;0               ;0               "         
#> [10] "1         ;Executivo                                                                       ;3     ;;90    ;Aplica<e7><f5>es Diretas                                                              ;339030;Material de Consumo                                                             ;;;21    ;Secretaria de Estado da Casa Civil e Desenvol                                   ;2104  ;Subsecretaria de Estado de Governo                                              ;120200;SUBSEC. DE REC. LOGISTICOS - SEFAZ-LOGISTICA                                    ;34.274.233/000;PETROBRAS DISTRIBUIDORA S/A                                                     ;00    ;Ordin<e1>rios Provenientes de Impostos                                             ;E-01/036/649/201                                                                ;04    ;Administra<e7><e3>o                                                                   ;122   ;Administra<e7><e3>o Geral                                                             ;09    ;PREG<c3>O ELETR<d4>NICO                                                               ;561                 ;SEGOV  CANCFELAMENTO DE EMPENHO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ;0               ;0               ;0               "

Qual é o encoding deste arquivo?

guess_encoding(fname_2018)
#> # A tibble: 2 x 2
#>   encoding   confidence
#>   <chr>           <dbl>
#> 1 ISO-8859-1       0.8 
#> 2 ISO-8859-2       0.35

Data Cleansing: Pular 5 linhas no cabeçalho, ajustar o “encoding”

loc_bz <- locale(encoding="ISO-8859-1")
primeiras_linhas <- read_lines(fname_2018, # .zip
                               skip=5,n_max=5,
                               locale=loc_bz)
primeiras_linhas
#> [1] "Poder     ;Nome Poder          ;Grupo               ;Nome Grupo          ;Modalidade de Aplicação       ;Nome Modalidade de Aplicação  ;Elemento            ;Nome Elemento       ;Sub Elemento        ;Nome Sub Elemento   ;Órgão               ;Nome Órgão          ;UO                  ;Nome UO                       ;UG                  ;Nome UG                       ;Credor              ;Nome Credor         ;Fonte de Recursos             ;Nome Fonte de Recursos        ;Processo                      ;Função              ;Nome Função         ;Sub Função          ;Nome Sub Função     ;Licitação                     ;Nome Licitação                ;Empenho             ;Histórico           ;Valor Empenhado     ;Valor Liquidado     ;Valor Pago          "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
#> [2] "1         ;Executivo                                                                       ;3     ;;90    ;Aplicações Diretas                                                              ;339036;Outros Serviços de Terceiros - Pessoa Física                                    ;;;21    ;Secretaria de Estado da Casa Civil e Desenvol                                   ;2133  ;Departamento de Trânsito do Estado do Rio de                                    ;263100;DEPARTAMENTO DE TRANSITO DO RIO DE JANEIRO                                      ;965.197.977-15;ALEXANDRE CESAR DE SOUZA                                                        ;32    ;Taxas pelo Exercício do Poder de Polícia e por Serviços Públicos                ;E-12/061/7244/20                                                                ;06    ;Segurança Pública                                                               ;122   ;Administração Geral                                                             ;05    ;DISPENSA                                                                        ;4390                ;Cancelamento conforme Decreto nº46.139/2017.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ;0               ;0               ;0               "
#> [3] "1         ;Executivo                                                                       ;3     ;;90    ;Aplicações Diretas                                                              ;339014;Diárias - Civil                                                                 ;;;31    ;Secretaria de Estado de Transportes                                             ;3131  ;Instituto de Pesos e Medidas do Estado do Rio                                   ;053100;INSTITUTO DE PESOS E MEDIDAS DO RJ                                              ;042.670.427-48;LUIS ALEXANDRE FERREIRA SILVEIRA                                                ;12    ;Transferências Voluntárias                                                      ;E-12/171/1022/17                                                                ;22    ;Indústria                                                                       ;122   ;Administração Geral                                                             ;07    ;NAO APLICAVEL                                                                   ;1354                ;Empenho para pagamento de diárias.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ;0               ;0               ;0               "
#> [4] "1         ;Executivo                                                                       ;3     ;;90    ;Aplicações Diretas                                                              ;339039;Outros Serviços de Terceiros - Pessoa Jurídic                                   ;;;29    ;Secretaria de Estado de Saúde                                                   ;2961  ;Fundo Estadual de Saúde                                                         ;296100;FUNDO ESTADUAL DE SAUDE - FES                                                   ;40.197.840/000;BRASIL SUL IND E COM LTDA                                                       ;22    ;Adicional do ICMS - FECP                                                        ;E-08-001/1193 /2                                                                ;10    ;Saúde                                                                           ;302   ;Assistência Hospitalar e Ambulatorial                                           ;09    ;PREGÃO ELETRÔNICO                                                               ;7927                ;Decreto 46139 de 30 de outubro de 2017                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ;0               ;0               ;0               "
#> [5] "1         ;Executivo                                                                       ;3     ;;90    ;Aplicações Diretas                                                              ;339030;Material de Consumo                                                             ;;;21    ;Secretaria de Estado da Casa Civil e Desenvol                                   ;2104  ;Subsecretaria de Estado de Governo                                              ;120200;SUBSEC. DE REC. LOGISTICOS - SEFAZ-LOGISTICA                                    ;34.274.233/000;PETROBRAS DISTRIBUIDORA S/A                                                     ;00    ;Ordinários Provenientes de Impostos                                             ;E-01/036/649/201                                                                ;04    ;Administração                                                                   ;122   ;Administração Geral                                                             ;09    ;PREGÃO ELETRÔNICO                                                               ;561                 ;SEGOV  CANCFELAMENTO DE EMPENHO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ;0               ;0               ;0               "

Remover espaços. Referencia de REGEXP

Remove espaços nas primeiras linhas

primeiras_linhas %>% remove_espacos
#> [1] "Poder;Nome Poder;Grupo;Nome Grupo;Modalidade de Aplicação;Nome Modalidade de Aplicação;Elemento;Nome Elemento;Sub Elemento;Nome Sub Elemento;Órgão;Nome Órgão;UO;Nome UO;UG;Nome UG;Credor;Nome Credor;Fonte de Recursos;Nome Fonte de Recursos;Processo;Função;Nome Função;Sub Função;Nome Sub Função;Licitação;Nome Licitação;Empenho;Histórico;Valor Empenhado;Valor Liquidado;Valor Pago"                                                                                                 
#> [2] "1;Executivo;3;;90;Aplicações Diretas;339036;Outros Serviços de Terceiros - Pessoa Física;;;21;Secretaria de Estado da Casa Civil e Desenvol;2133;Departamento de Trânsito do Estado do Rio de;263100;DEPARTAMENTO DE TRANSITO DO RIO DE JANEIRO;965.197.977-15;ALEXANDRE CESAR DE SOUZA;32;Taxas pelo Exercício do Poder de Polícia e por Serviços Públicos;E-12/061/7244/20;06;Segurança Pública;122;Administração Geral;05;DISPENSA;4390;Cancelamento conforme Decreto nº46.139/2017.;0;0;0"
#> [3] "1;Executivo;3;;90;Aplicações Diretas;339014;Diárias - Civil;;;31;Secretaria de Estado de Transportes;3131;Instituto de Pesos e Medidas do Estado do Rio;053100;INSTITUTO DE PESOS E MEDIDAS DO RJ;042.670.427-48;LUIS ALEXANDRE FERREIRA SILVEIRA;12;Transferências Voluntárias;E-12/171/1022/17;22;Indústria;122;Administração Geral;07;NAO APLICAVEL;1354;Empenho para pagamento de diárias.;0;0;0"                                                                                         
#> [4] "1;Executivo;3;;90;Aplicações Diretas;339039;Outros Serviços de Terceiros - Pessoa Jurídic;;;29;Secretaria de Estado de Saúde;2961;Fundo Estadual de Saúde;296100;FUNDO ESTADUAL DE SAUDE - FES;40.197.840/000;BRASIL SUL IND E COM LTDA;22;Adicional do ICMS - FECP;E-08-001/1193 /2;10;Saúde;302;Assistência Hospitalar e Ambulatorial;09;PREGÃO ELETRÔNICO;7927;Decreto 46139 de 30 de outubro de 2017;0;0;0"                                                                               
#> [5] "1;Executivo;3;;90;Aplicações Diretas;339030;Material de Consumo;;;21;Secretaria de Estado da Casa Civil e Desenvol;2104;Subsecretaria de Estado de Governo;120200;SUBSEC. DE REC. LOGISTICOS - SEFAZ-LOGISTICA;34.274.233/000;PETROBRAS DISTRIBUIDORA S/A;00;Ordinários Provenientes de Impostos;E-01/036/649/201;04;Administração;122;Administração Geral;09;PREGÃO ELETRÔNICO;561;SEGOV CANCFELAMENTO DE EMPENHO;0;0;0"

Compara tamanho antes do “squish” e depois

primeiras_linhas %>% str_length %>% sum
#> [1] 13323
primeiras_linhas %>% remove_espacos %>% str_length %>% sum
#> [1] 2051

Olhando pro fim do arquivo

# BUGADO
# read_lines(fname_2018,skip=linhas-10,locale=loc_bz)
lines_2018 <- read_lines(fname_2018,skip=5,
                            locale=loc_bz)
str_length(lines_2018) %>% sum
#> [1] 315562907

Remove espaços de todas as linhas

lines_2018_squished <- lines_2018 %>% remove_espacos
lines_2018_squished %>% str_length %>% sum
#> [1] 50092043

Salva arquivo enxuto em novo csv

fname_2018_squished <- "data/despesa2018_squished.csv"
lines_2018_squished %>% write_lines(fname_2018_squished)

Deleta da memória variáveis não mais necessárias

rm(lines_2018)
rm(lines_2018_squished)

Zipa o resultado

fname_2018_squished_zip <- repl_ext(fname_2018_squished,"zip")
zip::zip(fname_2018_squished_zip,fname_2018_squished)

Checa se encoding está ok

guess_encoding(fname_2018_squished_zip)
#> # A tibble: 3 x 2
#>   encoding     confidence
#>   <chr>             <dbl>
#> 1 UTF-8              1   
#> 2 windows-1252       0.79
#> 3 windows-1250       0.35

Checa tamanho dos arquivos

dir_info("data") %>% select(path,size,modification_time)
#> # A tibble: 6 x 3
#>   path                                 size modification_time  
#>   <fs::path>                    <fs::bytes> <dttm>             
#> 1 data/despesa.zip                  125.32M 2019-03-29 07:40:36
#> 2 data/despesa2018.csv              301.04M 2019-04-06 12:04:14
#> 3 data/despesa2018.zip               17.98M 2019-03-29 16:40:21
#> 4 data/despesa2018_squished.csv      49.34M 2019-04-06 12:14:03
#> 5 data/despesa2018_squished.zip       9.08M 2019-04-06 12:14:07
#> 6 data/df_all.rds                    24.37M 2019-03-30 12:05:39
file_delete(fname_2018)
file_delete(fname_2018_squished)