How to find Rank of a Matrix in R


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,

  1. First, we create a 2x2 matrix named matrix1 using the matrix() function with a vector of values c(1, 2, 3, 4) and specify the number of rows as 2.
  2. We use the qr() function on matrix1 to perform QR decomposition and store the result in a variable called qr1.
  3. Next, we extract the upper triangular matrix R from the QR decomposition result using the qr.R() function on qr1.
  4. 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).
  5. 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,

  1. We first create a 3x3 matrix named matrix2 using the matrix() function with a vector of values c(1, 2, 3, 4, 5, 6, 7, 8, 9) and specify the number of rows as 3.
  2. We use the qr() function on matrix2 to perform QR decomposition and store the result in a variable called qr2.
  3. Next, we extract the upper triangular matrix R from the QR decomposition result using the qr.R() function on qr2.
  4. 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).
  5. 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,

  1. First, we create a 3x3 identity matrix named matrix3 using the diag() function with a value of 3.
  2. We use the qr() function on matrix3 to perform QR decomposition and store the result in a variable called qr3.
  3. Next, we extract the upper triangular matrix R from the QR decomposition result using the qr.R() function on qr3.
  4. 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).
  5. 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

  1. How to Create a Matrix in R ?
  2. How to Combine Matrices by Columns in R ?
  3. How to Combine Matrices by Rows in R ?
  4. How to Create Diagonal Matrices in R ?
  5. How to Access Matrix Elements using Indexing and Slicing in R ?
  6. How to get Matrix Size in R ?
  7. How to get Number of Rows in Matrix in R ?
  8. How to get Number of Columns in Matrix in R ?
  9. How to do Matrix Addition in R ?
  10. How to do Matrix Subtraction in R ?
  11. How to do Matrix Multiplication in R ?
  12. How to do Scalar Multiplication on a Matrix in R ?
  13. How to do Scalar Division on a Matrix in R ?
  14. How to do Element-Wise Operations in a Matrix in R ?
  15. How to Assign Row and Column Names in a Matrix in R ?
  16. How to get Row Names in a Matrix in R ?
  17. How to get Column Names in a Matrix in R ?
  18. How to find Transpose of a Matrix in R ?
  19. How to Extract the Diagonal of a Matrix in R ?
  20. How to find Determinant of a Matrix in R ?
  21. How to find Inverse of a Matrix in R ?
  22. How to find Rank of a Matrix in R ?
  23. How to Find Eigenvalues and Eigenvectors of a Matrix in R ?
  24. How to Perform Singular Value Decomposition (SVD) in R ?
  25. How to Perform QR Decomposition in R ?
  26. How to Perform Cholesky Decomposition in R ?
  27. How to Reshape Matrices in R ?
  28. How to Convert Data Frames to Matrices in R ?
  29. How to Create Identity Matrix in R ?
  30. How to Create Zero Matrix in R ?
  31. How to Create Ones Matrix in R ?
  32. How to Generate Random Matrices in R ?
  33. How to Calculate Row and Column Sums in R ?
  34. How to Calculate Row and Column Means in R ?
  35. How to Find Row and Column Max/Min in R ?
  36. How to Perform Element-Wise Comparisons in R ?