| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
| + | Adição | 5 + 3 | 8 |
| - | Subtração | 10 - 5 | 5 |
| * | Multiplicação | 3 * 5 | 15 |
| / | Divisão | 10 / 2 | 5 |
| %% | Resto da divisão | 10 %% 4 | 2 |
| %/% | Divisão inteira | 11 %/% 3 | 3 |
| ^ | Exponenciação | 2 ^ 3 | 8 |
Operações e estrutura básica
Toda grande análise começa com coisas simples: somar, comparar, organizar. Parece básico, e é mesmo. Mas é como aprender acordes no violão: no começo são só posições, depois viram música. Aqui você começa a perceber que pequenas operações, quando bem feitas, viram raciocínios poderosos.
➕ Operações aritméticas
São usadas para fazer contas com números e a saída sempre são números.
🧩 Operações lógicas
São usadas para fazer comparações ou decisões e a saída pode ser TRUE ou FALSE.
| Operador | Significado | Exemplo | Resultado |
|---|---|---|---|
| == | igual a | 1 == 1 | TRUE |
| != | diferente de | 3 != 3 | FALSE |
| < | menor que | 4 < 4 | FALSE |
| <= | menor ou igual a | 2 <= 2 | TRUE |
| > | maior que | 5 > 3 | TRUE |
| >= | maior ou igual a | 9 >= 8 | TRUE |
| !x | negação de x | !(3 != 3) | TRUE |
| x | y | x OU y | (1 == 1) | (3 != 3) | TRUE |
| x & y | x E y | (1 == 1) & (3 != 3) | FALSE |
| x %in% y | x está contido em y | c(1, 2) %in% c(1, 2, 3, 4) | TRUE TRUE |
No caso de x | y, é preciso que pelo menos uma das condições seja verdadeira para retornar TRUE, caso contrário, retornará FALSE.
Enquanto para x & y, todas as condições precisam ser verdadeiras para retornar TRUE, senão, retornará FALSE.
Já para x %in% y, tanto x quanto y são vetores, cuja definição será abordada mais adiante.
🏷️ Variáveis, classes e objetos
Regras para nomear uma variável:
Nomes de variáveis devem começar com uma letra.
Podem conter letras, números, pontos (.) e sublinhados (_).
Maiúsculas e minúsculas são consideradas diferentes.
As principais classes de objetos são:
numeric: números, que podem ser inteiros, sem casas decimais, ou reais, com casas decimais.character: textos.logical: TRUE ou FALSE.factor: categorias.
No código abaixo, foi atribuido à variável variavel_numerica um objeto de classe numeric com valor 2.5.
# atribuição
variavel_numerica <- 2.5
# imprime o valor da variável
variavel_numerica
#> [1] 2.5
# imprime a classe da variável 'variavel_numerica'
class(variavel_numerica)
#> [1] "numeric"Abaixo, a variável variavel_numerica é convertida para texto com a função as.character. Observe também que textos são escritos entre aspas.
# converte 'variavel_numerica' para texto (character)
variavel_textual <- as.character(variavel_numerica)
variavel_textual
#> [1] "2.5"
# imprime a classe da variável 'variavel_textual'
class(variavel_textual)
#> [1] "character"
# reatribui um valor para a variavel 'variavel_textual'
variavel_textual <- "dois ponto cinco"
variavel_textual
#> [1] "dois ponto cinco"Agora, obtém-se uma variável lógica a partir das variáveis variavel_numerica e variavel_textual.
# verifica se 2.5 é igual a "dois ponto cinco", a partir do operador lógico '=='
verificacao <- variavel_numerica == variavel_textual
verificacao
#> [1] FALSE
class(verificacao)
#> [1] "logical"
# pergunta se a variável 'verificacao' armazena um objeto de classe 'logical'
is.logical(verificacao)
#> [1] TRUE🔢 Vetores e seleção de elementos
Vetores armazenam vários elementos de mesma classe.
Como criar vetores
# vetor de nomes
vetor_de_nomes <- c("Bernardo", "Danilo", "José", "Emanuel", "Kauann", "Guilherme")
vetor_de_nomes
#> [1] "Bernardo" "Danilo" "José" "Emanuel" "Kauann" "Guilherme"
# vetor de números
vetor_de_numeros <- c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# é o mesmo que:
vetor_de_numeros <- seq(0, 9, 1) # sequência de 0 a 9, saltando de 1 em 1
# ou:
vetor_de_numeros <- 0:9
vetor_de_numeros
#> [1] 0 1 2 3 4 5 6 7 8 9
# segundo vetor de números
vetor_de_numeros_2 <- c(3, 3, 3, 3, 3)
# é o mesmo que:
vetor_de_numeros_2 <- rep(3, 5) # repetir o número 3 cinco vezes
vetor_de_numeros_2
#> [1] 3 3 3 3 3Cada elemento possui um indexador associado, de modo que o primeiro elemento possui índice 1, o segundo possui índice 2, e assim por diante.
Ou seja, “Bernardo” possui índice 1, “Danilo” possui índice 2, “José” possui índice 3, e assim por diante.
Selecionar elementos por índice
# seleciona um elemento
vetor_de_nomes[2]
#> [1] "Danilo"
# seleciona elementos seguidos
vetor_de_nomes[2:5]
#> [1] "Danilo" "José" "Emanuel" "Kauann"
# seleciona elementos em posições específicas
vetor_de_nomes[c(2,6)]
#> [1] "Danilo" "Guilherme"Selecionar elementos com lógica
# seleciona os nomes diferentes de "Kauann"
vetor_de_nomes[vetor_de_nomes != "Kauann"]
#> [1] "Bernardo" "Danilo" "José" "Emanuel" "Guilherme"
# seleciona os elementos numéricos maiores do que 3
vetor_de_numeros[vetor_de_numeros > 3]
#> [1] 4 5 6 7 8 9