Os operadores são comandos que aplicamos as expressões que escrevemos em nossos códigos para executar uma ação (a operação).
Um exemplo é uma operação de soma (+), que utilizamos em nossas calculadoras 9ou no R).
Em termos de execução de operações, você pode usar O R:
Operadores matemáticos usados nas operações: + +, -, *, /, ^ ou **
Você pode usar operadores matemáticos da mesma maneira que você utilizaria em uma calculadora. Por exemplo para somar (´+) ou subtrair (-`) números (reais e complexos!):
5+5
7 - 3.5
## [1] 10
## [1] 3.5
De maneira similar, você pode multiplicar (*) ou dividir (/) números: or divide / numbers:
5 * 7
8 / 4
## [1] 35
## [1] 2
Ou mesmo tentar fazer operações impossíveis:
8/0
## [1] Inf
ou aquelas com infinitas soluções possíveis:
0/0
## [1] NaN
Pode também calcular a potência de números, usando o símbolo ^ (ou **!):
2 ^ 3
3 ** 2
## [1] 8
## [1] 9
Você deve usar parênteses ()para informar ao R a ordem de prioridade para execução das operações:
5 * (2 + 4 / 2)
## [1] 20
que é diferente de:
5 * 2 + 4 / 2
## [1] 12
Sugiro que você sempre use parênteses para delimitar claramente o numerador e o denominador de divisôes ou a base e o expoente em potências. Criar esse hábito, mesmo em situações que você julgue os parênteses desnecessários, pode evitar problemas futuros:
(2*3)/(4 + 4)
## [1] 0.75
(2*pi)**(1.2)
## [1] 9.074357
Operadores matemáticos usados nas operações: + +, -, *, /, ^ ou **
No R, há operações que são também executadas com vetores, ou seja, não apenas com escalares (valores únicos). As operações aritméticas, ou sejam, a adição, a subtração, a multiplicação e a divisãoOperations, têm essa propriedade de operarem vetorialmente. Se você aplica operadores aritméticos em vetores, a operação é executada individualmente nos elementos correspodentes de cada vetor (operador é aplicado nos elementos da mesma posição em cada vetor).
No exemplo abaixo, são criados dois vetores numéricos, os quais são atribuídos às variáveis primieore segundo:
primeiro <- c(1, 3, 5, 7, 9)
segundo <- c(2, 4, 6, 8, 10)
a soma desses dois vetores é:
soma <- primeiro + segundo
soma
## [1] 3 7 11 15 19
ou seja, o primeiro elemento do vetor soma (3) é a soma dos primeiros elementos dos vetores primeiroe segundo (1 + 2), o segundo elemento (7) é a soma dos segundos elementos (3 + 4) e assim consecutivamente. Cuidado, pois, os vetores tem de ter o mesmo tamanho.
De maneira similar, podemos aplicar qualquer outra operação aritmética:
divisao <- primeiro / segundo
divisao
## [1] 0.5000000 0.7500000 0.8333333 0.8750000 0.9000000
Usando o mesmo princípio, o primeiro resultado da divisao é 1/2 = 0.5, o segundo é 3/4 = 0.75 e assim por diante.
E se efetuarmos a potência desses dois vetores? Como o R vetorizou essa operação?
primeiro ** segundo
Considere agora um terceiro vetor, de tamanho diferente dois dois anteriores.
terceiro <- c(11, 13, 15)
O que acontece se você tenta somar primeiroe terceiro? Tente.
primeiro + terceiro
## Warning in primeiro + terceiro: comprimento do objeto maior não é múltiplo do
## comprimento do objeto menor
Acostume-se com essa mensagem de erro, pois, é comum tentarmos operações vetorizadas com vetores de tamanhos diferentes!
Mais uma colocação: e se aplicarmos uma operação aritmética entre um escalar (um número único) e um vetor. Para multiplicação e divisão nós sabemos lá da Matemática que o mesmo escalar é multiplicado (dividido) por cado elemento do vetor. E o que acontece com as outras operações aritméticas (soma, subtração e potênciação)? Tente e verifique cuidadosamente os resultados individuais.
primeiro + 4
primeiro - 4
primeiro * 4
primeiro / 4
primeiro ^ 4
Operadores matemáticos usados nas operações: ==, !=, <, >,<= e >=.
Os operadores de relação são usados para comprarar dois valores. A sáida dessas operações é sempre um valor lógico. TRUEou FALSE. Há seis tipos diferentes de operações de relação: \(=\), \(\not =\), \(<\), \(>\), \(\leq\) e \(\geq\), correspondentes respectivamente aos símbolos dos operadores, apresentados acima.
Os operadores de igualdade (==) e de diferença (!=) verificam se os dois valores são os mesmos:
2 == 1 + 1
2 != 1 - 1
## [1] TRUE
## [1] TRUE
Os operadores < (menor que) e > (maior que) veirifcam, respectivamente, se um valor é menor ou maior que o outro.
2 > 4
2 < 4
2 > 1 + 1
## [1] FALSE
## [1] TRUE
## [1] FALSE
Os operadores <= (menor ou igual) e >= (maior ou igual) combinam a verificação de igualdade com a comparação de menor ou maior, respectivamente.
2 >= 4
2 <= 4
2 >= 1 + 1
## [1] FALSE
## [1] TRUE
## [1] TRUE
Todos esses operadores podem ser aplicados em vetores com mais de um elemento. Nesse caso, cada elemento de um vetor é comparado com o elemento correspondente do outro vetor.
quarto <- c( 2, 4, 5, 7, 10)
quarto == primeiro
## [1] FALSE FALSE TRUE TRUE FALSE
Portanto a saída deste exemplo é baseada nas seguintes comparações: \(2 = 1\)? (a resposta é não - FALSE), \(4 = 3\)? (a resposta é FALSE), \(5 = 5\),(a resposta é sim - TRUE) e assim por diante.
Podemos também descobrir quais são esses elementos que são iguais e que estão na mesma posição nos dois vetores:
quarto[quarto == primeiro]
## [1] 5 7
Vamos aprender em nossa próxima lição o uso dos colchetes ([]).
Operadores matemáticos usados nas operações: &, | e !
O operador & (E) é usado para verificar se afirmações múltiplas são VERDADEIRAS (TRUE) ao mesmo tempo. Por exemplo, poderíamos verificar se 3 é maior que 1 e, ao mesmo tempo, se 4 é menor que 2:
(3 > 1) & (4 < 2)
## [1] FALSE
Sabe-se que 3 é de fato maior que 1, mas 4 não é menor que 2. Como uma das afirmações é FALSA, o resultado da avaliação combinada das avaliações é FALSE.
Por outro lado, o operador | (OU) verifica se pelo menos uma das afirmações é TRUE(VERDADEIRA). No nosso exemplo:
(3 > 1) | (4 < 2)
## [1] TRUE
Como é VERDADE que \(3 > 1\), o resultado da combinação de afirmações acima é TRUE. Importante lembrar que uma avaliação de afirmações combinadas por OU terá resultado FALSE apenas se todas as afirmações forem FALSE. .
O operador ! (complementar) é usado para a negação dos valores lógicos, ou seja, ele torna os valores TRUE em FALSEe vice-versa. Dito de outra maneira, Se nós temos uma afirmação (ou combinação de afirmações) resultando em um valor lógico TRUEou FALSE, nós podemos negar o resultado aplicando o operador !.
!(3 > 2)
## [1] FALSE
Ou seja, na realidade, estamos verificando o complementar da comparação \(<\), que que é \(\geq\).
!(3 < 3)
3 > 3
3 >= 3
## [1] TRUE
## [1] FALSE
## [1] TRUE
O operadores lógicos, assim como os operadors aritméticos e de relação, podem ser aplicados também a vetores. No exemplo a seguir, usaremos três diferentes vetores vet1, vet2e vet3 e avaliaremos algumas relações combinadas entre eles.
vet1 <- c(1, 21, 3, 4)
vet2 <- c(4, 2, 5, 3)
vet3 <- c(3, 23, 5, 3)
Por exemplo, se (vet1 > vet2) & (vet2 < vet3):
(vet1 > vet2) & (vet2 < vet3)
## [1] FALSE TRUE FALSE FALSE
Primeiro, são avaliada ambas as comparações, vet1 > vet2e ´vet2 < vet3`. Portanto, essencialmente são comparados os seguintes vetores lógicos:
c(FALSE, TRUE, FALSE, TRUE) & c(FALSE, TRUE, FALSE, FALSE)
## [1] FALSE TRUE FALSE FALSE
O operador & verifica se os elementos de mesma posição nos vetores atendem ambas condições. Assim, para cada elemento do vetor da solução, o valor será TRUEapenas se ambas as condições forem TRUE naquela posição do vetor, ou seja, se qualquer um dos valores do par for FALSE o resultado da combinação será FALSE.
O operador | verifica se é TRUE o valor de qualquer um dos elementos de mesma posição nos vetores, ou seja, se qualquer dos valores dos pares de mesma posição for TRUE, o resultado da combinação será TRUE.
c(FALSE, TRUE, FALSE, TRUE) & c(FALSE, TRUE, FALSE, FALSE)
## [1] FALSE TRUE FALSE FALSE
%in% entre vetores:Operador matemático usado na operação: %in%
É um operador especial e muito usado. Ele verifica se um elemento de um vetor está pertence ou não em um outro vetor qualquer. No exemplo a seguir, é usada a variável UE contendo a abreviatura de todos os países da União Européia. Então, verifica-se se o caractere "AU"está presente na variável ’UE`.
UE <- c("AU","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU",
"IE","IT","LT","LU","LV","MT","NL","PO","PT","RO","SE","SI","SK")
"AU" %in% UE
## [1] TRUE
Por sua vez, o exemplo a seguir estende a busca e compara múltiplos elementos com o conteúdo da variável UE. A saída do resultado dessa busa é um vetor lógico, contendo um valor lógico para cada elemento do primeiro vetor:
c("AU","HU","UK") %in% UE
## [1] TRUE TRUE FALSE
Verifica-se na saída que os dois primeiros elementos "AU"e "HU"estão presentes na variável UEe que o terceiro elemento, não.
Fonte: Quantargo Blog. Use basic operators. R bloggers, May 8, 2020. Disponível em: https://www.r-bloggers.com/2020/05/use-basic-operators/