Folha de Consulta R
Última atualização
Hello World e atribuição
O operador de atribuição idiomático de R é <- (o operador = também funciona).
| Operação | Sintaxe |
|---|---|
| Exibir um valor | print("Hello, World!") |
| Exibir automaticamente (console) | "Hello, World!" |
| Concatenar e exibir | cat("Hi", name, "\n") |
| Atribuir (idiomático) | x <- 5 |
| Atribuir (também válido) | x = 5 |
| Atribuição à direita | 5 -> x |
| Comentário | # this is a comment |
| Executar um script | Rscript app.R |
Tipos de dados e vetores
O vetor é a estrutura de dados fundamental de R; até um único valor é um vetor de comprimento 1.
| Operação | Sintaxe |
|---|---|
| Vetor numérico | v <- c(1, 2, 3) |
| Vetor de caracteres | s <- c("a", "b") |
| Vetor lógico | b <- c(TRUE, FALSE) |
| Sequência de inteiros | 1:10 |
| Sequência com passo | seq(0, 1, by = 0.1) |
| Repetir valores | rep(0, times = 5) |
| Tipos básicos | numeric, character, logical, integer, complex |
| Verificar / coagir tipo | class(x), as.numeric("42") |
Operações com vetores
As operações são vetorizadas e aplicadas elemento a elemento; a indexação é base 1.
| Operação | Sintaxe |
|---|---|
| Acessar elemento (base 1) | v[1] |
| Fatiar um intervalo | v[2:4] |
| Filtragem lógica | v[v > 2] |
| Remover um elemento | v[-1] |
| Matemática elemento a elemento | v * 2, v1 + v2 |
| Comprimento | length(v) |
| Redutores comuns | sum(v), mean(v), max(v) |
| Ordenar / inverter | sort(v), rev(v) |
| Vetor nomeado | c(a = 1, b = 2) |
Data frames
Um data frame é uma tabela de colunas, cada uma um vetor de comprimento igual.
| Operação | Sintaxe |
|---|---|
| Criar um data frame | df <- data.frame(name = c("Ada"), age = c(30)) |
| Primeiras / últimas linhas | head(df), tail(df) |
| Dimensões | nrow(df), ncol(df), dim(df) |
| Nomes das colunas | names(df), colnames(df) |
| Selecionar uma coluna | df$age ou df[["age"]] |
| Selecionar linhas / colunas | df[1, ], df[, "age"] |
| Filtrar linhas | df[df$age > 18, ] |
| Adicionar uma coluna | df$adult <- df$age >= 18 |
| Estatísticas resumo | summary(df) |
| Visão geral da estrutura | str(df) |
Fatores e listas
Fatores armazenam dados categóricos; listas guardam elementos de tipos mistos.
| Operação | Sintaxe |
|---|---|
| Criar um fator | f <- factor(c("low", "high")) |
| Níveis do fator | levels(f) |
| Fator ordenado | factor(x, ordered = TRUE) |
| Contar por nível | table(f) |
| Criar uma lista | l <- list(name = "Ada", scores = c(1, 2)) |
| Acessar por nome | l$name ou l[["name"]] |
| Acessar por posição | l[[1]] |
| Sublista (mantém lista) | l[1] |
| Comprimento / nomes | length(l), names(l) |
Controle de fluxo
As condições vão entre parênteses e os blocos entre chaves.
| Operação | Sintaxe |
|---|---|
| If / else if / else | if (x > 0) { ... } else if (x < 0) { ... } else { ... } |
| If-else vetorizado | ifelse(v > 0, "pos", "neg") |
| Laço for | for (i in 1:10) { ... } |
| For sobre um vetor | for (x in v) { ... } |
| Laço while | while (x < 100) { ... } |
| Repeat com break | repeat { if (done) break } |
| Switch | switch(key, a = 1, b = 2) |
| Operadores lógicos | &&, ||, ! (escalar); &, | (vetor) |
Funções
Funções são de primeira classe; a última expressão avaliada é retornada.
| Operação | Sintaxe |
|---|---|
| Definir uma função | add <- function(a, b) { a + b } |
| Retorno explícito | return(a + b) |
| Argumento padrão | greet <- function(name = "World") { ... } |
| Argumento variádico | f <- function(...) { sum(...) } |
| Chamar por nome | box(w = 2, h = 3) |
| Função anônima | function(x) x * 2 |
| Anônima (forma abreviada) | \(x) x * 2 |
| Passar para uma fn de ordem superior | sapply(1:3, function(x) x^2) |
A família apply
Aplique uma função sobre dados sem escrever laços explícitos.
| Função | O que faz |
|---|---|
apply(m, 1, sum) | Aplica sobre linhas (1) ou colunas (2) da matriz |
sapply(v, f) | Aplica sobre um vetor, simplifica para vetor/matriz |
lapply(v, f) | Aplica sobre um vetor, sempre retorna uma lista |
vapply(v, f, numeric(1)) | Como o sapply, mas com tipo de retorno verificado |
mapply(f, a, b) | Aplica sobre vários vetores em paralelo |
tapply(x, group, mean) | Aplica uma função por grupo |
Map(f, a, b) | Apply multivariado que retorna uma lista |
Reduce(+, v) | Reduz um vetor com uma função binária |
Funções comuns de manipulação de dados e estatística
Funções base usadas com frequência para resumir e remodelar dados.
| Função | O que faz |
|---|---|
mean(v) / median(v) | Média / valor central |
sd(v) / var(v) | Desvio padrão / variância |
min(v) / max(v) / range(v) | Menor / maior / ambos |
quantile(v) | Quantis (ex.: quartis) |
table(x) | Contagens de frequência de valores |
unique(v) / duplicated(v) | Valores distintos / sinalizadores de duplicatas |
is.na(v) / na.omit(df) | Encontrar / remover valores ausentes |
aggregate(y ~ g, df, mean) | Resume y por grupo g |
order(v) | Ordem de índices para ordenação |
cor(x, y) | Correlação entre dois vetores |
A sintaxe de R que você mais usa, em uma única página. Esta folha de consulta R é uma referência rápida para o núcleo da linguagem - atribuição e tipos de dados, vetores e operações com vetores, data frames, fatores e listas, controle de fluxo, funções e a família apply usada em toda a análise de dados em rstats.
Tudo aqui é R base e roda em uma instalação comum - sem pacotes extras necessários. Copie o que precisar ou teste cada trecho ao vivo no playground de R - sem necessidade de configuração.
Perguntas frequentes sobre a folha de consulta R
Esta folha de consulta R é gratuita?
Os vetores de R são realmente indexados a partir de 1?
v[1] retorna o primeiro elemento e v[length(v)] retorna o último. Índices negativos têm um significado especial - v[-1] remove o primeiro elemento em vez de contar a partir do fim. Essa convenção de base 1 vale para vetores, listas e data frames igualmente.O que é um data frame em R?
df[rows, columns], seleciona uma coluna com df$name e o inspeciona com str(df) ou summary(df).