How to Create the Identity Matrix in R

Spread the love

Identity matrices hold a special place in the realm of linear algebra. An identity matrix, also known as a unit matrix, is a square matrix in which all the elements of the principal (main) diagonal are ones and all other elements are zeros. The identity matrix plays an equivalent role in matrix multiplication to what the number ‘1’ plays in scalar multiplication.

In the context of R programming, identity matrices are quite useful, especially in operations like matrix inversion, solving systems of linear equations, and eigendecomposition, among other things. In this article, we’ll explore how to create an identity matrix in R, delve into its properties, and discuss its applications.

Understanding the Identity Matrix

An identity matrix is a special kind of square matrix where all the elements of the principal diagonal are ones, and all other elements are zeros. If ‘I’ is an identity matrix of size n x n, then for every matrix ‘A’ of the same size n x n, the following holds:

A * I = A
I * A = A

This is similar to multiplying any number by one; the result is the original number itself.

Creating the Identity Matrix in R

Creating an identity matrix in R is straightforward, and there are several ways to do it.

Using the diag( ) Function

The diag() function in R creates a diagonal matrix. When it’s called with a single argument, it creates an identity matrix of dimensions equal to the argument value. Here’s how you can use it:

# Create a 3x3 identity matrix
I <- diag(3)

The above code creates a 3×3 identity matrix:

[,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1

Using the diag( ) Function with a Vector

You can also pass a numeric vector to the diag() function to create a matrix with the vector values on the diagonal. To create an identity matrix, you can pass a vector of ones:

# Create a 3x3 identity matrix
I <- diag(c(1, 1, 1))

This will also create a 3×3 identity matrix, same as the previous example.

Using the diag( ) Function with a Matrix

Another approach to create an identity matrix is to use the diag() function with a square matrix as its argument. The function will return an identity matrix with the same dimensions as the input matrix:

# Create a square matrix
A <- matrix(c(2, 4, 3, 1, 5, 7), nrow = 3, ncol = 2)

# Create an identity matrix of the same dimensions
I <- diag(A)

Common Uses of Identity Matrices in R

Identity matrices are used extensively in various fields like machine learning, computer graphics, statistics, etc. Here are some common uses:

Matrix Inversion

In linear algebra, the inverse of a square matrix A is often denoted as A^-1, such that when A is multiplied by A^-1 the result is the identity matrix I.

In R, you can find the inverse of a matrix using the solve() function:

# Create a 3x3 matrix
A <- matrix(c(4, 7, 2, 6, 10, 10, 5, 2, 1), nrow = 3, ncol = 3)

# Find the inverse of the matrix
A_inv <- solve(A)

# Check the result
res <- A %*% A_inv

The result res should be a 3×3 identity matrix.

Solving Systems of Linear Equations

Identity matrices can also be used to solve systems of linear equations. For instance, if you have a system of equations Ax = B, you can solve for x by multiplying both sides of the equation by the inverse of A, resulting in x = A^-1 * B.

Here’s an example in R:

# Create a 3x3 matrix (A)
A <- matrix(c(3, 2, 4, 1, 2, 7, 3, 1, 2), nrow = 3, ncol = 3)

# Create a column matrix (B)
B <- matrix(c(2, 1, 3), nrow = 3, ncol = 1)

# Solve for x
x <- solve(A, B)

In this example, the solve(A, B) function call is equivalent to computing A^-1 * B to find the solution vector x.


In eigendecomposition, a matrix is decomposed into a canonical form, whereby the matrix is represented in terms of its eigenvalues and eigenvectors. Only diagonalizable matrices can be factorized in this way.

Identity matrix plays a crucial role in this decomposition. If ‘A’ is a square matrix, ‘V’ is the matrix of its eigenvectors, and ‘D’ is the diagonal matrix of its eigenvalues, then A can be factorized as A = VDV^-1.

Here’s how to perform eigendecomposition in R:

# Create a 3x3 matrix
A <- matrix(c(4, 1, 6, 2, 7, 5, 3, 8, 9), nrow = 3)

# Perform eigendecomposition
eigen_decomp <- eigen(A)

# Get the matrix of eigenvectors (V)
V <- eigen_decomp$vectors

# Get the diagonal matrix of eigenvalues (D)
D <- diag(eigen_decomp$values)

# Check the result
res <- V %*% D %*% solve(V)

The result res should be the same as the original matrix A.


Identity matrices are a fundamental concept in linear algebra, and they play an important role in many mathematical computations. They are extensively used in numerous applications, from basic mathematics to advanced fields like machine learning and data science.

Creating an identity matrix in R is straightforward using the diag() function. This function is versatile and can be used in various ways to generate an identity matrix, either from a single integer value, a numeric vector, or another matrix.

Understanding how to work with identity matrices in R can open up a world of possibilities for data manipulation and mathematical computations. It forms the foundation for more advanced operations and techniques in linear algebra and beyond. Therefore, mastering the generation and usage of identity matrices is an essential skill for anyone working with R for mathematical computations.

Posted in RTagged

Leave a Reply