Learn in 10 minutes

Learn in 10 minutes

Aprenda R em 10 minutos

R é uma linguagem de programação e ambiente poderoso para computação estatística, análise de dados e visualização. Este tutorial cobre os conceitos essenciais para você começar com programação em R.

1. Começando com R

Vamos começar com um programa simples. Abra o R ou RStudio e digite o seguinte código:

print("Olá, Mundo!")

Você também pode executar isso no console do R. A saída será:

[1] "Olá, Mundo!"

Este programa simples demonstra a funcionalidade básica de saída do R. A função print() exibe informações de texto no console.

2. Sintaxe Básica e Variáveis

A sintaxe do R é projetada para computação estatística e análise de dados. Vamos explorar a atribuição básica de variáveis e operações.

# Este é um comentário
x <- 5  # Atribuição usando operador <-
y = 10   # Atribuição usando operador = (menos comum)
print(x + y)

Regras básicas de sintaxe no R:

  • Atribuição: Use <- para atribuição de variáveis (preferido) ou =
  • Comentários: Comentários de linha única começam com #
  • Funções: Use parênteses () para chamadas de função
  • Vetores: R é vetorizado - operações funcionam em vetores inteiros

3. Tipos de Dados e Estruturas

R possui vários tipos de dados e estruturas fundamentais para computação estatística.

3.1 Tipos de Dados Básicos

# Numérico (double)
num <- 3.14
print(class(num))

# Inteiro
int <- 42L
print(class(int))

# Caractere (string)
texto <- "Olá R"
print(class(texto))

# Lógico (booleano)
flag <- TRUE
print(class(flag))

3.2 Vetores

Vetores são a estrutura de dados fundamental no R. São arrays unidimensionais que podem conter dados numéricos, de caractere ou lógicos.

# Criando vetores
vetor_numerico <- c(1, 2, 3, 4, 5)
vetor_caractere <- c("maçã", "banana", "cereja")
vetor_logico <- c(TRUE, FALSE, TRUE)

# Operações com vetores
print(vetor_numerico * 2)  # Multiplica cada elemento por 2
print(vetor_numerico + 1)  # Adiciona 1 a cada elemento
print(length(vetor_numerico))  # Obtém o comprimento do vetor

3.3 Listas

Listas são contêineres flexíveis que podem armazenar elementos de diferentes tipos.

# Criando uma lista
minha_lista <- list(
  nome = "João",
  idade = 30,
  notas = c(85, 92, 78),
  ativo = TRUE
)

# Acessando elementos da lista
print(minha_lista$nome)
print(minha_lista[["idade"]])
print(minha_lista[[3]])

3.4 Data Frames

Data frames são a estrutura de dados mais importante para análise de dados no R. São como tabelas com linhas e colunas.

# Criando um data frame
df <- data.frame(
  nome = c("Alice", "Bob", "Charlie"),
  idade = c(25, 30, 35),
  nota = c(88, 92, 85)
)

# Visualizando o data frame
print(df)
print(str(df))  # Estrutura do data frame
print(summary(df))  # Estatísticas resumidas

4. Operações Básicas

R fornece um conjunto rico de operadores para operações matemáticas e lógicas.

# Operações aritméticas
a <- 10
b <- 3

print(a + b)  # Adição
print(a - b)  # Subtração
print(a * b)  # Multiplicação
print(a / b)  # Divisão
print(a ^ b)  # Exponenciação
print(a %% b) # Módulo
print(a %/% b) # Divisão inteira

# Operações de comparação
print(a > b)   # Maior que
print(a == b)  # Igual a
print(a != b)  # Diferente de
print(a <= b)  # Menor ou igual a

# Operações lógicas
print(TRUE & FALSE)  # E
print(TRUE | FALSE)  # OU
print(!TRUE)         # NÃO

5. Estruturas de Controle

R fornece estruturas de controle padrão para fluxo de programa.

5.1 Declarações if

idade <- 20

if (idade >= 18) {
  print("Adulto")
} else if (idade >= 13) {
  print("Adolescente")
} else {
  print("Criança")
}

5.2 Loops for

# Iterando sobre um vetor
frutas <- c("maçã", "banana", "cereja")
for (fruta in frutas) {
  print(fruta)
}

# Usando sequência
for (i in 1:5) {
  print(paste("Número:", i))
}

5.3 Loops while

contador <- 1
while (contador <= 5) {
  print(contador)
  contador <- contador + 1
}

6. Funções

Funções em R são blocos de código reutilizáveis para tarefas específicas.

# Definição básica de função
calcular_area <- function(comprimento, largura) {
  area <- comprimento * largura
  return(area)
}

# Chamando a função
resultado <- calcular_area(5, 3)
print(resultado)

# Função com parâmetros padrão
cumprimentar <- function(nome = "Convidado") {
  return(paste("Olá,", nome))
}

print(cumprimentar("Alice"))
print(cumprimentar())  # Usa parâmetro padrão

7. Manipulação de Dados

R se destaca na manipulação de dados. Vamos explorar algumas operações básicas.

# Data frame de exemplo
alunos <- data.frame(
  nome = c("Alice", "Bob", "Charlie", "Diana"),
  nota_matematica = c(85, 92, 78, 95),
  nota_ciencias = c(88, 90, 82, 96),
  serie = c("A", "A", "B", "A")
)

# Subconjunto de dados
print(alunos[alunos$nota_matematica > 85, ])  # Linhas onde nota_matematica > 85
print(alunos[, c("nome", "nota_matematica")])   # Colunas específicas

# Adicionando novas colunas
alunos$nota_total <- alunos$nota_matematica + alunos$nota_ciencias
alunos$nota_media <- alunos$nota_total / 2

print(alunos)

8. Visualização de Dados

R possui capacidades poderosas de visualização, especialmente com ggplot2.

# Plotagem básica (R base)
# Criando alguns dados de exemplo
x <- 1:10
y <- x^2

# Gráfico de dispersão
plot(x, y, main = "Gráfico de Dispersão", xlab = "X", ylab = "Y", col = "azul", pch = 16)

# Gráfico de linha
plot(x, y, type = "l", main = "Gráfico de Linha", xlab = "X", ylab = "Y", col = "vermelho")

# Histograma
hist(rnorm(100), main = "Histograma", xlab = "Valores", col = "azul-claro")

8.1 Usando ggplot2 (se instalado)

# Instale e carregue ggplot2 se não estiver instalado
# install.packages("ggplot2")
library(ggplot2)

# Criando um data frame de exemplo
dados_plot <- data.frame(
  categoria = c("A", "B", "C", "D"),
  valor = c(25, 40, 30, 35)
)

# Criando um gráfico de barras
ggplot(dados_plot, aes(x = categoria, y = valor)) +
  geom_bar(stat = "identity", fill = "azul-aco") +
  labs(title = "Exemplo de Gráfico de Barras", x = "Categoria", y = "Valor") +
  theme_minimal()

9. Análise Estatística

R é projetado para computação estatística. Aqui estão algumas funções estatísticas básicas.

# Dados de exemplo
dados <- c(23, 45, 67, 34, 56, 78, 89, 12, 45, 67)

# Estatísticas básicas
print(mean(dados))     # Média
print(median(dados))   # Mediana
print(sd(dados))       # Desvio padrão
print(var(dados))      # Variância
print(min(dados))      # Mínimo
print(max(dados))      # Máximo
print(summary(dados))  # Resumo de cinco números

# Correlação
x <- 1:10
y <- x + rnorm(10)  # Adiciona algum ruído
print(cor(x, y))    # Coeficiente de correlação

# Regressão linear
modelo <- lm(y ~ x)
print(summary(modelo))

10. Trabalhando com Arquivos

R fornece funções para leitura e escrita de arquivos.

# Escrevendo em um arquivo
write.csv(alunos, "alunos.csv", row.names = FALSE)

# Lendo de um arquivo
# dados_lidos <- read.csv("alunos.csv")
# print(dados_lidos)

# Trabalhando com arquivos de texto
# writeLines(c("Linha 1", "Linha 2", "Linha 3"), "exemplo.txt")
# conteudo_texto <- readLines("exemplo.txt")
# print(conteudo_texto)

11. Pacotes e Bibliotecas

O poder do R vem de seu extenso ecossistema de pacotes.

# Instalando pacotes
# install.packages("dplyr")  # Para manipulação de dados
# install.packages("ggplot2") # Para visualização

# Carregando pacotes
library(dplyr)
library(ggplot2)

# Usando dplyr para manipulação de dados
# alunos %>%
#   filter(nota_matematica > 85) %>%
#   select(nome, nota_matematica) %>%
#   arrange(desc(nota_matematica))

12. Tratamento de Erros

R fornece mecanismos para tratamento de erros.

# Tratamento básico de erros
tryCatch({
  resultado <- 10 / 0
  print(resultado)
}, error = function(e) {
  print(paste("Erro ocorreu:", e$message))
}, finally = {
  print("Isso sempre executa")
})

# Usando try()
resultado <- try(10 / 0, silent = TRUE)
if (inherits(resultado, "try-error")) {
  print("Divisão falhou")
}

13. Tópicos Avançados

13.1 Funções da Família Apply

As funções da família apply são poderosas para operações vetorizadas.

# Criando uma matriz
mat <- matrix(1:12, nrow = 3, ncol = 4)
print(mat)

# Aplicando funções
print(apply(mat, 1, mean))  # Médias das linhas
print(apply(mat, 2, sum))   # Somas das colunas

# lapply para listas
minha_lista <- list(a = 1:5, b = 6:10, c = 11:15)
print(lapply(minha_lista, mean))  # Média de cada elemento da lista

# sapply (versão simplificada)
print(sapply(minha_lista, mean))

13.2 Manipulação de Strings

texto <- "Olá Programação R"

print(toupper(texto))    # Converte para maiúsculas
print(tolower(texto))    # Converte para minúsculas
print(nchar(texto))      # Conta caracteres
print(substr(texto, 1, 3))  # Extrai substring

# Usando pacote stringr (se instalado)
# library(stringr)
# str_split(texto, " ")  # Divide string

13.3 Data e Hora

# Data e hora atual
hora_atual <- Sys.time()
print(hora_atual)

# Formatando datas
data_formatada <- format(hora_atual, "%Y-%m-%d")
print(data_formatada)

# Aritmética de datas
hoje <- Sys.Date()
data_futura <- hoje + 30
print(data_futura)

14. Melhores Práticas

Aqui estão algumas dicas para escrever código R melhor:

  • Use nomes de variáveis significativos
  • Comente seu código apropriadamente
  • Use operações vetorizadas em vez de loops quando possível
  • Carregue pacotes no início do seu script
  • Use indentação consistente (2 espaços recomendados)
  • Teste seu código com dados de exemplo
  • Use controle de versão para seus projetos

15. Próximos Passos

Para continuar aprendendo R:

  1. Pratique: Trabalhe em pequenos projetos de análise de dados
  2. Explore Pacotes: Aprenda dplyr, ggplot2, tidyr e outros pacotes essenciais
  3. Recursos Online: Use documentação do R, Stack Overflow e R-bloggers
  4. Livros: “R para Ciência de Dados” por Hadley Wickham
  5. Cursos: Faça cursos online sobre análise de dados com R

R é uma ferramenta poderosa para computação estatística e análise de dados. Com prática, você será capaz de realizar manipulações complexas de dados, criar visualizações bonitas e conduzir análises estatísticas sofisticadas.