1 INTRODUÇÃO

Este documento apresenta um guia sobre os principais conceitos de importação e manipulação de dados em R, conforme os conteúdos estudados em aula. Serão abordadas funções e pacotes importantes no fluxo de análise de dados, desde a leitura de arquivos externos até operações básicas de exploração e transformação dos dados. Cada tópico inclui explicações objetivas, exemplos de código e dicas extras que vão além do solicitado.


2 IMPORTAÇÃO DE DADDOS

A importação de dados é o primeiro passo em qualquer análise, pois precisamos trazer os dados de fontes externas para o ambiente R. Existem diversos pacotes no R que facilitam a leitura de diferentes formatos de arquivo. Aqui destaco três pacotes populares para importação: readxl, readr e googlesheets4, cada um voltado para um tipo de fonte de dados (planilhas Excel, arquivos de texto delimitado e planilhas do Google, respectivamente). A seguir, será mostrado o uso de cada um, incluindo suas funções principais e argumentos-chave:

2.1 Pacote readxlread_xlsx()

O pacote readxl fornece funções para ler arquivos do Excel diretamente no R. A função read_xlsx() é utilizada para importar planilhas no formato .xlsx para um data frame, sem necessidade de abrir o Excel ou exportar para CSV. Essa função é especialmente útil para ler dados de fontes do Excel de forma rápida e sem depender de bibliotecas externas. (ela não requer nem o Excel instalado).

Principais argumentos da função read_xlsx():

Argumento Descrição
path Caminho do arquivo .xlsx a ser importado. Pode ser um caminho absoluto ou relativo no sistema de arquivos.
rsheet Nome ou índice (número) da aba da planilha a ser lida. Por padrão, se não especificado, a primeira aba será importada.
range Intervalo de células a ler, opcional, no formato Excel (por exemplo, A1:C10 para ler do A1 até C10). Útil para ler apenas uma parte da planilha.
col_types Permite especificar manualmente o tipo de cada coluna (ex.: text, numeric, date etc.), caso queiramos forçar ou garantir tipos específicos.

Instalação e carregamento do pacote:

install.packages("readxl")
library(readxl)

Importando uma planilha Excel:

dados_excel <- read_xlsx(path = "dados.xlsx", sheet = 1)

EXEMPLOS:

library(readxl)
dados_excel <- read_xlsx("dados.xlsx", sheet = 1)
dados_vendas <- read_xlsx("dados.xlsx", sheet = "Vendas2025")
dados_parciais <- read_xlsx("dados.xlsx", sheet = 1, range = "A1:C100")
head(dados_excel)

2.2 Pacote readrread_delim()

O pacote readr (parte do tidyverse) é voltado para importação arquivos de texto delimitado, como arquivos CSV, ou outros formatos similares. A função genérica read_delim() permite ler arquivos com qualquer delimitador especificado. Além dela, o readr também oferece funções especializadas como read_csv() (delimitador padrão vírgula), read_csv2() (padrão ponto-e-vírgula), read_tsv() (tabulação), etc., que na prática são casos particulares de read_delim().

Principais argumentos da função read_delim():

Argumento Descricao
file Caminho e nome do arquivo de texto a ser lido. Pode ser um caminho local ou uma URL.
delim Caractere utilizado como delimitador de colunas no arquivo (por exemplo: ‘,’, ‘;’, ’).
col_types Especifica manualmente os tipos de cada coluna, quando necessário (por exemplo, garantir que uma coluna seja numérica ou de texto).
locale Permite ajustar configurações regionais, como encoding (UTF-8), separador decimal, formato de datas etc.

Instalação e carregamento do pacote:

install.packages("readr")
library(readr)

Importando arquivos de texto delimitado:

# CSV com vírgula como delimitador
dados_csv <- read_delim(file = "dados.csv", delim = ",")

# CSV com ponto-e-vírgula
dados_csv2 <- read_delim(file = "dados2.csv", delim = ";")

# Arquivo separado por tabulação (TSV)
dados_tsv <- read_delim(file = "dados.tsv", delim = "\t")

EXEMPLOS:

library(readr)
dados_csv  <- read_delim("dados.csv",  delim = ",")
dados_csv2 <- read_delim("dados2.csv", delim = ";")
dados_tsv  <- read_delim("dados.tsv",  delim = "\t")
head(dados_csv)
dim(dados_csv)

2.3 Pacote googlesheets4read_sheet()

O pacote googlesheets4 permite ler dados diretamente de planilhas hospedadas no Google Sheets, sem a necessidade de download manual.
A função read_sheet() acessa a planilha online (utilizando URL ou ID) e traz os dados para o R.

Principais argumentos da função read_sheet():

Argumento Descricao
ss Identificação da planilha no Google Sheets. Pode ser fornecido como URL completo ou apenas o ID da planilha.
sheet Nome ou índice da aba da planilha a ser lida. Se não especificado, normalmente a primeira aba é utilizada.
range Intervalo de células a ser lido (por exemplo, ‘A1:D20’). Opcional, utilizado para importar apenas parte da planilha.

Instalação e carregamento do pacote:

install.packages("googlesheets4")
library(googlesheets4)

Autenticação e leitura de planilha:

# Autenticação (necessária na primeira utilização)
gs4_auth()

# Leitura de uma planilha (URL fictícia de exemplo)
dados_google <- read_sheet(
  ss    = "https://docs.google.com/spreadsheets/d/SEU_ID_AQUI/edit#gid=0",
  sheet = "Página1"
)

EXEMPLOS:

library(googlesheets4)

gs4_auth()

dados_google <- read_sheet(
  ss    = "https://docs.google.com/spreadsheets/d/SEU_ID_AQUI/edit#gid=0",
  sheet = "Página1"
)

head(dados_google)

3 Combinação de Tabelas

3.1 Função rbind()

A função rbind() empilha data frames por linha, isto é, adiciona as linhas de um data frame abaixo das linhas de outro.
É necessário que as colunas sejam compatíveis (mesmos nomes e tipos, em geral).

Resumo da função rbind()
Funcao Descricao
rbind() Empilha linhas de dois ou mais data frames, exigindo compatibilidade de colunas (nomes e tipos).

EXEMPLOS:

tabela1 <- data.frame(id = 1:2, nome = c("Ana", "Bruno"))
tabela2 <- data.frame(id = 3:4, nome = c("Carla", "Daniel"))

tabelas_unidas <- rbind(tabela1, tabela2)
tabelas_unidas

3.2 Função cbind()

A função cbind() adiciona colunas lado a lado, isto é, combina objetos por coluna.
É necessário que o número de linhas seja o mesmo em todos os objetos a serem combinados. Os objetos podem ser data frames, vetores, etc.

EXEMPLOS:

dados1 <- data.frame(a = 1:3)
dados2 <- data.frame(b = c("X", "Y", "Z"))

dados_combinados <- cbind(dados1, dados2)
dados_combinados

4 Estrutura e Dimensões dos Dados

Para entender o tamanho e a estrutura de um conjunto de dados, utilizamos funções que retornam o número de linhas, colunas e um resumo das variáveis.

Principais funções para explorar estrutura e dimensões:

Funcao Descricao
ncol() Retorna o número de colunas de um objeto (data frame, matriz etc.).
nrow() Retorna o número de linhas de um objeto.
dim() Retorna um vetor com as dimensões (n_linhas, n_colunas).
head() Mostra as primeiras linhas do objeto (por padrão, 6 linhas).
tail() Mostra as últimas linhas do objeto (por padrão, 6 linhas).
str() Exibe a estrutura do objeto, incluindo tipos de variáveis e exemplos de valores.

EXEMPLOS:

df <- mtcars

ncol(df)      # número de colunas
nrow(df)      # número de linhas
dim(df)       # dimensões (linhas, colunas)

head(df, 5)   # primeiras 5 linhas
tail(df, 3)   # últimas 3 linhas

str(df)       # estrutura do data frame

5 Seleção e Subconjuntos

A seleção de colunas e linhas pode ser feita por nome, por posição ou por condições lógicas.

Resumo das formas de e criação de subconjuntos:

Tipo Exemplo
Coluna por nome df$ mpg ou df[[‘mpg’]]
Coluna por índice df[, 1] # primeira coluna
Linhas por índice df[1:5, ] # linhas 1 a 5
Linhas por condição df[df$mpg > 20, ] # linhas em que mpg > 20

EXEMPLOS:

df <- mtcars

# Seleção de colunas
df$mpg
df[["hp"]]
df[, c("mpg", "hp")]

# Seleção de linhas por índice
df[1:5, ]      # primeiras 5 linhas

# Seleção condicional (filtro lógico)
df[df$mpg > 20 & df$cyl == 4, ]  # carros com mpg > 20 e 4 cilindros

6 Funções Estatísticas Básicas

Funções básicas para sumarizar vetores numéricos:

Resumo das funções estatísticas básicas
Funcao Descricao
min() Retorna o valor mínimo de um vetor.
max() Retorna o valor máximo de um vetor.
mean() Calcula a média aritmética.
sd() Calcula o desvio padrão amostral.
median() Retorna a mediana (valor central).
round() Arredonda um número para um determinado número de casas decimais.

EXEMPLOS:

v <- c(2, 5, 7, NA, 3, 10)

min(v)                 # retorna NA
min(v, na.rm = TRUE)   # ignora NAs

max(v, na.rm = TRUE)
mean(v, na.rm = TRUE)
sd(v, na.rm = TRUE)
median(v, na.rm = TRUE)

media_v <- mean(v, na.rm = TRUE)
round(media_v, 2)

7 Comparações Lógicas

Operadores de comparação retornam valores lógicos (TRUE ou FALSE).

Principais operadores:

Operadores de comparação lógica
Operador Descricao
> Maior que.
< Menor que.
== Igual a.
!= Diferente de.
>= Maior ou igual a.
<= Menor ou igual a.
%in% Pertence a um conjunto (verifica se elemento está em um vetor).
! Negação lógica (inverte TRUE/FALSE).

Funções auxiliares importantes:

EXEMPLOS:

x <- 10

x > 5      # TRUE
x < 5      # FALSE
x == 10    # TRUE
x != 7     # TRUE
x >= 10    # TRUE
x <= 9     # FALSE

v <- c(10, 20, 30, 40)
v > 20
v %in% c(10, 30, 50)
!(v == 20)

class(10)
class("texto")
class(mtcars)

8 Operadores Compostos

Operadores compostos permitem combinar condições lógicas:

Resumo:

Operadores lógicos compostos
Operador Descricao
& E lógico: a expressão resulta TRUE apenas se ambas as condições forem TRUE.
| OU lógico: a expressão resulta TRUE se pelo menos uma das condições for TRUE.

EXEMPLOS:

df <- mtcars

# E lógico: mpg > 20 E cyl == 4
df[df$mpg > 20 & df$cyl == 4, ]

# OU lógico: hp > 100 OU wt > 3.5
df[df$hp > 100 | df$wt > 3.5, ]

9 EXTRAS

9.1 Boas Práticas de Importação

Ao importar dados, alguns cuidados ajudam a evitar problemas de acentuação, tipos incorretos de variáveis e valores perdidos.

Boas práticas gerais na importação de dados, principais pontos:

Aspecto Dica
Encoding Verificar se o arquivo está em UTF-8, Latin1 etc. e ajustar com o argumento locale() em readr.
Delimitador Confirmar se o arquivo usa vírgula, ponto-e-vírgula ou tabulação, e ajustar o argumento delim.
Separador decimal Arquivos em português muitas vezes usam vírgula como separador decimal; isso afeta leitura numérica.
Tipos de colunas Quando necessário, especificar col_types para evitar que números sejam lidos como texto, e vice-versa.
Valores especiais Identificar códigos como -999, 9999, ou strings específicas e convertê-los para NA após a importação.

EXEMPLOS:

library(readr)

# Ajustando encoding e separador decimal em um CSV
dados <- read_delim(
  file   = "dados_portugues.csv",
  delim  = ";",
  locale = locale(encoding = "Latin1", decimal_mark = ",")
)

# Especificando tipos de colunas manualmente
dados_tipos <- read_delim(
  file      = "dados_mistos.csv",
  delim     = ",",
  col_types = cols(
    id      = col_integer(),
    nome    = col_character(),
    salario = col_double()
  )
)

9.2 Tratamento de Valores Faltantes (NA)

Muitos arquivos possuem valores faltantes que prejudicam cálculos se não forem tratados.

Ações comuns para tratamento de valores faltantes (NA):

Ação Exemplo
Identificar NAs is.na(x) retorna TRUE onde x é NA.
Ignorar NAs em cálculos Funções como mean(), sd() aceitam o argumento na.rm = TRUE.
Remover linhas com NAs na.omit(df) remove linhas que possuem qualquer NA.
Substituir NAs por valores Substituir NA por 0, média, mediana ou outro valor adequado ao contexto.

EXEMPLOS:

x <- c(10, NA, 5, NA, 7)

# Identificando NAs
is.na(x)

# Cálculo da média ignorando NAs
mean(x, na.rm = TRUE)

# Removendo NAs de um vetor
x_sem_na <- x[!is.na(x)]

# Removendo linhas com NA de um data frame
df_sem_na <- na.omit(df)

# Substituindo NAs por zero (exemplo simples)
x_substituido <- ifelse(is.na(x), 0, x)

9.3 Manipulação Básica com o tidyverse

Embora a atividade foque em funções base do R, o conjunto de pacotes tidyverse é amplamente utilizado em análise de dados moderna.

Funções principais do pacote dplyr (tidyverse):

Funcao Descricao
select() Seleciona colunas de um data frame.
filter() Filtra linhas de acordo com condições lógicas.
mutate() Cria ou modifica colunas.
summarise() Resume o data frame em estatísticas agregadas.
arrange() Ordena linhas por uma ou mais variáveis.

EXEMPLOS:

library(dplyr)

df <- mtcars

df_resumo <- df %>%
  select(mpg, cyl, hp, wt) %>%          # seleciona colunas
  filter(mpg > 20) %>%                  # filtra linhas
  mutate(peso_kg = wt * 453.592 / 1000) %>%  # cria nova coluna
  group_by(cyl) %>%                     # agrupa por número de cilindros
  summarise(
    media_mpg = mean(mpg),
    media_hp  = mean(hp),
    n         = n()
  ) %>%
  arrange(desc(media_mpg))              # ordena pela média de mpg

df_resumo

9.4 Reprodutibilidade e sessionInfo()

Um aspecto importante em trabalhos científicos e relatórios técnicos é garantir que os resultados possam ser reproduzidos, inclusive em outra máquina.

Uma prática simples é registrar a sessão R (versão do R, sistema operacional e pacotes carregados).

Elementos importantes para reprodutibilidade em R
Recurso Papel
sessionInfo() Lista informações sobre a versão do R, OS e pacotes com suas versões.
set.seed() Garante reprodutibilidade de operações aleatórias.
Scripts R/Rmd Permitem registrar comandos de forma organizada e reexecutável.

EXEMPLOS:

# Definir semente para replicar resultados aleatórios
set.seed(123)

amostra <- sample(1:100, size = 10)

# Registrar informações da sessão
sessionInfo()

10 Considerações Finais

Neste documento foram apresentados os principais conceitos de:

Itajubá, novembro/2025.