# Logarithm and exponential in R

R introduction Mathematical functions

Logarithms and exponential can be computed making use of the functions provided by R: the `log` function for natural logarithms, `log2` and `log10` for base 2 and 10 logarithms, respectively, `log1p` to compute `log(1 + x)` and the `exp` function to compute the exponential function and `expm1` to calculate `exp(x) - 1`.

## log()

The basic R function to compute logarithms is `log`, which calculates natural logarithms. The syntax of the function is as follows.

``log(x, base = exp(1))``

Note that the `base` argument allows you to customize the base of the logarithm. In the following block of code you can see some examples.

``````log(8)
log(0)
log(1)
log(10)
log(12, base = 2)``````
``````2.079442
-Inf
0
2.302585
3.584963``````

You can make use of the plot function to represent the values of a natural logarithm:

``````plot(log, 0, 100, col = 4, main = "log(x)")
segments(x0 = exp(1), y0 = 0, x1 = exp(1), y1 = 1, lty = 2)
segments(x0 = 0, y0 = 1, x1 = exp(1), y1 = 1, lty = 2)
points(exp(1), 1, pch = 16)``````

## log2()

The `log2` function calculates a logarithm with base 2 and is equivalent to `log(x, base = 2)`.

``````log2(10)
log(10, base = 2) # Equivalent``````
``````3.321928
3.321928``````

You can see a visual representation of the logarithm of base 2 from 0 to 100 in the following chart:

``````plot(log2, 0, 100, col = 4, main = "log2(x)")
segments(x0 = 2, y0 = 0, x1 = 2, y1 = 1, lty = 2)
segments(x0 = 0, y0 = 1, x1 = 2, y1 = 1, lty = 2)
points(2, 1, pch = 16)``````

## log10()

The `log10` function is a wrapper of `log(x, base = 10)` and computes a logarithm of base 10.

``````log10(10)
log(10, base = 10) # Equivalent``````
``````1
1``````

You can plot this function with the following block of code:

``````plot(log10, 0, 100, col = 4, main = "log10(x)")
segments(x0 = 10, y0 = 0, x1 = 10, y1 = 1, lty = 2)
segments(x0 = 0, y0 = 1, x1 = 10, y1 = 1, lty = 2)
points(10, 1, pch = 16)``````

## log1p()

The `log1p()` function computes `log(1 + x)`, accurately also for `|x| âȘ 1`.

``````# log(10)
log(10)

# log(1 + 10)
log1p(10)

# log(11)
log(11)``````
``````2.302585
2.397895
2.397895``````

You can plot this function with the following line of code:

``plot(log1p, -0.99, 10, col = 4, main = "log1p(x)")``

## exp()

The `exp` function in R computes the exponential function, which is the inverse of the natural logarithm. The following block contains some examples of the usage of the `exp` function.

``````exp(10)
exp(0)
exp(-5)
exp(4)``````
``````22026.47
1
0.006737947
54.59815``````

You can also plot the exponential function making use of the `plot` function as shown below:

``plot(exp, -10, 10, col = 4, main = "exp(x)")``

## expm1()

The `expm1` function computes `exp(x) -1`, accurately also for `|x| âȘ 1`.

``````expm1(5)
exp(5) - 1

expm1(0.15)
exp(0.15) - 1``````
``````147.4132
147.4132
0.1618342
0.1618342``````

You can use the following line of code to plot this function for different values.

``plot(expm1, -10, 10, col = 4, main = "expm1(x)")``