# R Matrices

## Matrices

A matrix is a two dimensional data set with columns and rows.

A column is a vertical representation of data, while a row is a horizontal representation of data.

A matrix can be created with the `matrix()` function. Specify the `nrow` and `ncol` parameters to get the amount of rows and columns:

### Example

# Create a matrix
thismatrix <- matrix(c(1,2,3,4,5,6), nrow = 3, ncol = 2)

# Print the matrix
thismatrix
Try it Yourself »

Note: Remember the `c()` function is used to concatenate items together.

You can also create a matrix with strings:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

thismatrix
Try it Yourself »

## Access Matrix Items

You can access the items by using `[ ]` brackets. The first number "1" in the bracket specifies the row-position, while the second number "2" specifies the column-position:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

thismatrix[1, 2]
Try it Yourself »

The whole row can be accessed if you specify a comma after the number in the bracket:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

thismatrix[2,]
Try it Yourself »

The whole column can be accessed if you specify a comma before the number in the bracket:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

thismatrix[,2]
Try it Yourself »

## Access More Than One Row

More than one row can be accessed if you use the `c()` function:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange","grape", "pineapple", "pear", "melon", "fig"), nrow = 3, ncol = 3)

thismatrix[c(1,2),]
Try it Yourself »

## Access More Than One Column

More than one column can be accessed if you use the `c()` function:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange","grape", "pineapple", "pear", "melon", "fig"), nrow = 3, ncol = 3)

thismatrix[, c(1,2)]
Try it Yourself »

Use the `cbind()` function to add additional columns in a Matrix:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange","grape", "pineapple", "pear", "melon", "fig"), nrow = 3, ncol = 3)

newmatrix <- cbind(thismatrix, c("strawberry", "blueberry", "raspberry"))

# Print the new matrix
newmatrix
Try it Yourself »

Note: The cells in the new column must be of the same length as the existing matrix.

Use the `rbind()` function to add additional rows in a Matrix:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange","grape", "pineapple", "pear", "melon", "fig"), nrow = 3, ncol = 3)

newmatrix <- rbind(thismatrix, c("strawberry", "blueberry", "raspberry"))

# Print the new matrix
newmatrix
Try it Yourself »

Note: The cells in the new row must be of the same length as the existing matrix.

## Remove Rows and Columns

Use the `c()` function to remove rows and columns in a Matrix:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange", "mango", "pineapple"), nrow = 3, ncol =2)

#Remove the first row and the first column
thismatrix <- thismatrix[-c(1), -c(1)]

thismatrix
Try it Yourself »

## Check if an Item Exists

To find out if a specified item is present in a matrix, use the `%in%` operator:

### Example

Check if "apple" is present in the matrix:

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

"apple" %in% thismatrix
Try it Yourself »

## Number of Rows and Columns

Use the `dim()` function to find the number of rows and columns in a Matrix:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

dim(thismatrix)
Try it Yourself »

## Matrix Length

Use the `length()` function to find the dimension of a Matrix:

### Example

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

length(thismatrix)
Try it Yourself »

Total cells in the matrix is the number of rows multiplied by number of columns.

In the example above: Dimension = 2*2 = 4.

## Loop Through a Matrix

You can loop through a Matrix using a `for` loop. The loop will start at the first row, moving right:

### Example

Loop through the matrix items and print them:

thismatrix <- matrix(c("apple", "banana", "cherry", "orange"), nrow = 2, ncol = 2)

for (rows in 1:nrow(thismatrix)) {
for (columns in 1:ncol(thismatrix)) {
print(thismatrix[rows, columns])
}
}
Try it Yourself »

## Combine two Matrices

Again, you can use the `rbind()` or `cbind()` function to combine two or more matrices together:

### Example

# Combine matrices
Matrix1 <- matrix(c("apple", "banana", "cherry", "grape"), nrow = 2, ncol = 2)
Matrix2 <- matrix(c("orange", "mango", "pineapple", "watermelon"), nrow = 2, ncol = 2)

# Adding it as a rows
Matrix_Combined <- rbind(Matrix1, Matrix2)
Matrix_Combined

# Adding it as a columns
Matrix_Combined <- cbind(Matrix1, Matrix2)
Matrix_Combined
Try it Yourself »

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.