Projeto de Algoritmos e Estrutura de Dados

Aluno: Carlos Victor da Silva Pinto
Curso: Engenharia Civil
Instituição: Faculdade Celso Lisboa
Disciplina: Programação em RStudio
Local: Rio de Janeiro - RJ


Introdução

Este trabalho apresenta uma análise estatística de uma base de dados referente à entrada de mercadorias. A proposta é utilizar a linguagem R, no ambiente RStudio, para carregar, organizar, tratar e interpretar os dados presentes em uma planilha no formato .xlsx.

A análise permite compreender melhor o comportamento das entradas de materiais, identificar fornecedores com maior participação, verificar categorias de produtos mais representativas, avaliar valores movimentados e acompanhar o status dos recebimentos. Dessa forma, o projeto demonstra como a análise de dados pode auxiliar no controle de estoque, no acompanhamento de compras e na tomada de decisão administrativa.

O relatório está organizado em etapas: carregamento dos pacotes, carregamento da base de dados, preparação dos dados, estatística básica, análises por agrupamento, construção de gráficos e conclusão final.

Carregamento dos Pacotes

Os pacotes abaixo foram utilizados para leitura da planilha, manipulação dos dados, elaboração de tabelas e criação dos gráficos estatísticos. Este chunk foi deixado aparente para demonstrar quais bibliotecas foram utilizadas no desenvolvimento do projeto.

library(readxl)
library(dplyr)
library(ggplot2)
library(knitr)
library(scales)

Explicação dos Pacotes

  • readxl: utilizado para carregar a planilha em formato Excel.
  • dplyr: utilizado para manipulação, tratamento e agrupamento dos dados.
  • ggplot2: utilizado para construção dos gráficos estatísticos.
  • knitr: utilizado para apresentação das tabelas com a função kable.
  • scales: utilizado para formatação de valores monetários nos gráficos e tabelas.

Carregamento da Base de Dados

A base de dados utilizada neste trabalho foi obtida a partir da planilha Entrada_Mercadorias(3).xlsx, disponibilizada para o desenvolvimento da atividade acadêmica. O acesso e uso da base ocorreram em maio de 2026.

A planilha apresenta os dados organizados em colunas, sem células mescladas, o que permite sua leitura e manipulação no RStudio.

entrada_mercadorias <- read_excel("Entrada_Mercadorias.xlsx")

Visualização Inicial

## # A tibble: 6 × 10
##   ID_Entrada Data_Recebimento    Fornecedor         Produto Categoria Quantidade
##   <chr>      <dttm>              <chr>              <chr>   <chr>          <dbl>
## 1 ENT-1002   2026-03-09 00:00:00 HidroRio Soluções  Tubo P… Hidráuli…        128
## 2 ENT-1003   2026-01-11 00:00:00 Top Ferragens RJ   Tubo P… Hidráuli…        127
## 3 ENT-1004   2026-04-23 00:00:00 HidroRio Soluções  Caixa … Elétrica         148
## 4 ENT-1005   2026-01-13 00:00:00 Top Ferragens RJ   Tubo P… Hidráuli…         44
## 5 ENT-1006   2026-03-16 00:00:00 MaxTubos Comercial Joelho… Hidráuli…        205
## 6 ENT-1007   2026-03-26 00:00:00 Prime Engenharia … Joelho… Hidráuli…         90
## # ℹ 4 more variables: Valor_Unitario <dbl>, Valor_Total <dbl>,
## #   Responsavel <chr>, Status_Recebimento <chr>

Preparação e Tratamento dos Dados

Nesta etapa foram verificadas as características iniciais da base, incluindo nomes das colunas, tipos de dados, valores ausentes e padronização dos nomes das variáveis.

Nomes Originais das Colunas

names(entrada_mercadorias)
##  [1] "ID_Entrada"         "Data_Recebimento"   "Fornecedor"        
##  [4] "Produto"            "Categoria"          "Quantidade"        
##  [7] "Valor_Unitario"     "Valor_Total"        "Responsavel"       
## [10] "Status_Recebimento"

Padronização dos Nomes das Colunas

Embora a base já estivesse organizada em colunas, os nomes foram padronizados no RStudio para letras minúsculas, facilitando a manipulação dos dados ao longo do trabalho.

names(entrada_mercadorias) <- names(entrada_mercadorias) %>%
  tolower()

Correção de Codificação dos Textos

Para evitar erros de acentuação ou problemas de codificação no RMarkdown, os campos de texto foram convertidos para UTF-8.

entrada_mercadorias <- entrada_mercadorias %>%
  mutate(across(where(is.character), ~ iconv(.x, from = "", to = "UTF-8")))

Ajuste dos Tipos de Dados

entrada_mercadorias <- entrada_mercadorias %>%
  mutate(
    data_recebimento = as.Date(data_recebimento),
    quantidade = as.numeric(quantidade),
    valor_unitario = as.numeric(valor_unitario),
    valor_total = as.numeric(valor_total)
  )

str(entrada_mercadorias)
## tibble [50 × 10] (S3: tbl_df/tbl/data.frame)
##  $ id_entrada        : chr [1:50] "ENT-1002" "ENT-1003" "ENT-1004" "ENT-1005" ...
##  $ data_recebimento  : Date[1:50], format: "2026-03-09" "2026-01-11" ...
##  $ fornecedor        : chr [1:50] "HidroRio Soluções" "Top Ferragens RJ" "HidroRio Soluções" "Top Ferragens RJ" ...
##  $ produto           : chr [1:50] "Tubo PVC 100mm" "Tubo PVC 100mm" "Caixa de Passagem" "Tubo PVC 100mm" ...
##  $ categoria         : chr [1:50] "Hidráulica" "Hidráulica" "Elétrica" "Hidráulica" ...
##  $ quantidade        : num [1:50] 128 127 148 44 205 90 106 239 123 219 ...
##  $ valor_unitario    : num [1:50] 376.1 338.8 579.3 94.1 184.7 ...
##  $ valor_total       : num [1:50] 48142 43029 85739 4141 37859 ...
##  $ responsavel       : chr [1:50] "Felipe" "Felipe" "Wellington" "André Luiz" ...
##  $ status_recebimento: chr [1:50] "Pendente" "Recebido" "Pendente" "Pendente" ...

Verificação de Valores Ausentes

ausentes <- data.frame(
  Coluna = names(entrada_mercadorias),
  Valores_Ausentes = colSums(is.na(entrada_mercadorias))
)

kable(ausentes)
Coluna Valores_Ausentes
id_entrada id_entrada 0
data_recebimento data_recebimento 0
fornecedor fornecedor 0
produto produto 0
categoria categoria 0
quantidade quantidade 0
valor_unitario valor_unitario 0
valor_total valor_total 0
responsavel responsavel 0
status_recebimento status_recebimento 0

Consultas Iniciais

As consultas iniciais têm como finalidade conhecer melhor a composição da base de dados, identificando fornecedores, produtos, categorias e status de recebimento presentes na planilha.

Fornecedores Identificados

fornecedor
Conecta Elétrica
Constrular Materiais
HidroRio Soluções
Master Cimentos
MaxTubos Comercial
Nova Aço Distribuidora
Prime Engenharia Supply
Top Ferragens RJ

Produtos Identificados

produto
Areia Lavada
Brita 1
Caixa de Passagem
Cimento CP II
Disjuntor 50A
Joelho PVC 90°
Tubo PVC 100mm
Vergalhão CA-50

Categorias Identificadas

categoria
Agregados
Construção
Elétrica
Estrutural
Hidráulica

Status de Recebimento

status_recebimento
Aguardando Nota
Conferido
Pendente
Recebido

Estatística Básica

A tabela a seguir apresenta os principais indicadores estatísticos das variáveis numéricas escolhidas: quantidade, valor_unitario e valor_total. Foram calculados média, mediana, desvio padrão, variância, valor máximo e valor mínimo.

Variavel Media Mediana Desvio_Padrao Variancia Maximo Minimo
Quantidade 132.46 127.50 69.74 4.863560e+03 247.00 14.00
Valor Unitário 435.52 438.10 232.58 5.409351e+04 848.12 19.83
Valor Total 55480.13 49225.26 40033.72 1.602699e+09 174615.44 1130.31

Análises por Agrupamento

As análises por agrupamento permitem identificar padrões e comportamentos da base de dados, destacando fornecedores, categorias e produtos com maior participação nas entradas de mercadorias. Essas informações auxiliam no controle e organização dos dados analisados.

Valor Total por Fornecedor

fornecedor quantidade_total valor_total
HidroRio Soluções 1547 587592.36
Master Cimentos 1200 544188.59
MaxTubos Comercial 933 399623.99
Top Ferragens RJ 654 348585.78
Constrular Materiais 593 300905.87
Conecta Elétrica 894 282167.83
Prime Engenharia Supply 561 234790.62
Nova Aço Distribuidora 241 76151.48

Valor Total por Categoria

categoria quantidade_total valor_total
Hidráulica 2302 875713.8
Elétrica 1560 694906.3
Construção 832 520024.5
Agregados 1394 469997.3
Estrutural 535 213364.6

Quantidade por Produto

produto quantidade_total valor_total
Joelho PVC 90° 1615 580390.6
Cimento CP II 832 520024.5
Brita 1 810 250222.8
Caixa de Passagem 799 306457.7
Disjuntor 50A 761 388448.6
Tubo PVC 100mm 687 295323.2
Areia Lavada 584 219774.5
Vergalhão CA-50 535 213364.6

Valor Total por Status de Recebimento

status_recebimento registros valor_total
Pendente 15 896111.6
Aguardando Nota 12 834454.5
Recebido 13 564444.5
Conferido 10 478996.0

Gráficos

Gráfico de Linha

O gráfico de linha apresenta a evolução do valor total das entradas de mercadorias ao longo das datas de recebimento.

Boxplot

O boxplot permite observar a distribuição dos valores totais por categoria de produto.

Histograma

O histograma apresenta a frequência de ocorrência dos valores totais das entradas de mercadorias.

Gráfico de Colunas

O gráfico de colunas apresenta o valor total movimentado por categoria.

Conclusão

A análise estatística da base de entrada de mercadorias permitiu compreender o comportamento dos registros de recebimento, identificando os principais fornecedores, produtos e categorias presentes na planilha. A partir dos agrupamentos realizados, foi possível observar quais categorias concentraram maior valor financeiro e quais fornecedores tiveram maior participação no total movimentado.

Os indicadores estatísticos, como média, mediana, desvio padrão, variância, máximo e mínimo, contribuíram para avaliar a distribuição das variáveis numéricas da base. Já os gráficos facilitaram a interpretação visual dos dados, evidenciando a evolução dos valores ao longo do tempo, a distribuição por categoria e a frequência dos valores totais.

Conclui-se que o uso do RStudio e da linguagem R foi adequado para organizar, tratar e analisar a base de dados. O trabalho atende ao objetivo de transformar uma planilha em informações estatísticas e gráficas úteis para interpretação e tomada de decisão.