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.85841Alé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.00412Se 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] 1O operador %/% fornece a parte inteira do quociente da divisão entre 2 números.
11 / 2
#> [1] 5.5
11 %/% 2
#> [1] 5Operações que resultam em números muito pequenos ou muito grandes são representados em notação científica.
5/10000
#> [1] 5e-04Este mesmo valor pode ser escrito nas seguintes formas equivalentes:
5e-4
#> [1] 5e-04
5E-4
#> [1] 5e-04
5*10^-4
#> [1] 5e-04O valor absoluto e o sinal de um número podem ser obtidos pelas seguintes expressões:
abs(-6)
#> [1] 6
sign(-6)
#> [1] -15.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] 15.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] 24Por padrão a função logaritmo (log()) determina o logaritmo natural (logaritmo na base \(e\)).
# logaritmo natural de 10
log(x = 10)
#> [1] 2.302585Para 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] 1No
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.
?atan2Valores não numéricos também podem ser encontrados por aí, como por exemplo "---", "na", "N/A", "None", " ".↩