How to find Rank of a Matrix in R - Step by Step Examples
How to find Rank of a Matrix in R ?
Answer
To find the rank of a matrix in R, you can use the qr()
function followed by the qr.R()
function, and then count the number of non-zero rows in the resulting upper triangular matrix.
✐ Examples
1 Find Rank of a 2x2 Matrix
In this example,
- First, we create a 2x2 matrix named
matrix1
using thematrix()
function with a vector of valuesc(1, 2, 3, 4)
and specify the number of rows as 2. - We use the
qr()
function onmatrix1
to perform QR decomposition and store the result in a variable calledqr1
. - Next, we extract the upper triangular matrix R from the QR decomposition result using the
qr.R()
function onqr1
. - To find the rank, we count the number of non-zero rows in the upper triangular matrix. This can be done by summing the logical values of whether the absolute values of the diagonal elements of R are greater than a small tolerance value (e.g.,
.Machine$double.eps
). - Finally, we print the rank of the matrix.
R Program
matrix1 <- matrix(c(1, 2, 3, 4), nrow = 2)
qr1 <- qr(matrix1)
R1 <- qr.R(qr1)
rank1 <- sum(abs(diag(R1)) > .Machine$double.eps)
print(rank1)
Output
[1] 2
2 Find Rank of a 3x3 Matrix
In this example,
- We first create a 3x3 matrix named
matrix2
using thematrix()
function with a vector of valuesc(1, 2, 3, 4, 5, 6, 7, 8, 9)
and specify the number of rows as 3. - We use the
qr()
function onmatrix2
to perform QR decomposition and store the result in a variable calledqr2
. - Next, we extract the upper triangular matrix R from the QR decomposition result using the
qr.R()
function onqr2
. - To find the rank, we count the number of non-zero rows in the upper triangular matrix. This can be done by summing the logical values of whether the absolute values of the diagonal elements of R are greater than a small tolerance value (e.g.,
.Machine$double.eps
). - Finally, we print the rank of the matrix.
R Program
matrix2 <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3)
qr2 <- qr(matrix2)
R2 <- qr.R(qr2)
rank2 <- sum(abs(diag(R2)) > .Machine$double.eps)
print(rank2)
Output
[1] 2
3 Find Rank of a 3x3 Identity Matrix
In this example,
- First, we create a 3x3 identity matrix named
matrix3
using thediag()
function with a value of 3. - We use the
qr()
function onmatrix3
to perform QR decomposition and store the result in a variable calledqr3
. - Next, we extract the upper triangular matrix R from the QR decomposition result using the
qr.R()
function onqr3
. - To find the rank, we count the number of non-zero rows in the upper triangular matrix. This can be done by summing the logical values of whether the absolute values of the diagonal elements of R are greater than a small tolerance value (e.g.,
.Machine$double.eps
). - Finally, we print the rank of the matrix.
R Program
matrix3 <- diag(3)
qr3 <- qr(matrix3)
R3 <- qr.R(qr3)
rank3 <- sum(abs(diag(R3)) > .Machine$double.eps)
print(rank3)
Output
[1] 3
Summary
In this tutorial, we learned How to find Rank of a Matrix in R language with well detailed examples.
More R Matrices Tutorials
- How to Create a Matrix in R ?
- How to Combine Matrices by Columns in R ?
- How to Combine Matrices by Rows in R ?
- How to Create Diagonal Matrices in R ?
- How to Access Matrix Elements using Indexing and Slicing in R ?
- How to get Matrix Size in R ?
- How to get Number of Rows in Matrix in R ?
- How to get Number of Columns in Matrix in R ?
- How to do Matrix Addition in R ?
- How to do Matrix Subtraction in R ?
- How to do Matrix Multiplication in R ?
- How to do Scalar Multiplication on a Matrix in R ?
- How to do Scalar Division on a Matrix in R ?
- How to do Element-Wise Operations in a Matrix in R ?
- How to Assign Row and Column Names in a Matrix in R ?
- How to get Row Names in a Matrix in R ?
- How to get Column Names in a Matrix in R ?
- How to find Transpose of a Matrix in R ?
- How to Extract the Diagonal of a Matrix in R ?
- How to find Determinant of a Matrix in R ?
- How to find Inverse of a Matrix in R ?
- How to find Rank of a Matrix in R ?
- How to Find Eigenvalues and Eigenvectors of a Matrix in R ?
- How to Perform Singular Value Decomposition (SVD) in R ?
- How to Perform QR Decomposition in R ?
- How to Perform Cholesky Decomposition in R ?
- How to Reshape Matrices in R ?
- How to Convert Data Frames to Matrices in R ?
- How to Create Identity Matrix in R ?
- How to Create Zero Matrix in R ?
- How to Create Ones Matrix in R ?
- How to Generate Random Matrices in R ?
- How to Calculate Row and Column Sums in R ?
- How to Calculate Row and Column Means in R ?
- How to Find Row and Column Max/Min in R ?
- How to Perform Element-Wise Comparisons in R ?