📝 Ensino normal 2026.2

Sumário

Apresentação

Curso Estatística Aplicada a Inovações Tecnológicas (EAIT) oferecido no formato presencial pela UFSJ, campus Alto Paraopeba (CAP), Ouro Branco/MG.

60h por semestre

Tópicos abordados

Introdução ao R; extração, transformação e carregamento de dados; estatística descritiva; inferência estatística; introdução a planejamento de experimentos; análise gráfica exploratória; gráficos interativos; relatórios estatísticos e dinâmicos; dashboards; apresentações; páginas Web estatísticas e dinâmicas.

Onde?

  • O curso é ministrado na UFSJ, campus Alto Paraopeba (CAP), para os alunos do Metrado Porfissional em Inovações Tecniológicas;
  • Aulas gravadas e postadas em:
  • Aulas presenciais:
    • segunda-feira (18:45 - 20:50, sala 25 - Prédio da Eng. Civil);
    • segunda-feira (17:00 - 17:45, sala 25 - Prédio da Eng. Civil);

Calendário e Cronograma

  • Calendário

Grupo de Whatsapp

Notas

  • Turma 2026.2 (Link)

Ementa

Nós usamos a ementa contida nos Projetos Pedagógicos de Cursos (PPCs) do CAP/UFSJ

Acesse a ementa do curso

  1. INTRODUÇÃO A LINGUAGEM R
  2. EXTRAÇÃO, TRANSFORMAÇÃO E CARREGAMENTO DE DADOS
  3. ESTATÍSTICA DESCRITIVA
  4. ESTATÍSTICA INFERENCIAL
  5. INTRODUÇÃO A PLANEJAMENTO DE EXPERIMENTOS
  6. GRÁFICOS
  7. CRIAÇÃO DE RELATÓRIOS ESTATÍSTICOS E DINÂMICOS
  8. CRIAÇÃO DE DASHBOARDS
  9. CRIAÇÃO DE PÁGINAS WEB

Metodologia

Nossas aulas serão divididas de acordo com as 36 semanas de aula. As aulas serão expositivas e dialogadas com os alunos presencialmente, conectando a todo momento as nossas demandas a página de relatórios via web. Ainda, usaremos o ambiente R para o desenvolvimento de todas as atividades, constituída pela seguinte estratégia de ensino:

  • Motivação:
    • Levantamento do conhecimento prévio dos alunos em relação ao tema;
    • Apresentação de algumas situações práticas para a compreensão dos tópicos a serem abordados;
    • Exposição dos objetivos da aula.
  • Desenvolvimento:
    • Introdução ao assunto abordado;
    • Apresentação de definições e teoremas envolvidos;
    • Aplicação de softwares estatísticos, quando for pertinente;
    • Exemplos e aplicações na estatística e área do curso, do assunto abordado.
Detalhamento da metodologia

Nossas aulas estarão disponíveis em http://bendeivide.github.io/. Para os alunos matriculados na disciplina, também será possível acompanhar o material pelo portal didático. Nossas aulas terão 2 (quatro) horas semanais de aulas presenciais, um total de 60h.

Iremos utilizar o R, $\LaTeX$ Quarto e Github.

Avaliação

Segue um detalhamento das nossas avaliações

Faremos toda semana relatórios baseado em nossas aula teóricas e práticas, usando o R, $\LaTeX$ e Quarto, integrando estes relatórios ao Github.

A disciplina terá uma pontuação total de 10 pontos, sendo 80% distribuído aos relatórios, e 20% distribuídos aos nossos testes rápidos, trabalhos ou qualquer outra dinâmica que consiga obter informações da captação de conhecimento no momento da aula.

Para ser aprovado o aluno deverá obter nota final maior ou igual a 60 pontos e não poderá faltar mais de 25% das aulas. O discente que não for aprovado por nota poderá fazer uma prova substitutiva, incluindo todo o conteúdo da disciplina.

O discente que perder algum relatório ou atividade avaliativa referente aos 20% dos pontos informados anteriormente, deverá solicitar a coordenadoria de seu curso uma segunda chamada para tal atividade perdida, justificando a ausência da entrega. Sendo deferida pela coordação, faremos a segunda chamada de tal atividade.

Bibliografia adotada para a disciplina

Bibliografia detalhada

Material adotado

  • Livro referência: R4ds
Materiais complementares

  • Em desenvolvimento

-> Modelo de Relatório R para Web

🔗 Clique no link

Lista alunos

Defesas

⚖️ Defesa 1 (Clique) | 14/09/2026

  • Relatórios: 1, 2 e 3
  • Tempo: 20 min.
  • Local: sala 103.2
  • Horário: 18:45 às 20:50

ORDEM DAS DEFESAS

Ordem Horário Alunos
1 18:45 - 19:00 Matheus Gonçalves e Marco Antônio
2 19:00 - 19:15 Jair Malta e Wesley Rodrigues
3 19:15 - 19:30 Maria Clara e Victória Marques
4 19:30 - 19:45 Marcos Fellipe e Gustavo Almeida
5 19:45 - 20:00 Bruno Henrique e Lucas Felipe
6 20:00 - 20:15 Otávio Augusto e Gregório Grazziotti
7 20:15 - 20:30 Leonardo Müller

Lista de relatórios

📝 Como os relatórios serão avaliados?

Seguindo as seguintes indagações:

Indagações ao realatório escrito
1. Entregou no prazo?
3. Relatório organizado?
4. Coerente com o que foi pedido?
5. Abordou todos os tópicos solicitados?
6. Aprofundou o assunto?
7. Código R formatado?
8. Tem exemplos de aplicação?
9. Código R Markdown formatado?
10. Tem referências?
11. Referências formatadas?
12. Introdução?
13. Objetivos?
14. Metodologia?
15. Resultados e Discussão?
16. Conclusão ou considerações finais?
17. O trabalho atingiu os objetivos?

As perguntas se enquadrarão em:

Não (0%) Pouco (25%) Parcial(50%) Quase lá (75%) Sim (100%)
[ ] [ ] [ ] [ ] [ ]

A pergunta 2 seguirá a seguinte escala:

Não (0%) Pouco (-10%) Parcial(-20%) Metade (-50%) Mais da metade (-75%)
[ ] [ ] [ ] [ ] [ ]

O item 2.1, auxiliará a recuperar a nota perdida em 2.

🗒 Relatório 1 (Clique!) - 24/08/2026


OBJETIVO

Este relatório será dividido em 3 etapas:

  • Realizar um introdução ao R, fundamentado nas 26 aulas do curso R Básico 2024 (Sintaxe e Semântica);
  • Fazer uma revisão sobre a estatística descritiva, que compreende os 4 primeiros capítulos do livro EPAEC. Como assunto adicional, pesquise também sobre assimetria e curtose e insira em sua revisão;
  • A partir de um banco de dados (que envolva a área da Engenharia Civil), use o pacote leem para realizar uma descrição dos dados (Estatística descritiva), que compreende organizar, tabular, apresentação gráfica, medidas de posição e dispersão, bem como assimetria e curtose. Faça uma discussão sobre os resultados encontrados, entendo que apesar de ser feito pelo leem, tenham ciência de como as medidas e os demais processos (tabulação, cômputo de medidas, etc.) foram obtidos.

DATA DA ENTREGA:

  • Até às 18h do dia 24/08/2026

🗒 Relatório 2 (Clique!) - 31/08/2026


OBJETIVO

O objetivo desta atividade é desenvolver a capacidade de inspecionar, diagnosticar, organizar, limpar e explorar uma base de dados proveniente de uma situação prática da Engenharia Civil, utilizando a linguagem R e, preferencialmente, os recursos de Base R trabalhados em sala de aula.

Na prática profissional, o engenheiro frequentemente recebe dados provenientes de diferentes fontes: planilhas preenchidas por técnicos, resultados de ensaios de laboratório, registros de obras e informações coletadas em campo. Antes de realizar qualquer análise estatística, é necessário verificar se os dados estão completos, se os tipos das variáveis estão corretos, se existem erros de digitação e se os valores são coerentes com o fenômeno estudado.

Nesta atividade, você assumirá o papel de um engenheiro responsável pelo processamento de dados de controle tecnológico do concreto.

CONTEXTUALIZAÇÃO DA BASE DE DADOS

Imagine que uma empresa de Engenharia Civil esteja executando diferentes blocos de um empreendimento. Durante a execução da obra, foram realizados ensaios e registros relacionados ao concreto utilizado nas concretagens.

Os dados foram reunidos posteriormente em uma única planilha. Entretanto, diferentes profissionais participaram da coleta e da digitação das informações. Por esse motivo, a base contém alguns problemas que podem ocorrer em situações reais, tais como:

  • valores ausentes;
  • erros de digitação;
  • números registrados de maneira inadequada;
  • uso de vírgula decimal em alguns registros;
  • valores com ordem de grandeza aparentemente incorreta;
  • casas decimais deslocadas;
  • categorias escritas de maneiras diferentes;
  • espaços adicionais em alguns registros.

Os problemas não foram identificados previamente. Uma das tarefas do engenheiro é justamente descobrir quais problemas existem e decidir como tratá-los.

A base possui 100 observações e 10 variáveis. Cada linha representa um corpo de prova ou registro de controle, enquanto as colunas representam características relacionadas ao concreto.

Variável Descrição
id_corpo_prova Identificação do corpo de prova
obra Bloco da obra onde ocorreu a concretagem
tipo_concreto Classe do concreto: C25, C30, C35 ou C40
idade_dias Idade do corpo de prova no momento do ensaio
resistencia_mpa Resistência à compressão, em MPa
cimento_kg_m3 Consumo de cimento, em kg/m³
relacao_a_c Relação água/cimento
abatimento_mm Abatimento do concreto, em mm
densidade_kg_m3 Densidade aparente do concreto, em kg/m³
absorção_agregado_pct Absorção de água do agregado, em %

O objetivo não é simplesmente obter números. Espera-se que você consiga justificar as decisões tomadas durante o processamento da base e utilizar o R para transformar dados brutos em informações úteis para a tomada de decisão na Engenharia Civil.

PREPARAÇÃO

Coloque o arquivo base_processamento_dados_engenharia_civil.csv no mesmo diretório do seu relatorio /rel02/.

A base deverá ser importada no R e armazenada no objeto dados.

dados <- read.csv2(
  "base_processamento_dados_engenharia_civil.csv",
  stringsAsFactors = FALSE,
  check.names = FALSE
)

Orientação: não altere diretamente a base original. Sempre que necessário, crie novos objetos ou uma cópia denominada dados_limpos.

Etapa 1 — Conhecendo a base

Questão 1

Importe a base de dados no R e atribua-a ao objeto dados.

Verifique se a importação foi realizada corretamente.

Questão 2

Quantas observações e quantas variáveis existem na base?

Apresente um código R que permita responder à questão.

Questão 3

Apresente a estrutura da base utilizando uma função apropriada do R.

Analise o resultado obtido.

Questão 4

Apresente um resumo das variáveis da base.

Quais informações chamam sua atenção?

Questão 5

Quais variáveis foram reconhecidas pelo R como quantitativas e quais foram reconhecidas como qualitativas?

Justifique sua resposta a partir da estrutura apresentada pelo R.

Questão 6

Verifique a existência de valores ausentes na base.

Responda:

  • Quantos valores ausentes existem?
  • Em quais variáveis eles aparecem?
  • Em quais observações eles aparecem?

Etapa 2 — Investigando problemas nos dados

Nesta etapa, o objetivo é identificar possíveis problemas de qualidade da informação antes de realizar análises estatísticas.

Questão 7

Verifique se existem valores que parecem incompatíveis com o contexto da Engenharia Civil.

Considere, entre outras, as variáveis:

  • idade dos corpos de prova;
  • resistência à compressão;
  • abatimento;
  • densidade;
  • relação água/cimento;
  • absorção.

Crie códigos que permitam localizar as observações potencialmente problemáticas.

Questão 8

Existem valores que podem ser considerados possíveis erros de digitação?

Localize-os e apresente os respectivos registros completos.

Questão 9

Verifique se todas as categorias da variável obra estão escritas de forma padronizada.

Caso encontre alguma inconsistência, identifique-a.

Questão 10

Verifique se todas as categorias de tipo_concreto estão padronizadas.

Existe alguma categoria que possa representar o mesmo tipo de concreto que outra, mas esteja escrita de maneira diferente?

Questão 11

Verifique novamente os tipos das variáveis depois de identificar os problemas.

Questão para reflexão:

Por que um único valor digitado incorretamente pode alterar a maneira como o R interpreta uma variável inteira?

Etapa 3 — Limpeza da base

Nesta etapa, você deverá produzir uma versão da base destinada às análises.

Questão 12

Crie uma cópia da base original chamada dados_limpos.

dados_limpos <- dados

Por que é recomendável preservar a base original?

Questão 13

Corrija os problemas encontrados nas variáveis qualitativas, de modo que suas categorias fiquem padronizadas.

Questão 14

Converta para o tipo adequado as variáveis que deveriam ser quantitativas.

Verifique se a conversão foi realizada corretamente.

Questão 15

Identifique os valores ausentes.

Discuta qual procedimento seria mais adequado para cada situação:

  • excluir a observação;
  • substituir o valor;
  • manter o NA;
  • consultar a fonte original dos dados.

Justifique suas decisões.

Questão 16

Depois da limpeza, verifique novamente:

str(dados_limpos)
summary(dados_limpos)

O que mudou em relação à base original?

Etapa 4 — Explorando os dados

Agora que a base foi inspecionada e tratada, utilize as ferramentas de manipulação e processamento estudadas em aula.

Questão 17 — Resistência média

Calcule a resistência média à compressão dos corpos de prova.

Calcule também a resistência média por:

  • bloco da obra;
  • tipo de concreto;
  • idade do corpo de prova.

Questão 18 — Comparação entre obras

Qual bloco da obra apresentou a maior resistência média?

Qual apresentou a menor?

Apresente os códigos utilizados para responder à questão.

Questão 19 — Tipo de concreto

Calcule a resistência média para cada classe de concreto:

  • C25;
  • C30;
  • C35;
  • C40.

Qual classe apresentou a maior resistência média?

Questão 20 — Utilizando aggregate()

Utilizando aggregate(), obtenha a média das seguintes variáveis para cada tipo de concreto:

  • resistência;
  • consumo de cimento;
  • relação água/cimento;
  • abatimento;
  • densidade.

Interprete os resultados obtidos.

Etapa 5 — Criando novas variáveis

Questão 21

Crie uma variável chamada resistencia_relativa, representando a razão entre a resistência observada e uma resistência de referência associada à classe do concreto.

Explique como você definiu a resistência de referência para cada classe.

Questão 22

Crie uma variável denominada classificacao, classificando os corpos de prova segundo um critério relacionado à resistência.

Você deverá definir os critérios utilizados e justificá-los tecnicamente.

Questão 23

Crie uma variável denominada acima_media, indicando se a resistência do corpo de prova está acima ou abaixo da resistência média de seu respectivo tipo de concreto.

A variável deverá assumir valores TRUE ou FALSE.

Etapa 6 — Utilizando split(), lapply() e sapply()

Questão 24

Utilize split() para dividir a base de dados de acordo com a variável tipo_concreto.

Quantas observações existem em cada grupo?

Questão 25

Utilizando a estrutura criada com split(), calcule a resistência média de cada tipo de concreto utilizando lapply().

Questão 26

Repita a operação utilizando sapply().

Explique a diferença entre os resultados produzidos por lapply() e sapply().

Etapa 7 — Utilizando apply()

Questão 27

Selecione as variáveis quantitativas relacionadas às propriedades do concreto e utilize apply() para calcular a média de cada variável.

Questão 28

Utilize apply() para obter, para cada observação, uma medida resumo envolvendo as variáveis quantitativas selecionadas.

Discuta:

Essa medida resumo possui necessariamente uma interpretação física direta?

Explique sua resposta.

Etapa 8 — Estruturas for e if

Questão 29

Utilizando for e if, percorra as 100 observações e identifique os corpos de prova cuja resistência esteja acima da resistência média de sua respectiva classe de concreto.

Não utilize ifelse() nesta questão.

Questão 30

Repita a questão anterior utilizando uma abordagem vetorizada.

Compare as duas soluções.

Qual código você considera:

  • mais simples;
  • mais legível;
  • mais eficiente?

Justifique.

Etapa 9 — Questões próximas da prática profissional

Questão 31

O engenheiro responsável afirma:

“Os concretos utilizados no Bloco C apresentam desempenho superior aos utilizados nos demais blocos.”

Utilize a base de dados para verificar se os dados dão suporte a essa afirmação em termos descritivos.

Não é necessário realizar um teste de hipótese. O objetivo é explorar os dados.

Questão 32

Outro engenheiro afirma:

“Quanto maior o consumo de cimento, maior tende a ser a resistência do concreto.”

Utilize a base para investigar essa afirmação.

Quais variáveis devem ser analisadas conjuntamente?

Questão 33

Investigue a relação entre:

  • relação água/cimento;
  • resistência à compressão.

Os dados apresentam algum padrão que mereça investigação?

Apresente sua análise e interprete os resultados.

Questão 34

Compare a resistência média dos concretos com diferentes idades.

O que acontece com a resistência à medida que aumenta a idade do corpo de prova?

Questão 35

O controle tecnológico da empresa precisa produzir um relatório para o engenheiro responsável.

Quais cinco informações estatísticas você considera mais importantes para apresentar?

Justifique a escolha de cada uma.

Desafio final — O engenheiro responsável pelos dados

Você recebeu uma planilha produzida por diferentes profissionais da empresa e não sabe previamente quais erros foram cometidos durante a coleta e a digitação.

Desenvolva um script em R capaz de:

  1. realizar uma inspeção inicial da base;
  2. identificar possíveis problemas;
  3. verificar valores ausentes;
  4. identificar inconsistências nas variáveis;
  5. produzir uma versão limpa dos dados;
  6. gerar estatísticas descritivas relevantes;
  7. criar pelo menos duas variáveis derivadas;
  8. produzir informações que possam auxiliar o engenheiro responsável pela obra.

O script deverá ser organizado de forma que outro engenheiro consiga compreender as etapas realizadas.

Requisitos do desafio

Procure utilizar, sempre que possível, as ferramentas de Base R trabalhadas em aula, tais como:

str()
summary()
subset()
apply()
lapply()
sapply()
ifelse()
for
if
tapply()
aggregate()
split()
with()
by()
within()
ave()

Não é necessário utilizar todas as funções.

O mais importante é que o código seja coerente com o problema, organizado e justificável.

Reflexão final

Depois de concluir a atividade, responda:

Por que o processamento e a limpeza dos dados são etapas fundamentais antes da aplicação de métodos estatísticos na Engenharia Civil?

Em seguida, descreva brevemente qual foi o principal problema encontrado na base e qual decisão você tomou para tratá-lo.

Entrega

A entrega deverá conter:

  • o arquivo da base de dados;
  • o código R desenvolvido;
  • os resultados obtidos;
  • as justificativas das decisões tomadas durante o processamento.

O objetivo principal não é apenas produzir respostas numéricas, mas demonstrar que você consegue usar o R para transformar uma base de dados bruta em uma fonte de informação confiável para a tomada de decisão na Engenharia Civil.

DATA DA ENTREGA:

  • Até às 18h do dia 31/08/2026

🗒 Relatório 3 (Clique!) - 07/09/2026


OBJETIVO

O objetivo desta atividade é desenvolver a capacidade de inspecionar, diagnosticar, organizar, limpar, transformar e explorar uma base de dados proveniente de uma situação prática da Engenharia Civil, utilizando a linguagem R e, preferencialmente, os recursos da família tidyverse trabalhados em sala de aula.

Na prática profissional, o engenheiro frequentemente recebe dados provenientes de diferentes fontes: planilhas preenchidas por técnicos, resultados de ensaios de laboratório, registros de obras e informações coletadas em campo. Antes de realizar qualquer análise estatística, é necessário verificar se os dados estão completos, se os tipos das variáveis estão corretos, se existem erros de digitação e se os valores são coerentes com o fenômeno estudado.

Nesta atividade, você assumirá o papel de um engenheiro responsável pelo processamento de dados de controle tecnológico do concreto.

Diferentemente do relatório anterior, nesta atividade você deverá utilizar, prioritariamente, as ferramentas da família tidyverse, explorando principalmente os pacotes:

  • dplyr — manipulação e transformação de dados;
  • tidyr — organização e reestruturação dos dados;
  • stringr — tratamento de textos;
  • readr — leitura e conversão de dados;
  • purrr — aplicação de funções;
  • ggplot2 — visualização gráfica.

Sempre que possível, utilize o operador |> para construir fluxos de transformação dos dados.


CONTEXTUALIZAÇÃO DA BASE DE DADOS

Imagine que uma empresa de Engenharia Civil esteja executando diferentes blocos de um empreendimento. Durante a execução da obra, foram realizados ensaios e registros relacionados ao concreto utilizado nas concretagens.

Os dados foram reunidos posteriormente em uma única planilha. Entretanto, diferentes profissionais participaram da coleta e da digitação das informações. Por esse motivo, a base contém alguns problemas que podem ocorrer em situações reais, tais como:

  • valores ausentes;
  • erros de digitação;
  • números registrados de maneira inadequada;
  • uso de vírgula decimal em alguns registros;
  • valores com ordem de grandeza aparentemente incorreta;
  • casas decimais deslocadas;
  • categorias escritas de maneiras diferentes;
  • espaços adicionais em alguns registros.

Os problemas não foram identificados previamente. Uma das tarefas do engenheiro é justamente descobrir quais problemas existem e decidir como tratá-los.

A base possui 100 observações e 10 variáveis. Cada linha representa um corpo de prova ou registro de controle, enquanto as colunas representam características relacionadas ao concreto.

Variável Descrição
id_corpo_prova Identificação do corpo de prova
obra Bloco da obra onde ocorreu a concretagem
tipo_concreto Classe do concreto: C25, C30, C35 ou C40
idade_dias Idade do corpo de prova no momento do ensaio
resistencia_mpa Resistência à compressão, em MPa
cimento_kg_m3 Consumo de cimento, em kg/m³
relacao_a_c Relação água/cimento
abatimento_mm Abatimento do concreto, em mm
densidade_kg_m3 Densidade aparente do concreto, em kg/m³
absorção_agregado_pct Absorção de água do agregado, em %

O objetivo não é simplesmente obter números. Espera-se que você consiga justificar as decisões tomadas durante o processamento da base e utilizar o R para transformar dados brutos em informações úteis para a tomada de decisão na Engenharia Civil.


PREPARAÇÃO

Coloque o arquivo base_processamento_dados_engenharia_civil.csv no mesmo diretório do seu relatório /rel03/.

Instale, caso necessário, e carregue os pacotes da família tidyverse:

install.packages("tidyverse")

Em seguida:

library(tidyverse)

Importe a base utilizando read_csv2():

dados <- read_csv2(
  "base_processamento_dados_engenharia_civil.csv",
  show_col_types = FALSE
)

Orientação: não altere diretamente a base original. Sempre que necessário, crie novos objetos ou uma cópia denominada dados_limpos.

Durante a atividade, procure utilizar o fluxo de transformação de dados característico do tidyverse:

dados |>
  função1() |>
  função2() |>
  função3()

Etapa 1 — Conhecendo a base

Questão 1

Importe a base de dados no R e atribua-a ao objeto dados.

Verifique se a importação foi realizada corretamente.

Utilize funções da família tidyverse para visualizar as primeiras e as últimas observações.


Questão 2

Quantas observações e quantas variáveis existem na base?

Apresente um código R que permita responder à questão utilizando funções da família tidyverse.


Questão 3

Apresente a estrutura da base utilizando uma função apropriada do tidyverse.

Analise o resultado obtido.

Sugestão: utilize glimpse().


Questão 4

Apresente um resumo das variáveis da base utilizando recursos do tidyverse.

Quais informações chamam sua atenção?

Compare, se desejar, o resultado com o resumo obtido no Relatório 02.


Questão 5

Quais variáveis foram reconhecidas pelo R como quantitativas e quais foram reconhecidas como qualitativas?

Utilize funções do tidyverse para investigar os tipos das variáveis.

Justifique sua resposta.


Questão 6

Verifique a existência de valores ausentes na base.

Responda:

  • Quantos valores ausentes existem?
  • Em quais variáveis eles aparecem?
  • Em quais observações eles aparecem?

Procure utilizar across() para realizar a investigação de forma sistemática.


Etapa 2 — Investigando problemas nos dados

Nesta etapa, o objetivo é identificar possíveis problemas de qualidade da informação antes de realizar análises estatísticas.

Questão 7

Verifique se existem valores que parecem incompatíveis com o contexto da Engenharia Civil.

Considere, entre outras, as variáveis:

  • idade dos corpos de prova;
  • resistência à compressão;
  • abatimento;
  • densidade;
  • relação água/cimento;
  • absorção.

Utilize filter() para localizar as observações potencialmente problemáticas.


Questão 8

Existem valores que podem ser considerados possíveis erros de digitação?

Utilize filter(), select() e outras funções do tidyverse para localizar os registros suspeitos.

Apresente os respectivos registros completos.


Questão 9

Verifique se todas as categorias da variável obra estão escritas de forma padronizada.

Utilize funções como count() e distinct() para identificar as categorias existentes.

Caso encontre alguma inconsistência, identifique-a.


Questão 10

Verifique se todas as categorias de tipo_concreto estão padronizadas.

Utilize funções do tidyverse para identificar as diferentes categorias existentes.

Existe alguma categoria que possa representar o mesmo tipo de concreto que outra, mas esteja escrita de maneira diferente?


Questão 11

Verifique novamente os tipos das variáveis depois de identificar os problemas.

Utilize glimpse() e outras funções apropriadas.

Questão para reflexão:

Por que um único valor digitado incorretamente pode alterar a maneira como o R interpreta uma variável inteira?


Etapa 3 — Limpeza e transformação da base

Nesta etapa, você deverá produzir uma versão da base destinada às análises.

Questão 12

Crie uma cópia da base original chamada dados_limpos.

dados_limpos <- dados

Por que é recomendável preservar a base original?


Questão 13

Corrija os problemas encontrados nas variáveis qualitativas, de modo que suas categorias fiquem padronizadas.

Utilize funções do pacote stringr, tais como:

str_trim()
str_to_upper()
str_replace()
str_replace_all()

Procure construir uma transformação que possa ser aplicada de maneira consistente às observações.


Questão 14

Converta para o tipo adequado as variáveis que deveriam ser quantitativas.

Utilize funções do pacote readr, quando apropriado, para realizar a conversão.

Investigue situações envolvendo:

  • vírgula decimal;
  • caracteres indevidos;
  • valores registrados como texto;
  • valores ausentes.

Verifique se a conversão foi realizada corretamente utilizando glimpse().


Questão 15

Identifique os valores ausentes.

Utilize recursos do dplyr para investigar a distribuição dos NA.

Discuta qual procedimento seria mais adequado para cada situação:

  • excluir a observação;
  • substituir o valor;
  • manter o NA;
  • consultar a fonte original dos dados.

Justifique suas decisões.


Questão 16

Depois da limpeza, verifique novamente a estrutura e um resumo da base.

Utilize, por exemplo:

glimpse(dados_limpos)

dados_limpos |>
  summary()

O que mudou em relação à base original?

Quais problemas foram efetivamente corrigidos?


Etapa 4 — Explorando os dados com dplyr

Agora que a base foi inspecionada e tratada, utilize as ferramentas de manipulação e processamento da família tidyverse.

Questão 17 — Resistência média

Calcule a resistência média à compressão dos corpos de prova.

Calcule também a resistência média por:

  • bloco da obra;
  • tipo de concreto;
  • idade do corpo de prova.

Utilize group_by() e summarise().


Questão 18 — Comparação entre obras

Qual bloco da obra apresentou a maior resistência média?

Qual apresentou a menor?

Utilize uma combinação de:

group_by()
summarise()
arrange()

para responder à questão.


Questão 19 — Tipo de concreto

Calcule a resistência média para cada classe de concreto:

  • C25;
  • C30;
  • C35;
  • C40.

Qual classe apresentou a maior resistência média?

Organize o resultado da maior para a menor resistência média.


Questão 20 — Estatísticas por grupo

Utilizando group_by() e summarise(), obtenha a média das seguintes variáveis para cada tipo de concreto:

  • resistência;
  • consumo de cimento;
  • relação água/cimento;
  • abatimento;
  • densidade.

Interprete os resultados obtidos.

Observação: nesta questão, não utilize aggregate(). O objetivo é praticar a combinação group_by() + summarise().


Etapa 5 — Criando novas variáveis com mutate()

Questão 21

Crie uma variável chamada resistencia_relativa, representando a razão entre a resistência observada e uma resistência de referência associada à classe do concreto.

Utilize mutate() e case_when().

Explique como você definiu a resistência de referência para cada classe.


Questão 22

Crie uma variável denominada classificacao, classificando os corpos de prova segundo um critério relacionado à resistência.

Utilize mutate() e case_when().

Você deverá definir os critérios utilizados e justificá-los tecnicamente.


Questão 23

Crie uma variável denominada acima_media, indicando se a resistência do corpo de prova está acima ou abaixo da resistência média de seu respectivo tipo de concreto.

A variável deverá assumir valores:

TRUE
FALSE

Utilize group_by() em conjunto com mutate().

Desafio: procure realizar a operação sem calcular manualmente as médias de cada classe.


Etapa 6 — Trabalhando com dados agrupados

Nesta etapa, você deverá explorar os mecanismos de agrupamento do dplyr.

Questão 24

Utilize group_by() e summarise() para determinar quantas observações existem em cada grupo de tipo_concreto.

Apresente o resultado em uma tabela organizada.


Questão 25

Calcule a resistência média de cada tipo de concreto utilizando:

group_by()
summarise()

Depois, ordene os resultados utilizando arrange().


Questão 26

Calcule simultaneamente diferentes estatísticas da variável resistencia_mpa para cada tipo de concreto.

Obtenha, por exemplo:

  • número de observações;
  • média;
  • mediana;
  • desvio-padrão;
  • mínimo;
  • máximo.

Utilize summarise().

Explique por que uma tabela com várias estatísticas pode ser mais informativa do que apresentar apenas a média.


Etapa 7 — Selecionando e reorganizando variáveis

Questão 27

Selecione somente as variáveis quantitativas relacionadas às propriedades do concreto.

Utilize select() e, quando apropriado, where() ou all_of().

Apresente a nova tabela.


Questão 28

Utilize across() para calcular a média das variáveis quantitativas selecionadas.

Compare o resultado com aquele obtido utilizando summarise() individualmente para cada variável.

Qual abordagem apresenta maior facilidade de manutenção quando o número de variáveis aumenta?


Questão 29

Utilize mutate() e across() para realizar uma transformação simultânea em um conjunto de variáveis quantitativas.

Escolha uma transformação coerente com o problema e explique sua finalidade.


Questão 30

Utilize across() em conjunto com summarise() para obter, por tipo de concreto, pelo menos duas estatísticas para cada variável quantitativa selecionada.

Apresente o resultado de forma organizada.

Compare essa solução com a utilização de vários comandos separados.


Etapa 8 — Trabalhando com textos e categorias

Questão 31

Utilize funções do pacote stringr para verificar e padronizar os valores da variável obra.

Investigue:

  • espaços no início ou no final dos textos;
  • diferenças entre letras maiúsculas e minúsculas;
  • possíveis grafias diferentes para uma mesma categoria.

Apresente o antes e o depois da padronização.


Questão 32

Utilize str_detect() para localizar registros que contenham determinado padrão textual em tipo_concreto ou obra.

Crie uma condição de busca adequada aos dados.

Explique como a utilização de padrões de texto pode auxiliar no diagnóstico de bases de dados.


Etapa 9 — Visualização dos dados

Nesta etapa, utilize o pacote ggplot2 para produzir representações gráficas que auxiliem a interpretação dos dados.

Questão 33

Produza um gráfico comparando a distribuição da resistência à compressão entre os diferentes tipos de concreto.

Utilize uma geometria apropriada, como:

geom_boxplot()

Interprete o gráfico.


Questão 34

Produza um gráfico investigando a relação entre:

  • consumo de cimento;
  • resistência à compressão.

Utilize um gráfico de dispersão com geom_point().

Acrescente, se considerar apropriado, uma linha de tendência.

O gráfico fornece evidências visuais para a afirmação:

“Quanto maior o consumo de cimento, maior tende a ser a resistência do concreto.”

Justifique.


Questão 35

Produza um gráfico para investigar a relação entre:

  • relação água/cimento;
  • resistência à compressão.

Utilize ggplot2.

Apresente o gráfico e interprete o padrão observado.

Os dados apresentam alguma tendência que mereça investigação?


Etapa 10 — Questões próximas da prática profissional

Questão 36 — Comparação entre obras

O engenheiro responsável afirma:

“Os concretos utilizados no Bloco C apresentam desempenho superior aos utilizados nos demais blocos.”

Utilize dplyr e ggplot2 para verificar se os dados dão suporte a essa afirmação em termos descritivos.

Não é necessário realizar um teste de hipótese. O objetivo é explorar os dados.


Questão 37 — Idade e resistência

Compare a resistência média dos concretos com diferentes idades.

Utilize group_by() e summarise() para obter as médias.

Em seguida, produza uma representação gráfica adequada.

O que acontece com a resistência à medida que aumenta a idade do corpo de prova?


Questão 38 — Resumo para o engenheiro

O controle tecnológico da empresa precisa produzir um relatório para o engenheiro responsável.

Utilizando dplyr, construa uma tabela-resumo contendo pelo menos cinco informações estatísticas que você considera importantes para o acompanhamento da qualidade do concreto.

Justifique a escolha de cada informação.


Desafio final — O engenheiro responsável pelos dados

Você recebeu uma planilha produzida por diferentes profissionais da empresa e não sabe previamente quais erros foram cometidos durante a coleta e a digitação.

Desenvolva um script em R utilizando prioritariamente a família tidyverse capaz de:

  1. realizar uma inspeção inicial da base;
  2. identificar possíveis problemas;
  3. verificar valores ausentes;
  4. identificar inconsistências nas variáveis;
  5. produzir uma versão limpa dos dados;
  6. gerar estatísticas descritivas relevantes;
  7. criar pelo menos duas variáveis derivadas;
  8. produzir pelo menos dois gráficos;
  9. gerar informações que possam auxiliar o engenheiro responsável pela obra.

O script deverá ser organizado de forma que outro engenheiro consiga compreender as etapas realizadas.

Procure organizar o código em etapas, utilizando comentários para explicar as principais decisões.


Requisitos do desafio

Procure utilizar, sempre que possível, ferramentas da família tidyverse, tais como:

library(tidyverse)

read_csv2()
glimpse()

select()
filter()
mutate()
summarise()
arrange()
group_by()
count()
distinct()

across()
case_when()
if_else()

str_trim()
str_to_upper()
str_replace()
str_replace_all()
str_detect()

parse_double()

map()
map_dbl()

pivot_longer()
pivot_wider()

ggplot()
geom_point()
geom_boxplot()
geom_histogram()

Não é necessário utilizar todas as funções.

O mais importante é que o código seja coerente com o problema, organizado e justificável.

Importante: nesta atividade, as soluções devem priorizar as ferramentas da família tidyverse. Evite utilizar as funções de Base R trabalhadas como foco principal no Relatório 02 quando existir uma alternativa adequada no tidyverse.

Para ajudar no desenvolvimento do relatório, inserimos uma tabela abaixo para comparar as funções correlatas usadas no Relatório 2 e Relatório 3.

Relatório 02 — Base R Relatório 03 — Tidyverse
read.csv2() read_csv2()
str() glimpse()
subset() filter()
seleção dados[, ] select()
criação de variável mutate()
ifelse() if_else()
múltiplas condições case_when()
tapply() group_by() + summarise()
aggregate() group_by() + summarise()
apply() across()
lapply() map()
sapply() map_*()
ave() group_by() + mutate()
tratamento textual stringr
conversão numérica readr
reorganização tidyr
gráficos ggplot2

Reflexão final

Depois de concluir a atividade, responda:

Qual é a principal diferença entre resolver um problema de processamento de dados utilizando Base R e utilizando as ferramentas da família tidyverse?

Em seguida, responda:

Por que o processamento e a limpeza dos dados são etapas fundamentais antes da aplicação de métodos estatísticos na Engenharia Civil?

Finalmente, descreva brevemente:

  • qual foi o principal problema encontrado na base;
  • qual decisão você tomou para tratá-lo;
  • quais funções do tidyverse foram utilizadas;
  • por que você considera que sua solução é adequada.

ENTREGA

A entrega deverá conter:

  • o arquivo da base de dados;
  • o código R desenvolvido;
  • os resultados obtidos;
  • as tabelas produzidas;
  • os gráficos produzidos;
  • as justificativas das decisões tomadas durante o processamento.

O código deverá estar organizado e comentado.

O objetivo principal não é apenas produzir respostas numéricas, mas demonstrar que você consegue usar o R e as ferramentas da família tidyverse para transformar uma base de dados bruta em uma fonte de informação confiável para a tomada de decisão na Engenharia Civil.

DATA DA ENTREGA:

  • Até às 18h do dia 07/09/2026

Aulas

🎓 Aula 1

Temas: Apresentação da disciplina e Introdução ao R

🎓 Aula 2

Temas: Introdução ao R (Parte II), R Markdown, Quarto e Github

🎓 Aula 3

Temas: Como desenvolver nossos relatórios de avaliação

🎓 Aula 4

Temas: Estatística Descritiva

🎓 Aula 5

Temas: Processamento de dados (Parte I)

Script Aula 05.R

🎓 Aula 6

Temas: Processamento de dados (Parte II)

Script Aula 06.R

🎓 Aula 7

Temas: Gráficos em R

Script Aula 07.R

Quiz

Quais as datas de avaliação?

Acessem: Avaliação e Cronograma

Como acessar o material de apoio?

Próximo