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:
- Pratique: Trabalhe em pequenos projetos de análise de dados
- Explore Pacotes: Aprenda dplyr, ggplot2, tidyr e outros pacotes essenciais
- Recursos Online: Use documentação do R, Stack Overflow e R-bloggers
- Livros: “R para Ciência de Dados” por Hadley Wickham
- 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.