How to cbind & rbind Vectors with Different Length in R (2 Examples)

 

In this article, I’ll show how to merge multiple vector objects with different length in R programming.

The page will contain two examples for the merging of data. More precisely, the page consists of this information:

Let’s take a look at some R codes in action!

 

Creation of Example Data

The data below will be used as basement for this R programming tutorial.

vec1 <- 1:6                                         # Create first example vector
names(vec1) <- letters[1:6]
vec1                                                # Print first example vector
# a b c d e f 
# 1 2 3 4 5 6

Have a look at the previous output of the RStudio console. It shows that our first example data object is a named vector with a length of six.

Let’s create a second vector object in R:

vec2 <- 1:4                                         # Create second example vector
names(vec2) <- letters[1:4]
vec2                                                # Print second example vector
# a b c d 
# 1 2 3 4

Our second example vector contains four named vector elements.

 

Example 1: Column-Bind Vectors with Different Length Using cbind.na() Function of qpcR Package

In Example 1, I’ll show how to combine two vector objects with different length as columns using the qpcR package.

To be able to use the functions of the qpcR package, we first need to install and load qpcR:

install.packages("qpcR")                            # Install qpcR package
library("qpcR")                                     # Load qpcR package

Next, we can apply the cbind.na function of the qpcR package to combine our two vectors to a matrix:

data_cbind <- qpcR:::cbind.na(vec1, vec2)           # Bind as columns
data_cbind                                          # Print combined data

 

table 1 matrix cbind and rbind vectors different length r

 

Have a look at table 1: It shows that the cbind.na function inserted NA values at the end of the shorter vector.

 

Example 2: Row-Bind Vectors with Different Length Using bind_rows() Function of dplyr Package

In this example, I’ll explain how to bind two vectors with different length by rows using the dplyr package.

To be able to use the functions of the dplyr package, we first have to install and load dplyr:

install.packages("dplyr")                           # Install & load dplyr
library("dplyr")

Now, we can use the bind_rows function to merge our two vectors by rows:

data_rbind <- as.data.frame(bind_rows(vec1, vec2))  # Bind as rows
data_rbind                                          # Print combined data

 

table 2 data frame cbind and rbind vectors different length r

 

In Table 2 you can see that we have constructed a data frame with two rows using the previously shown R programming code. The shorter vector was set to NA in the later columns.

Note that I have also used the as.data.frame function to create a data frame instead of a tibble. You may remove the as.data.frame function from the previous code in case you prefer to work with tibbles.

 

Video, Further Resources & Summary

Do you need more info on the R codes of this tutorial? Then you may watch the following video that I have published on my YouTube channel. In the video, I illustrate the R programming code of this page in RStudio.

 

The YouTube video will be added soon.

 

Besides the video, you may want to read the other articles on this homepage. A selection of interesting articles about merging and joining data can be found below:

 

Summary: You have learned in this article how to join data objects with different length in the R programming language. In case you have further questions, let me know in the comments section. Furthermore, don’t forget to subscribe to my email newsletter to receive updates on the newest tutorials.

 

Subscribe to my free statistics newsletter

Get regular updates on the latest tutorials, offers & news at Statistics Globe.
I hate spam & you may opt out anytime: Privacy Policy.


Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

Menu
Top