Along with other usual built-in mathematical functions, R programming language provides some special built-in mathematical functions. All these functions are vectorised. In this tutorial you will learn some built-in special mathematical functions in R and how to use these special mathematical functions in R.
Built-in Special Mathematical Functions
R provides some special mathematical functions related to beta and gamma functions.
Function | Operation Performed |
---|---|
factorial(x) |
Factorial of x i.e. x! |
lfactorial(x) |
Logarithm of Factorial of x i.e. log(x!) |
choose(n,k) |
Binomial coefficient |
lchoose(n,k) |
Logarithm of Binomial Coefficient |
gamma(a) |
Gamma function |
lgamma(a) |
Logarithm of gamma function |
digamma(x) |
First derivative of log of gamma function |
trigamma(x) |
Second derivative of log of gamma function |
psigamma(x,deriv=0) |
Polygamma function (for higher derivatives) |
beta(a,b) |
Beta function |
lbeta(a,b) |
Logarithm of beta function |
Examples of Special Mathematical in R
Let us discuss all these special mathematical function with examples.
Factorial in R
The factorial of a non-negative integer $n$ is denoted by $n!$ and is defined as the product of all positive integers less than or equal to $n$. That is
$$n! = n\cdot (n-1) \cdot (n-2) \cdots 3 \cdot 2 \cdot 1$$
For example, $5! = 5\times 4\times 3\times 2\times 1= 120$
# compute factorial of 5
factorial(5)
[1] 120
Logarithm of factorial in R
The logarithm of factorial of a non-negative integer x
in R is the natural logarithm of factorial of x
.
# compute natural log of 5 factorial
lfactorial(5)
[1] 4.787492
# 5! = 120 so lfactorial(5) = log(120)
log(120)
[1] 4.787492
Combination in R
The number of combination of $n$ distinct objects, taken $r$ at a time is $\binom{n}{r}=\frac{n!}{r!(n-r)!}$.
For example, $\binom{5}{2} = \frac{5!}{2!(5-2)!}= 10$
# binomial coefficient
choose(5,2)
[1] 10
Logarithm of Combination in R
# logarithm of binomial coefficient
lchoose(5,2)
[1] 2.302585
Gamma Function in R
Gamma Function is also known as Eulerian integral of second kind. It is denoted by $\Gamma(n)$ and is defined as
$$ \begin{aligned} \Gamma (n) &=\int_0^\infty t^{n-1} e^{-t}\; dt\\ &=(n-1)!;\; n>0; \end{aligned} $$
# gamma 5 is (5-1) = 4!
gamma(5)
[1] 24
Logarithm of Gamma Function in R
The logarithm of gamma function is the natural logarithm of the gamma function.
# natural logarithm of gamma 5
# gamma(5) = 24 so lgamma(5) = log(24)
lgamma(5)
[1] 3.178054
log(24)
[1] 3.178054
Digamma, trigamma and polygamma functions in R
Digamma Function in R
The digamma function is the first derivative of logarithm of gamma function.
That is,
$$ \begin{aligned} \text{digamma}(x) &= \psi(x)\\ &=\frac{d}{dx}(\ln \Gamma(x))\\ &=\frac{\Gamma^{\prime}(x)}{\Gamma (x)}. \end{aligned} $$
# digamma function of 10
digamma(10)
[1] 2.251753
Trigamma Function in R
The trigamma function is the second derivative of logarithm of gamma function.
That is,
$$ \begin{aligned} \text{trigamma}(x) &= \psi_1(x)\\ &=\frac{d^2}{dx^2}(\ln \Gamma(x))\\ &=\frac{\Gamma^{\prime}(x)}{\Gamma (x)}. \end{aligned} $$
# trigamma function of 10
trigamma(10)
[1] 0.1051663
Polygamma Function in R
The polygamma function (also known as Psigamma function) of order $m$ is defined as the $(m+1)^{th}$ derivative of the logarithm of the gamma function.
That is,
$$ \begin{aligned} \psi^{(m)}(x)&:=\frac{d^{m+1}}{dx^{m+1}}(\ln \Gamma(x)). \end{aligned} $$
# polygamma function of 10 of order 4
psigamma(10,deriv=4)
[1] -0.0007299312
Beta function in R
Beta Function is also known as Eulerian integral of first kind. It is denoted by $B(m,n)$ and is defined as
$$ \begin{aligned} B(m,n)&=\int_0^1 t^{m-1} (1-t)^{n-1}\; dt\\ &=\dfrac{\Gamma(m)\Gamma(n)}{\Gamma(m+n)};\; m,n > 0. \end{aligned} $$
where
$B(m,n)$
: Beta Function$m$
: First shape parameter$n$
: Second shape parameter
# beta function with m=4 and n=5
beta(4,5)
[1] 0.003571429
Logarithm of Beta function in R
Logarithm of beta Function is the natural logarithm of a beta function.
# logarithm of beta function with m=4 and n=5
lbeta(4,5)
[1] -5.63479
Endnote
In this tutorial you learned about some special mathematical functions in R and how to use these functions in R.
To learn more about other built-in functions and user-defined functions in R, please refer to the following tutorials:
- Built-in Mathematical functions in R
- Built-in Trigonometric functions in R
- Built-in Statistical functions in R
- Built-in Character functions in R
- User-defined functions in R Part I
- User-defined functions in R Part II
- Functions in R
Hopefully you enjoyed learning this tutorial on special mathematical functions in R. Hope the content is more than sufficient to understand special mathematical functions in R.