R: How to Use cbind with Vectors of Different Lengths


The easiest way to use cbind in R with vectors of different lengths is to set the vectors to equal lengths using the length() function.

The following example shows how to do so.

Example: Using cbind with Vectors of Different Lengths in R

Suppose we use cbind to column-bind together two vectors of different lengths in R:

#define two vectors
vec1 <- c(3, 4, 5)
vec2 <- c(1, 6, 4, 4, 7, 6, 9, 8, 7)

#cbind the two vectors together
cbind(vec1, vec2)

      vec1 vec2
 [1,]    3    1
 [2,]    4    6
 [3,]    5    4
 [4,]    3    4
 [5,]    4    7
 [6,]    5    6
 [7,]    3    9
 [8,]    4    8
 [9,]    5    7

The cbind function works with the two vectors, but notice that the values of the first vector simply repeat over and over again.

This is known as “recycling” in R.

To instead fill in the missing values for the shorter vector with NA values, you can use the following syntax:

#define two vectors
vec1 <- c(3, 4, 5)
vec2 <- c(1, 6, 4, 4, 7, 6, 9, 8, 7)

#calculate max length of vectors
max_length <- max(length(vec1), length(vec2))

#set length of each vector equal to max length
length(vec1) <- max_length                      
length(vec2) <- max_length 

#cbind the two vectors together
cbind(vec1, vec2)

      vec1 vec2
 [1,]    3    1
 [2,]    4    6
 [3,]    5    4
 [4,]   NA    4
 [5,]   NA    7
 [6,]   NA    6
 [7,]   NA    9
 [8,]   NA    8
 [9,]   NA    7

Notice that the missing values for the shorter vector are now filled in with NA values.

Note: In this example, we used cbind with two vectors but you can use similar syntax to use cbind with more than two vectors.

Additional Resources

The following tutorials explain how to perform other common tasks in R:

How to Use cbind in R (With Examples)
How to Use rbind in R (With Examples)
How to Rename Columns When Using cbind in R

Leave a Reply

Your email address will not be published.