Projeto de Algoritmo e Estrutura de Dados

Aluno: Alan Jorge Ribeiro Santos

Curso: Engenharia Civil

Instituição:Faculdade Celso Lisboa

Disciplina: Programação de Dados

Local: Rio de Janeiro - RJ


1. Introdução

Este relatório apresenta uma análise de movimentação de itens a partir de uma planilha contendo códigos de produtos, datas de movimentação, quantidades, anos e meses.

O objetivo do trabalho é utilizar a linguagem R para organizar, tratar e analisar os dados da planilha, permitindo identificar padrões de movimentação, volumes totais e distribuição das quantidades ao longo do tempo.

2. Carregamento dos Pacotes

Os pacotes abaixo foram utilizados para manipulação dos dados, leitura da planilha Excel, construção de gráficos e apresentação das tabelas.

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

Explicação dos Pacotes

  • dplyr → manipulação e organização dos dados

  • ggplot2 → criação dos gráficos

  • readxl → leitura da planilha Excel

  • knitr → criação das tabelas utilizando a função kable

  • scales → formatação de escalas e valores nos gráficos

3. Carregamento da Planilha

A planilha utilizada foi obtida da base disponibilizada para a disciplina no mês de maio de 2026.

movimentacao <- read_excel("planilha alan jorge - fase 2.xlsx")

4. Preparação dos Dados

Nesta etapa foram verificados os nomes das colunas, presença de valores ausentes e tipos das variáveis.

names(movimentacao)
## [1] "codigo_item"       "data_movimentacao" "quantidade"       
## [4] "ano"               "mes"
sum(is.na(movimentacao))
## [1] 0
str(movimentacao)
## tibble [113,202 × 5] (S3: tbl_df/tbl/data.frame)
##  $ codigo_item      : chr [1:113202] "ITM-000001" "ITM-000002" "ITM-000003" "ITM-000004" ...
##  $ data_movimentacao: POSIXct[1:113202], format: "2018-01-01" "2018-01-01" ...
##  $ quantidade       : num [1:113202] 1 2 3 4 5 6 7 8 9 10 ...
##  $ ano              : num [1:113202] 2018 2018 2018 2018 2018 ...
##  $ mes              : num [1:113202] 1 1 1 1 1 1 1 1 1 1 ...

Também foi realizado o tratamento das variáveis para garantir que os dados fossem interpretados corretamente pelo R.

movimentacao <- movimentacao %>%
  mutate(
    data_movimentacao = as.Date(data_movimentacao,
                                origin = "1899-12-30"),

    ano = as.numeric(ano),

    mes = as.numeric(mes),

    quantidade = as.numeric(quantidade)
  )

5. Estatística Básica

Foi criada uma tabela contendo medidas estatísticas importantes da variável quantidade.

As medidas analisadas foram:

estatistica <- data.frame(

  Media = mean(movimentacao$quantidade, na.rm = TRUE),

  Mediana = median(movimentacao$quantidade, na.rm = TRUE),

  Desvio_Padrao = sd(movimentacao$quantidade, na.rm = TRUE),

  Variancia = var(movimentacao$quantidade, na.rm = TRUE),

  Maximo = max(movimentacao$quantidade, na.rm = TRUE),

  Minimo = min(movimentacao$quantidade, na.rm = TRUE)
)

kable(estatistica)
Media Mediana Desvio_Padrao Variancia Maximo Minimo
25.49958 25 14.43116 208.2583 50 1

6. Indicadores Gerais

indicadores <- movimentacao %>%

  summarise(

    Total_Registros = n(),

    Total_Itens_Distintos = n_distinct(codigo_item),

    Quantidade_Total = sum(quantidade, na.rm = TRUE),

    Media_Quantidade = mean(quantidade, na.rm = TRUE),

    Maior_Quantidade = max(quantidade, na.rm = TRUE),

    Menor_Quantidade = min(quantidade, na.rm = TRUE)
  )

kable(indicadores)
Total_Registros Total_Itens_Distintos Quantidade_Total Media_Quantidade Maior_Quantidade Menor_Quantidade
113202 113202 2886603 25.49958 50 1

7. Análises por Período

7.1 Quantidade Total por Ano

total_ano <- movimentacao %>%

  group_by(ano) %>%

  summarise(

    Quantidade_Total = sum(quantidade, na.rm = TRUE),

    Registros = n()
  )

kable(total_ano)
ano Quantidade_Total Registros
2018 142905 5614
2019 229585 9005
2020 497801 19519
2021 525055 20593
2022 630695 24730
2023 702579 27554
2024 157983 6187

7.2 Quantidade Total por Mês

total_mes <- movimentacao %>%

  group_by(mes) %>%

  summarise(

    Quantidade_Total = sum(quantidade, na.rm = TRUE),

    Registros = n()
  )

kable(total_mes)
mes Quantidade_Total Registros
1 261436 10249
2 217062 8509
3 269591 10559
4 218979 8609
5 230081 9023
6 225299 8831
7 228881 8987
8 232002 9076
9 234629 9197
10 258225 10117
11 260333 10227
12 250085 9818

8. Análise dos Itens

8.1 Itens com Maior Quantidade Movimentada

itens_quantidade <- movimentacao %>%

  group_by(codigo_item) %>%

  summarise(

    Quantidade_Total = sum(quantidade, na.rm = TRUE),

    Registros = n()
  ) %>%

  arrange(desc(Quantidade_Total))

kable(head(itens_quantidade, 10))
codigo_item Quantidade_Total Registros
ITM-000050 50 1
ITM-000100 50 1
ITM-000150 50 1
ITM-000200 50 1
ITM-000250 50 1
ITM-000300 50 1
ITM-000350 50 1
ITM-000400 50 1
ITM-000450 50 1
ITM-000500 50 1

9. Gráficos

9.1 Gráfico de Linha

ano_mes <- movimentacao %>%

  group_by(ano, mes) %>%

  summarise(

    Quantidade_Total = sum(quantidade, na.rm = TRUE),

    .groups = "drop"
  )

ano_mes <- ano_mes %>%

  mutate(

    periodo = as.Date(
      paste(ano, mes, "01", sep = "-")
    )
  )

ggplot(ano_mes,
       aes(x = periodo,
           y = Quantidade_Total)) +

  geom_line(color = "blue",
            linewidth = 1) +

  geom_point(color = "red",
             size = 2) +

  labs(
    title = "Evolução da Quantidade Movimentada",
    x = "Período",
    y = "Quantidade Total"
  ) +

  theme_minimal()

9.2 Boxplot

ggplot(movimentacao,
       aes(x = factor(ano),
           y = quantidade)) +

  geom_boxplot(fill = "lightblue") +

  labs(
    title = "Distribuição das Quantidades por Ano",
    x = "Ano",
    y = "Quantidade"
  ) +

  theme_minimal()

9.3 Histograma

ggplot(movimentacao,
       aes(x = quantidade)) +

  geom_histogram(
    bins = 30,
    fill = "orange",
    color = "black"
  ) +

  labs(
    title = "Distribuição das Quantidades",
    x = "Quantidade",
    y = "Frequência"
  ) +

  theme_minimal()

10. Interpretação dos Resultados

A análise realizada permitiu identificar o comportamento das movimentações registradas na planilha ao longo do tempo.

Os resultados demonstraram quais períodos apresentaram maior quantidade movimentada, além de permitir a visualização da distribuição dos dados e da variação entre os registros.

Os gráficos facilitaram a interpretação das informações e contribuíram para uma análise mais clara da movimentação dos itens.

11. Conclusão

O trabalho demonstrou a utilização da linguagem R na análise e interpretação de dados de movimentação de itens.

A partir da planilha analisada foi possível gerar indicadores, tabelas estatísticas e gráficos capazes de auxiliar no entendimento das informações registradas.

Dessa forma, o relatório contribui para o acompanhamento dos dados e apoio à tomada de decisão baseada em informações organizadas e analisadas.