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).
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).
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 (
Digitando ?
antes do nome de uma função ou operador abrirá a página de ajuda daquela função.
?atan2
Valores não numéricos também podem ser encontrados por aí, como por exemplo "---", "na", "N/A", "None", " ".↩