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
- use
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
<- 3
obj <- 3 obj2
# utilize objetos para fazer contas
+ obj2 obj
## [1] 6
- obj2 obj
## [1] 0
* obj2 obj
## [1] 9
/ obj2 obj
## [1] 1
^obj2 obj
## [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:
<- 2
o1 <- 4
o2 <- 3 o3
Os resultados não serão os mesmos para:
* o2^o3 - 1 # =127 o1
## [1] 127
* o2^(o3 - 1) # =32 o1
## [1] 32
* o2)^o3 - 1 # =511 (o1
## [1] 511
* o2)^(o3 - 1) # =64 (o1
## [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
# é uma constante do R, um objeto chamado "pi" que tem o valor de 3.141593 pi
## [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
<- 3.51
a <- 3.49 b
# 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
<- Inf
mf 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