R Functions Related to Counting and Probability

Installing and Loading the "gtools" Package

For some of the functions below to work, you will have to install the "gtools" package. Installation is easy -- just start up RStudio, and then in the R Console, type the following:

> install.packages("gtools")
You only ever need to install a package once; thereafter it will be available for your R installation.

Once installed, you can load your installed package with

> library(gtools)

The Functions

factorial()

Returns $x! = x(x-1)(x-2) \cdots 3 \cdot 2 \cdot 1$. For example, $5! = 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1 = 120$ can be found with

> factorial(5)
[1] 120

choose()

Returns ${}_n C_k$, the number of combinations of $n$ elements taken $k$ at a time. For example, ${}_5 C_3 = 10$ can be found with

> choose(5,3)
[1] 10
Note that ${}_n P_k$, the number of permutations of $n$ elements taken $k$ at a time can be calculated from ${}_n C_k$ as $${}_n P_k = k! \cdot ({}_n C_k)$$ As an example, ${}_4 P_3 = 3! \cdot ({}_4 C_3) = 24$ can be found with

> factorial(3)*choose(4,3)
[1] 24

combinations()     (requires the "gtools" package)

Generate all combinations of $n$ elements (of a given vector) taken $k$ at a time. Be aware, the number of possible combinations grows very quickly as $n$ increases. For example, to find all combinations of the $5$ elements taken $3$ at a time from $\{1,2,3,4,5\}$, where each row in the resulting matrix is a different combination:

> combinations(5,3,1:5)
      [,1] [,2] [,3]
 [1,]    1    2    3
 [2,]    1    2    4
 [3,]    1    2    5
 [4,]    1    3    4
 [5,]    1    3    5
 [6,]    1    4    5
 [7,]    2    3    4
 [8,]    2    3    5
 [9,]    2    4    5
[10,]    3    4    5

permutations()     (requires the "gtools" package)

Generate all permutations of $n$ elements (of a given vector) taken $k$ at a time. Be aware, the number of possible permutations grows very quickly as $n$ increases. For example, to find all permutations of the $4$ elements taken $3$ at a time from $\{1,2,3,4\}$, where each row in the resulting matrix is a different permutation:

> permutations(4,3,1:4)
      [,1] [,2] [,3]
 [1,]    1    2    3
 [2,]    1    2    4
 [3,]    1    3    2
 [4,]    1    3    4
 [5,]    1    4    2
 [6,]    1    4    3
 [7,]    2    1    3
 [8,]    2    1    4
 [9,]    2    3    1
[10,]    2    3    4
[11,]    2    4    1
[12,]    2    4    3
[13,]    3    1    2
[14,]    3    1    4
[15,]    3    2    1
[16,]    3    2    4
[17,]    3    4    1
[18,]    3    4    2
[19,]    4    1    2
[20,]    4    1    3
[21,]    4    2    1
[22,]    4    2    3
[23,]    4    3    1
[24,]    4    3    2