Dados Descritivos da Matéria Análise de Dados Professor Adriano Lauro Universidade Celso Lisboa ####################################################

#Projeto 2° Fase author: Tiago Oliveira & Lucas Tvares 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("Cartão de Pagamento do Governo Federal (CPGF) JANEIRO DE 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))

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         Class :character    1st Qu.:22204   Class :character  
##  Median :32000         Mode  :character    Median :25205   Mode  :character  
##  Mean   :35991                             Mean   :29252                     
##  3rd Qu.:47000                             3rd Qu.:30108                     
##  Max.   :63000                             Max.   :63000                     
##                                                                              
##  codigo_unidade_gestora nome_unidade_gestora      ano            mes   
##  Min.   :110001         Length:8177          Min.   :2020   Min.   :1  
##  1st Qu.:114622         Class :character     1st Qu.:2020   1st Qu.:1  
##  Median :155125         Mode  :character     Median :2020   Median :1  
##  Mean   :189930                              Mean   :2020   Mean   :1  
##  3rd Qu.:200372                              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    Class :character   1st Qu.:-2.000e+00     Class :character  
##  Median : NA    Mode  :character   Median : 3.611e+11     Mode  :character  
##  Mean   :NaN                       Mean   : 1.092e+13                       
##  3rd Qu.: NA                       3rd Qu.: 1.282e+13                       
##  Max.   : NA                       Max.   : 9.755e+13                       
##  NA's   :8177                                                               
##   transacao         data_transacao                valor_transacao   
##  Length:8177        Min.   :2019-11-26 00:00:00   Min.   :    1.79  
##  Class :character   1st Qu.:2019-12-02 00:00:00   1st Qu.:   95.00  
##  Mode  :character   Median :2019-12-06 00:00:00   Median :  241.00  
##                     Mean   :2019-12-07 00:40:09   Mean   :  580.37  
##                     3rd Qu.:2019-12-12 00:00:00   3rd Qu.:  700.00  
##                     Max.   :2019-12-24 00:00:00   Max.   :44644.32  
##                     NA's   :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"
  )