5.2 Calculadora

O é uma calculadora turbinada com diversas funções matemáticas disponíveis. Para quem não conhece o , essa uma forma de familiarizar-se com a linha de comandos.

5.2.1 Aritmética básica

Todas operações feitas em uma calculadora podem ser realizadas no painel com console do no RStudio. Podemos calcular diversas operações em uma expressão:

10 + 8^2 / 4 - pi
#> [1] 22.85841

Além de números e operadores artiméticos a expressão acima inclui a constante pré-definida (\(\pi\)): pi (=3.1415927).

Note que no R, o separador decimal é o ponto ".", ao invés da vírgula "," usada na notação brasileira. As vírgulas tem a finalidade de separar os argumentos nas chamadas de funções, tal como log(10, 10), que veremos na seção (???)(matfuns) .

As operações no seguem a mesma ordem de precedência que aprendemos em matemática na escola:

  • parênteses: ( )

  • expoentes: ^ou **

  • multiplicação: *

  • divisão: /

Então os parênteses podem ser usados para forçar a ordem das operações acima conforme nossa intenção:

10 + ((8^2) / 4) - pi # parênteses opcionais se você lembrar a regra
#> [1] 22.85841
(10 + 8^2) / 4 - pi
#> [1] 15.35841
(10 + 8)^2 / 4 - pi
#> [1] 77.85841
(10 + 8^2 / 4) - pi
#> [1] 22.85841
10 + (8^2) / (4 - pi)
#> [1] 84.55668
10 + 8^(2 / 4) - pi
#> [1] 9.686834
10 + 8^(2 / 4 - pi)
#> [1] 10.00412

Se você quer saber se um número é divisor exato de outro número (resto da divisão igual a zero), o operador %% determina o resto de uma divisão:

10 %% 2
#> [1] 0
11 %% 2
#> [1] 1

O operador %/% fornece a parte inteira do quociente da divisão entre 2 números.

11 / 2
#> [1] 5.5
11 %/% 2
#> [1] 5

Operações que resultam em números muito pequenos ou muito grandes são representados em notação científica.

5/10000
#> [1] 5e-04

Este mesmo valor pode ser escrito nas seguintes formas equivalentes:

5e-4
#> [1] 5e-04
5E-4
#> [1] 5e-04
5*10^-4
#> [1] 5e-04

O valor absoluto e o sinal de um número podem ser obtidos pelas seguintes expressões:

abs(-6)
#> [1] 6
sign(-6)
#> [1] -1

5.2.2 Cálculos problemáticos

Quando um cálculo não tem sentido matemático ou não pode ser propriamente realizado (Tabela 5.1) surgirão alguns valores numéricos especiais na sua frente, como: Inf(Infinito) e NaN (abreviação do termo em inglês Not a Number - valor indefinido).

Tabela 5.1: Exemplos de operações que resultam em NaN ou \(\pm\infty\) .
operação resultado
2/0 Inf
-12/0 -Inf
log(0) -Inf
(c(-3, 3))^Inf NaN, Inf
0*Inf NaN
log(-0.5) NaN
sqrt(-1) NaN
0/0 NaN
Inf-Inf NaN
mean(c(NA, NA), na.rm = TRUE) NaN

A demonstração das diferentes formas de se obter essas constantes especiais é importante para entender a origem delas ao rodar um script longo.

Por outro lado, há operações válidas com estes valores especiais.

exp(-Inf)
#> [1] 0
(0:1)^Inf
#> [1] 0 1
0 / Inf
#> [1] 0
(-1 * Inf)^0
#> [1] 1
0^0
#> [1] 1

5.2.3 Dados faltantes

Antes do que você imagina, na sua jornada pelo mundo real dos dados ambientais, você irá se deparar com os "NAs". NA é a abreviação do termo em inglês Not Available, uma constante especial do que representa dado faltante. Geralmente dados faltantes são representados por um código16 como "-999.99" ou qualquer outro valor fora do intervalo de variação possível da variável.

A coisa mais importante a saber sobre NA é que qualquer operação envolvendo NA resultará em NA (Tabela 5.2).

Tabela 5.2: Operações com NA.
operação resultado
NA + 5 NA
sqrt(NA) NA
NA^2 NA
NA/NaN NA

5.2.4 Funções matemáticas

O tem diversas funções internas. A sintaxe para chamar uma função é simplesmente:

funcão(argumento)

Por exemplo:

# cosseno de 60°
cos(60 * pi / 180)
#> [1] 0.5
# raiz quadrada de 100
sqrt(100)
#> [1] 10
# exponencial de 1
exp(1)
#> [1] 2.718282
# fatorial de 4 (4*3*2*1)
factorial(4)
#> [1] 24

Por padrão a função logaritmo (log()) determina o logaritmo natural (logaritmo na base \(e\)).

# logaritmo natural de 10
log(x = 10)
#> [1] 2.302585

Para obter o logaritmo de 10 na base 10, o segundo argumento da função log() deve ser especificado, ou pode-se usar a função log10().

log(x = 10, base = 10) # logaritmo de 10 na base 10
#> [1] 1
log10(10) # forma equivalente
#> [1] 1

No você verá que parênteses são frequentemente utilizados. Em geral, uma palavra antecedendo um parênteses em uma expressão: é uma função.

Você não precisa lembrar do nome de cada função do . Você pode ou buscar pelo termo em um site de busca, ou usar o auto-preenchimento de código ( no RStudio) após a parte inicial do nome da função.

Digitando ? antes do nome de uma função ou operador abrirá a página de ajuda daquela função.

?atan2

  1. Valores não numéricos também podem ser encontrados por aí, como por exemplo "---", "na", "N/A", "None", " ".