Introdução à análise de dados em ambiente R
Última atualização: 2025-09-18.
Código fonte: https://github.com/ricoperdiz/2025_analiseDadosR_SemanaBioCBIO.
Adições
Inserção do
ggplot2na Seção 4.Inserção de uma seção curta sobre a função de ajuda do R (==
?).
Apresentação
Bem-vindos ao mundo do R!
O R é uma linguagem de programação desenhada para a análise de dados.
Neste minicurso, apresentaremos resumidamente comandos básicos em R que cobrem quase todo o ciclo da análise de dados (Figura 1). Nosso intuito é demonstrar o poder do R enquanto ferramenta para a análise de dados. Oferecemos então uma introdução à importação de dados, checagem e transformação de dados, manipulaçao
Por que R?
🔰 Básico em R
Vamos começar com alguns comandos básicos. Para atribuir dados a uma variável, isto é, criar variáveis, podemos utilizar os operadores <- ou =. Vejam abaixo:
Podemos fazer operações matemáticas e guardar resultado das operações em objetos.
Ver o conteúdo de um objeto
Para ver o conteúdo de um objeto, basta digitar seu nome e rodar o código. Por exemplo, para ver a soma, que está no objeto soma, fazemos assim:
Concatenando elementos com a função c()
Podemos concatenar elementos utilizando a função c(). Chamamos esse conjunto de elementos de vetores:
Acima, criamos os vetores numeros e letras. Reparem que em letras adicionamos letras do alfabeto entre aspas "". Devemos fazer isso toda vez que desejarmos guardar texto em um objeto.
Criar tabelas com a função data.frame()
Podemos criar tabelas, que no R chamamos de data.frame. Cada coluna precisa ser um vetor (criado com a função c()). A função data.frame() junta esses vetores, criando uma tabela.
Em nosso exemplo exposto abaixo, os argumentos ID, Nome e Idade representam os nomes das colunas de nossa tabela, guardada no objeto dados_exemplo:
Podemos ver o conteúdo de dados_exemplo também simplesmente executando o nome do objeto:
Pacotes de R
Pacotes em R são conjuntos de funções ou conjuntos de dados. Utilizamos a função install.packages() para instalar esses pacotes. Neste curso, faremos uso dos pacotes dplyr (Wickham et al. 2023), palmerpenguins (Horst, Hill, e Gorman 2020), e ggplot2 (Wickham 2016). Primeiro, devemos instalar os pacotes. Em seguida, carregamos os pacotes de interesse para nossos objetivos.
install.packages() VS. library()
Instalamos pacotes R uma vez apenas, para cada versão de R que tivermos instalado no computador. Por outro lado, a cada sessão nova de R, devemos carregar os pacotes utilizando a função library(), de forma que as funções dos pacotes estejam disponíveis na sessão.
A função install.packages() é como instalar um aplicativo no seu celular: você faz uma vez. O library() é como abrir esse aplicativo para usá-lo: você precisa fazer isso em cada nova sessão que iniciar.
O pacote dplyr inaugurou uma nova sintaxe em R (ver a postagem O que é o Tidyverse para mais informações), que permite a manipulação de dados tabulares de maneira mais prática e com mais clareza ao usuário.
O ggplot2 (Wickham 2016) é a ferramenta de visualização mais popular em R e será utilizada neste minicurso. Ele segue uma “gramática de gráficos”, em que você constrói o gráfico em camadas.
Por sua vez, o pacote palmerpenguins (Horst, Hill, e Gorman 2020) oferece um conjunto de dados referente à morfologia de três espécies de pinguins que ocorrem no [arquipélago de Palmer](https://en.wikipedia.org/wiki/Palmer_Archipelagono noroeste da península Antártica.
install.packages(c("dplyr", "palmerpenguins", "ggplot2"))Agora carregaremos o pacote por meio da função library(). Devemos inserir o nome do pacote que queremos carregar entre os parênteses, com ou sem aspas.
library("dplyr")
library("palmerpenguins")
library("ggplot2")🧳 Importando dados 🎲
Para a análise de dados, precisamos carregar dados 😄😄😄. Existem diversas maneiras de importar dados ao R. Importaremos um arquivo CSV referente ao pacote R palmerpenguins (Horst, Hill, e Gorman 2020).
Quando executamos os dados lidos pela função read.table(), podemos acabar vendo muita coisa, o que pode acabar incomodando. Desta forma, pode-se utilizar a função head() para ver apenas as primeiras seis linhas da tabela.
read.csv() e read.table()
O R possui diferentes funções para ler tabelas:
read.csv()é uma forma simplificada de read.table() já configurada para ler arquivos separados por vírgula (,) e com ponto (.) como separador decimal.read.table()é mais flexível, permitindo ajustar separador (sep) e símbolo decimal (dec).
Inspeção básica - head(), tail(), str(), summary() e glimpse()
Agora que os dados foram lidos, vamos inspecioná-los. Para ver as primeiras linhas/valores de um objeto, utilizamos a função head():
Para observar os últimos valores, utilizamos a função tail():
Podemos utilizar a função dplyr::glimpse() para ver a estrutura dos dados:
Além de dplyr::glimpse(), duas funções muito úteis para inspecionar dados são:
str(): mostra a estrutura do objeto.summary():gera um resumo estatístico das variáveis numéricas e uma contagem das categorias.
🧹 Limpeza e checagem de dados 👀
Dados do mundo real raramente são perfeitos. Precisamos limpá-los.
Dados ausentes (NA): Verificando e lidando com valores
NA.Tipos de colunas: Garantindo que cada coluna tenha o tipo de dado correto (numérico, texto, etc.).
Dados ausentes
Removendo linhas com NA
Para remover todas as linhas que apresentarem valoes ausentes, podemos utilizar a função na.omit().
Agora checamos os dados após a remoção das linhas com dados ausentes:
Renomear colunas
Podemos renomear colunas utilizando a função dplyr::rename():
Veja agora o resultado da renomeação das colunas:
Transformação de tipos de dados/colunas
Às vezes, uma coluna que deveria ser numérica (por exemplo, com números) é lida como um texto. Isso pode acontecer quando a coluna tem algum valor não numérico, como um caractere especial ou um espaço.
Para resolver, podemos converter o tipo de dado. Por exemplo, vamos transformar a coluna body_mass_g para o tipo numérico usando a função as.numeric():
O R possui uma função, chamada ajuda “help”, que deve ser utilizada para obtermos informação sobre o que uma função executa. Para obter essa ajuda, devemos pegar a função e executá-la da seguinte forma:
?read.table
?na.omit
?cAo utilizar o ? junto ao nome de uma função, sem os parênteses, uma janela se abre contendo várias informações úteis referentes ao que aquela determinada função faz. Teste aí!
Prática I: o básico na ponta dos dedos
Explore agora as lições dadas até então.
Agora é sua vez: crie um vetor chamado idades contendo os valores 20, 25, 30, 35. Some 10 a cada idade e verifique o resultado.
🛠️ Manipulação e transformação de dados 🪛
Utilização do pipe |>
O R desde a versão 4.1.0 permite a utilização do operador |>, popularmente chamado de pipe (cano, em tradução literal), que permite o encadeamento de ações na linguagem. Isso serve apenas para facilitar a leitura do código. Assim lemos o código da esquerda para a direita.
Por exemplo, usando os exemplos anteriores, poderíamos fazer uso do pipe da seguinte maneira:
Reparem que o resultado é o mesmo apresentado na Seção 5.1.
O verdadeiro poder do pipe |> aparece quando encadeamos múltiplas operações em sequência. Isso nos permite realizar uma análise completa em poucas linhas de código, mantendo a lógica clara.
Exemplo
Vamos filtrar os pinguins da espécie Adelie, selecionar a coluna de massa corporal, remover os valores ausentes e, por fim, calcular a média
Veja como o |> torna essa sequência de passos fácil de ler:
|> funciona como um cano!
Pense no |> como um cano que ‘passa’ o resultado do comando anterior para a próxima função. Isso nos permite ler o código da esquerda para a direita, como uma sequência de passos.
Sem o pipe, o mesmo processo seria mais complexo e difícil de ler, pois uma função ficaria aninhada dentro da outra:
O |> transforma essa sintaxe confusa em uma sequência lógica de comandos.
Pacote dplyr
select(): Escolhe colunas.filter(): Filtra linhas.mutate(): Cria novas colunas ou altera existentes.group_by()esummarize(): Agrupa dados para fazer resumos.
Filtrando pinguins com barbatanas maiores que 200 mm:
🧠 Microdesafio
Filtre apenas os pinguins da ilha Dream:
Seleção de colunas - dplyr::select()
Podemos selecionar colunas com a função select():
Criação de novas colunas - dplyr::mutate()
Para criar novas colunas, usamos a função mutate().
Podemos fazer isso baseados em condições. Por exemplo, a função case_when() é ótima para aplicar várias regras, enquanto o ifelse() é mais simples e ideal para regras de ‘se isso, então aquilo’.
Agrupamento e sumarização de dados - group_by() e summarise()
Podemos agrupar os dados por qualquer variável e fazer sumários estatísticos, úteis na análise exploratória de dados. Para agrupar os dados, utilizamos a função group_by(); e para sumarizar, utilizamos a função summarise().
A função summarise() é incrivelmente poderosa para resumir seus dados. Além de calcular a média (mean()), podemos usar várias outras funções estatísticas para obter uma visão mais completa de cada grupo.
Imagine que queremos entender não apenas a média, mas também a variabilidade dos dados. Podemos calcular o desvio padrão (sd()), o valor mínimo (min()) e o máximo (max()) do comprimento da barbatana por espécie.
na.rm = TRUE
O na.rm = TRUE que você vê dentro das funções mean(), sd(), min() e max() significa ‘remova os valores NA (valores ausentes) antes de fazer o cálculo’. Isso evita erros e garante que a função opere apenas com os dados disponíveis.
Simplificando contagens com count()
A função count() do pacote dplyr é a maneira mais simples e direta de realizar contagens por grupos. É uma ferramenta essencial na análise exploratória.
Enquanto summarise() pode ser usado para contar, a função count() foi feita para essa tarefa, tornando o código mais simples e intuitivo. Ela automaticamente agrupa os dados e conta a frequência de cada categoria.
Por exemplo, se quisermos saber a quantidade de pinguins de cada espécie em cada ilha, basta usar count() e especificar as colunas:
É uma maneira rápida e elegante de resumir a distribuição dos dados categóricos.
Prática II: manipulando dados 💾
Explore agora o que fizemos até o momento: selecionar colunas, renomear algumas, criar novas colunas:
📈 Visualização de dados 📊
O pacote ggplot2 (Wickham 2016) uma “gramática de gráficos”, em que você constrói o gráfico em camadas. As funções básicas do pacote, nesta ordem, são:
ggplot(): Define os dados e a estética (aes()).geom_*: Adiciona as camadas geométricas (pontos:geom_point(); barras:geom_col(); linhas:geom_line()).
Façamos um histograma do comprimento do bico dos pinguins:
Visualizando relações entre variáveis
Gráfico de dispersão entre comprimento de barbatana (flipper_length_mm) e massa corporal (body_mass_g)
Explorando relações complexas
Podemos adicionar mais variáveis aos nossos gráficos usando a estética.
color: Mapeia uma variável categórica para a cor.facet_wrap()efacet_grid(): Cria sub-gráficos para cada categoria.
Gráficos de facetas
As facetas facilitam a visualização de dados por grupos. Há duas funções que produzem as facetas:
facet_wrap(), quando você quer visualizar dados por apenas uma variável;facet_grid(), que deve ser utilizada quando você quer ver a combinação entre duas variáveis.
Gráfico de barras com geom_col()
Além de histogramas e dispersões, gráficos de barras são muito úteis:
Prática III: visualizando relações
Agora é a sua vez de testar. Use o espaço abaixo para selecionar váriaveis e plotar. Se você não lembrar do nome das variáveis, use as funções str() ou dplyr::glimpse() para relembrar, checando assim a estrutura dos dados.
🧠 Desafio relâmpago 🌩️
Filtre apenas os pinguins da espécie
Adeliee faça um gráfico de dispersão entreflipper_length_mmebody_mass_g. Use cores diferentes para cada ilha.
Conclusão e próximos passos
Parabéns! Você concluiu este minicurso introdutório. Vimos (quase) o ciclo completo da análise de dados: importação, limpeza, transformação e visualização.
Onde seguir a partir daqui?
Aprofundar-se na linguagem R: Buscar dominar a linguagem. Há muita literatura disponível (Vicentini e Perdiz 2021).
Modelagem Estatística: Aprenda a construir modelos de regressão, etc.
Machine Learning: Mergulhe em algoritmos de previsão.
Comunicação: Aprenda a criar dashboards interativos com pacotes como o Shiny.
Exercício prático
Tente aplicar o que aprendeu em um novo conjunto de dados.