1.8 O R como calculadora

O R é uma calculadora potente. Os exemplos abaixo mostram a informação básica necessária ao uso da ferramenta.

1.8.1 Operadores

  • Operadores de atribuição:

    • use = ou <- ou -> para atribuir valor a objeto ou objeto a objeto
  • Operadores matemáticos:

    • + e - são respectivamente adição e subtração;
    • * e / são respectivamente multiplicação e divisão;
    • ^ equivale à exponenciação.

Vamos testar os operadores abaixo. Execute cada operação, linha a linha:

3 + 3
## [1] 6
3 - 3
## [1] 0
3 * 3
## [1] 9
3 / 3
## [1] 1
3^3
## [1] 27

Objetos numéricos podem ser usados nas fórmulas aritméticas:

# atribua um valor a um ou mais objetos
obj <- 3
obj2 <- 3
# utilize objetos para fazer contas
obj + obj2
## [1] 6
obj - obj2
## [1] 0
obj * obj2
## [1] 9
obj / obj2
## [1] 1
obj^obj2
## [1] 27

1.8.2 Precedência de parênteses

O uso de parênteses permite construir qualquer lógica de precedência no cálculo. Vamos atribuir valores a três objetos e fazer operações matemáticas com eles para exemplificar:

o1 <- 2
o2 <- 4
o3 <- 3

Os resultados não serão os mesmos para:

o1 * o2^o3 - 1 # =127
## [1] 127
o1 * o2^(o3 - 1) # =32
## [1] 32
(o1 * o2)^o3 - 1 # =511
## [1] 511
(o1 * o2)^(o3 - 1) # =64
## [1] 64

1.8.3 Funções e constantes matemáticas

Algumas operações aritméticas podem ser realizadas com algumas funções genéricas que apresentamos no exemplo de código abaixo. Veja o ? para qualquer uma das funções abaixo e siga os links relacionados para ver todas as possibilidades dessas funções genéricas de uso genérico.

?srqt
?abs
?log
?log10
?sin
?cos
?asin
?ceiling
?floor
?round

Veremos adiante que essas funções e operações matemáticas são aplicáveis à vetores.

# Raiz quadrada
sqrt(9)
## [1] 3
# valor absoluto
abs(-12)
## [1] 12
abs(-66)
## [1] 66
abs(66)
## [1] 66
# logaritmo
log(10) # Logaritmo natural
## [1] 2.302585
log(10, base = 10) # Logbase 10
## [1] 1
log10(10) # Também log de base 10
## [1] 1
# funções trigonométricas
pi # é uma constante do R, um objeto chamado "pi" que tem o valor de 3.141593
## [1] 3.141593
sin(0.5 * pi) # Seno
## [1] 1
cos(2 * pi) # Coseno
## [1] 1
asin(1) # Arco seno (radianos)
## [1] 1.570796
asin(1) / pi * 180
## [1] 90
# arredondamentos
# dois valores
a <- 3.51
b <- 3.49
# para o valor mais alto (ceiling = teto)
ceiling(a)
## [1] 4
ceiling(b)
## [1] 4
# para o valor mais baixo (floor = chão)
floor(a)
## [1] 3
floor(b)
## [1] 3
# arredonda dependendo se casa decimal é maior ou menor que 0.5
round(a)
## [1] 4
round(b)
## [1] 3

1.8.4 NA e valores afins

Frequentemente no R, quando você realiza uma operação errada ou inválida, o R retorna um dos seguintes códigos (constantes lógicas), que são entendidos pelo R como esses valores e portanto podem ser usados na atribuição à objetos:

  • NA = valores ausentes (faltando);

  • NAN ou not a number = valores inválidos;

  • Inf = infinito;

  • -Inf = infinito negativo.

?NA # veja o help sobre isso
# um valor infinito negativo
-5 / 0
## [1] -Inf
# um valor infinito positivo
10 / 0
## [1] Inf

Note que o símbolo Inf serve como valor:

500000000000000000 / Inf
## [1] 0

Ele pode ser atribuído a um objeto:

# e que posso atribui-lo a um objeto
mf <- Inf
500 / mf
## [1] 0
# valor inválido/inexistente
sqrt(-1)
## Warning in sqrt(-1): NaNs produced
## [1] NaN
# valores ausentes entram na matemática
2 * NA
## [1] NA
2 * NaN
## [1] NaN