Dados Descritivos da Matéria

Análise de Dados

Professor Adriano Lauro

Universidade Celso Lisboa ####################################################

#Projeto 2° Fase author: Tiago Oliveira & Lucas Tavares date: Rio de Janeiro 2026-05-17 output: html_document

##Fonte Informativa para Elaboração do Projeto ####https://portaldatransparencia.gov.br/download-de-dados/cpgf

###Competencia Janeiro de 2020

#Referencia de Estudo ###https://rpubs.com/adlauro/trabalhando_com_r

##Carregamento de pacotes

library(readxl)
library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union

#ggplot2 Tipos de Gráficos #######################################

library(ggplot2)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows

Agora o projeto será alimentado com dados do Projeto

Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 <- read_excel("2020.xlsx")

Analise da Planilha com Base de Dados

glimpse (Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020)
## Rows: 8,177
## Columns: 15
## $ `CÓDIGO ÓRGÃO SUPERIOR`  <dbl> 63000, 63000, 63000, 63000, 63000, 63000, 630…
## $ `NOME ÓRGÃO SUPERIOR`    <chr> "Advocacia-Geral da União", "Advocacia-Geral …
## $ `CÓDIGO ÓRGÃO`           <dbl> 63000, 63000, 63000, 63000, 63000, 63000, 630…
## $ `NOME ÓRGÃO`             <chr> "Advocacia-Geral da União - Unidades com vínc…
## $ `CÓDIGO UNIDADE GESTORA` <dbl> 110161, 110161, 110161, 110161, 110161, 11016…
## $ `NOME UNIDADE GESTORA`   <chr> "SUPERINTENDENCIA REG. DE ADMIN. DA 1ª REGIAO…
## $ `ANO EXTRATO`            <dbl> 2020, 2020, 2020, 2020, 2020, 2020, 2020, 202…
## $ `MÊS EXTRATO`            <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ `CPF PORTADOR`           <chr> "***.903.253-**", "***.587.712-**", "***.587.…
## $ `NOME PORTADOR`          <chr> "FRANCISCO PEREIRA TAVARES", "JUAN PABLO MART…
## $ `CNPJ OU CPF FAVORECIDO` <dbl> -2.000000e+00, -2.000000e+00, 4.214086e+12, 6…
## $ `NOME FAVORECIDO`        <chr> "NAO SE APLICA", "NAO SE APLICA", "INSTRUMENT…
## $ TRANSAÇÃO                <chr> "SAQUE CASH/ATM BB", "SAQUE CASH/ATM BB", "CO…
## $ `DATA TRANSAÇÃO`         <dttm> 2019-12-03, 2019-12-04, 2019-12-02, 2019-11-…
## $ `VALOR TRANSAÇÃO`        <dbl> 200.00, 100.00, 76.00, 18.00, 51.14, 306.35, …
colnames (Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020)
##  [1] "CÓDIGO ÓRGÃO SUPERIOR"  "NOME ÓRGÃO SUPERIOR"    "CÓDIGO ÓRGÃO"          
##  [4] "NOME ÓRGÃO"             "CÓDIGO UNIDADE GESTORA" "NOME UNIDADE GESTORA"  
##  [7] "ANO EXTRATO"            "MÊS EXTRATO"            "CPF PORTADOR"          
## [10] "NOME PORTADOR"          "CNPJ OU CPF FAVORECIDO" "NOME FAVORECIDO"       
## [13] "TRANSAÇÃO"              "DATA TRANSAÇÃO"         "VALOR TRANSAÇÃO"

Oscilação de modelo de dado

Alternando titulo das colunas

Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 <- read_excel <- Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 %>%
  select(codigo_orgao_superior = `CÓDIGO ÓRGÃO SUPERIOR`,nome_orgao_superior = `NOME ÓRGÃO SUPERIOR`,codigo_orgao = `CÓDIGO ÓRGÃO`,nome_orgao = `NOME ÓRGÃO`,codigo_unidade_gestora = `CÓDIGO UNIDADE GESTORA`,nome_unidade_gestora = `NOME UNIDADE GESTORA`,ano = `ANO EXTRATO`,mes = `MÊS EXTRATO`,cpf_portador = `CPF PORTADOR`,nome_portador = `NOME PORTADOR`,cnpj_ou_cpf_fornecedor = `CNPJ OU CPF FAVORECIDO`,nome_fornecedor = `NOME FAVORECIDO`,transacao = TRANSAÇÃO,data_transacao = `DATA TRANSAÇÃO`,valor_transacao = `VALOR TRANSAÇÃO` 
         )

Alterando Dados de uma Variável

Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 <- Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 %>%
  mutate(codigo_orgao_superior = as.numeric(codigo_orgao_superior),codigo_orgao = as.numeric(codigo_orgao),codigo_unidade_gestora = as.numeric(codigo_unidade_gestora),ano = as.numeric(ano),mes = as.numeric(mes),cpf_portador = as.numeric(cpf_portador),cnpj_ou_cpf_fornecedor = as.numeric(cnpj_ou_cpf_fornecedor),valor_transacao = as.numeric(valor_transacao))
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `cpf_portador = as.numeric(cpf_portador)`.
## Caused by warning:
## ! NAs introduced by coercion

Reparando os NAs:

1 Identificando NA em toda base de dados

sum(is.na(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020))
## [1] 9828

2 Anúncio do quantitativo de NAs por variável

summary(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020)
##  codigo_orgao_superior nome_orgao_superior  codigo_orgao       nome_orgao  
##  Min.   :20000         Length   :8177      Min.   :20101   Length   :8177  
##  1st Qu.:25201         N.unique :  26      1st Qu.:22204   N.unique : 126  
##  Median :32000         N.blank  :   0      Median :25205   N.blank  :   0  
##  Mean   :35991         Min.nchar:  19      Mean   :29252   Min.nchar:  15  
##  3rd Qu.:47000         Max.nchar:  44      3rd Qu.:30108   Max.nchar:  95  
##  Max.   :63000                             Max.   :63000                   
##                                                                            
##  codigo_unidade_gestora nome_unidade_gestora      ano            mes   
##  Min.   :110001         Length   :8177       Min.   :2020   Min.   :1  
##  1st Qu.:114622         N.unique : 488       1st Qu.:2020   1st Qu.:1  
##  Median :155125         N.blank  :   0       Median :2020   Median :1  
##  Mean   :189930         Min.nchar:  12       Mean   :2020   Mean   :1  
##  3rd Qu.:200372         Max.nchar:  45       3rd Qu.:2020   3rd Qu.:1  
##  Max.   :795500                              Max.   :2020   Max.   :1  
##                                                                        
##   cpf_portador    nome_portador  cnpj_ou_cpf_fornecedor  nome_fornecedor
##  Min.   : NA    Length   :8177   Min.   :-1.100e+01     Length   :8177  
##  1st Qu.: NA    N.unique :1462   1st Qu.:-2.000e+00     N.unique :2753  
##  Median : NA    N.blank  :   0   Median : 3.611e+11     N.blank  :   0  
##  Mean   :NaN    Min.nchar:   8   Mean   : 1.092e+13     Min.nchar:   8  
##  3rd Qu.: NA    Max.nchar:  52   3rd Qu.: 1.282e+13     Max.nchar:  88  
##  Max.   : NA                     Max.   : 9.755e+13                     
##  NAs    :8177                                                           
##      transacao    data_transacao                valor_transacao   
##  Length   :8177   Min.   :2019-11-26 00:00:00   Min.   :    1.79  
##  N.unique :   5   1st Qu.:2019-12-02 00:00:00   1st Qu.:   95.00  
##  N.blank  :   0   Median :2019-12-06 00:00:00   Median :  241.00  
##  Min.nchar:  17   Mean   :2019-12-07 00:40:09   Mean   :  580.37  
##  Max.nchar:  33   3rd Qu.:2019-12-12 00:00:00   3rd Qu.:  700.00  
##                   Max.   :2019-12-24 00:00:00   Max.   :44644.32  
##                   NAs    :1651

3 Removendo todos os NAs da base

planilha_sem_nas <- na.omit(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020)

Estatística Básica

estatistica_gasto_cartao_corporativo <- data.frame(media_valor_transacao = mean(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020$valor_transacao),
  mediana_valor_transacao = median(na.omit(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020$valor_transacao)),DESV_padrao_valor_transacao = sd(na.omit(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020$valor_transacao)),var_padrao_valor_transacao = var(na.omit(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020$valor_transacao)),max_valor_transacao = max(na.omit(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020$valor_transacao)),min_valor_transacao = min(na.omit(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020$valor_transacao)))


Gráficos

Grafico de Colunas

Valor_orgao <- Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 %>%
  count(nome_orgao_superior, sort = TRUE)

ggplot(Valor_orgao, aes(x = reorder(nome_orgao_superior , n), y = n)) + geom_col() + coord_flip() +
  labs (
    title = "Valores por órgão",
    x = "Órgão Superior",
    y = "Valor Transacionado"
)

##################################

## Histograma
ggplot(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020, aes(x = codigo_orgao_superior )) + geom_histogram(bins = 30) + 
  labs(
    title = "Distribuição por Órgão Superior",
    x = "Órgão Superior",
    y = "Frequência"
  )

#########################################

# Boxplot
ggplot(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020, aes(y = valor_transacao)) + geom_boxplot() +
  labs(
    title = "Boxplot Valores de Transações por Órgão",
    y = "Dispersão"
  )

ggplot(Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020, aes(y = valor_transacao)) + geom_boxplot() +
  labs(
    title = "Boxplot Valores de Transações por Órgão",
    y = "Dispersão"
  )

Gráfico de linha

1. Agrupar por dia do mês e SOMAR os valores das transações

despesa_data <- Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 %>%
  mutate(dia_do_mes = as.numeric(format(as.Date(`data_transacao`), "%d"))) %>%
  group_by(dia_do_mes) %>%
  summarise(valor_total = sum(`valor_transacao`, na.rm = TRUE))

2. Criar o gráfico de linha com os novos eixos

ggplot(despesa_data, aes(x = dia_do_mes, y = valor_total)) + 
  geom_line(color = "firebrick", size = 1) + 
  geom_point(color = "firebrick", size = 2) + # Pontos ajudam a ver os dias exatos
  scale_x_continuous(breaks = 1:31) +        # Garante que mostre os dias de 1 a 31 no eixo X
  labs(
    title = "Evolução do Valor Total de Transações por Dia do Mês",
    x = "Dia do Mês",
    y = "Valor Total Transacionado (R$)"
  ) +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).

# Gráfico de pizza

classificacao <- Cartão_de_Pagamento_do_Governo_Federal_CPGF_JANEIRO_DE_2020 %>%
  count(valor_transacao)

ggplot(classificacao, aes(x = "", y = n, fill = valor_transacao)) + geom_col() + 
  coord_polar(theta = "y") +
  labs(
    title = "classificação de transação"
  )