# 7 R as a Calculator

R functions as a calculator.

```
5 + 2 # addition
[1] 7
5 - 2 # subtraction
[1] 3
5 * 2 # multiplication
[1] 10
5 / 2 # division
[1] 2.5
5 ^ 2 # exponentiation
[1] 25
5 %/% 2 # integer division
[1] 2
5 %% 2 # modulo (remainder after integer division)
[1] 1
abs(-5) # absolute value
[1] 5
sqrt(5) # square root
[1] 2.236068
log(5) # natural log
[1] 1.609438
```

More complex operations can be performed by using multiple mathematical operators and parentheses:

`abs(5 - sqrt(2) * (5 ^ (5/2) - 2))`

`[1] 71.22851`

Objects can be uses in calculations, too. Here we assign the value 5 to `x`

and then add 2 to it.

```
x <- 5
x + 2
```

`[1] 7`

Note that `x`

retains its original value of 5 *since we did not reassign the result to x*.

`x`

`[1] 5`

To update `x`

with the result of `x + 2`

, assign it to `x`

:

```
x <- x + 2
x
```

`[1] 7`

When we perform a calculation in R (or any other operation, such as loading datasets or fitting models), results are stored in the intermediate object `.Last.value`

. We can access `.Last.value`

to perform multi-step calculations. We can calculate the standard error of the `mpg`

column in the `mtcars`

dataset as the standard deviation (`sd`

) divided by the square root of the sample size (`n`

):

```
n <- length(mtcars$mpg) # number of observations
sd(mtcars$mpg) # standard deviation
```

`[1] 6.026948`

`.Last.value / sqrt(n) # standard error`

`[1] 1.065424`

These examples of R’s utility as a calculator have all used individual numbers, also called scalars. These operations become more useful when we begin to work with numeric vectors and columns in dataframes.

## 7.1 Exercises

Create an object,

`x`

, that is equal to \(2 ^ 5\).Create another object,

`y`

, that is the square root of`x`

.Create another object,

`z`

, that is the absolute difference of`x`

and`y`

.