Two functions that you will use often in R for a variety of tasks are the rbind and cbind functions.
The rbind function, short for row-bind, can be used to combine vectors, matrices and data frames by rows.
The cbind function, short for column-bind, can be used to combine vectors, matrices and data frames by columns.
Depending on the task that you’d like to perform, one or both of these functions could be useful to use.
The following examples show how to use each of these methods in practice.
Example 1: Use rbind() and cbind() with Vectors
Suppose that we have several vectors that we would like to “bind” together in different ways.
First, we will create the following three vectors:
#create three vectors
vector1 <- c(1, 3, 3, 4, 5)
vector2<- c(7, 7, 8, 3, 2)
vector3 <- c(9, 9, 0, 0, 9)
One way to combine these three vectors into a matrix is by using the rbind() function, which will bind the vectors together by row.
The following example shows how to do so:
#rbind vectors into matrix my_matrix <- rbind(vector1, vector2, vector3) #view matrix my_matrix [,1] [,2] [,3] [,4] [,5] vector1 1 3 3 4 5 vector2 7 7 8 3 2 vector3 9 9 0 0 9
The result is a matrix in each each row of the matrix is one of the original vectors.
The final matrix has 3 rows and 5 columns.
Another way to combine these three vectors into a matrix is by using the cbind() function, which will bind the vectors together by column.
The following example shows how to do so:
#cbind vectors into matrix my_matrix <- cbind(vector1, vector2, vector3) #view matrix my_matrix vector1 vector2 vector3 [1,] 1 7 9 [2,] 3 7 9 [3,] 3 8 0 [4,] 4 3 0 [5,] 5 2 9
The result is a matrix in each each column of the matrix is one of the original vectors.
The final matrix has 5 rows and 3 columns.
Notice that the rbind() and cbind() functions are both capable of binding together the vectors into a matrix, but the way they bind them together is either row-wise or column-wise.
Example 2: Use rbind() and cbind() with Data Frames
Suppose that we have several data frames that we would like to “bind” together in different ways.
First, we will create the following two data frames in R:
#create first data frame
df1 <- data.frame(team=c('A', 'A', 'B', 'B', 'C'),
points=c(22, 25, 30, 43, 19))
df1
team points
1 A 22
2 A 25
3 B 30
4 B 43
5 C 19
#create second data frame
df2 <- data.frame(team=c('D', 'D', 'E', 'F', 'F'),
points=c(11, 36, 29, 22, 30))
df2
team points
1 D 11
2 D 36
3 E 29
4 F 22
5 F 30
One way to combine these two data frames into one data frame is by using the rbind() function, which will bind the data frames together by row.
The following example shows how to do so:
#rbind data frames into one data frame new_df <- rbind(df1, df2) #view data frame new_df team points 1 A 22 2 A 25 3 B 30 4 B 43 5 C 19 6 D 11 7 D 36 8 E 29 9 F 22 10 F 30
The result is a data frame with 10 rows and 2 columns.
Another way to combine these two data frames into one data frame is by using the cbind() function, which will bind the data frames together by column.
The following example shows how to do so:
#cbind data frames into one data frame new_df <- cbind(df1, df2) #view data frame new_df team points team points 1 A 22 D 11 2 A 25 D 36 3 B 30 E 29 4 B 43 F 22 5 C 19 F 30
The result is a data frame with 4 columns and 5 rows.
Additional Resources
The following tutorials explain how to perform other common operations in R:
R: How to Use rbindlist
R: How to Use cbind with Vectors of Different Lengths
R: How to Rename Columns When Using cbind
Thank you so much Zach – This post was extremely helpful.
-Reed
We greatly appreciate your feedback Reed and it is great to know that you are finding the content helpful! Keep us posted on your progress.