Introdução

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:

Usando o R como calculadora:

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

Aplicando operadores aritméticos em vetores:

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

Aplicando operadores de relação em vetores:

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 ([]).

Aplicando operadores lógicos em vetores:

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

Usando o operador %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/