Add New Column to Data Frame in R
In this tutorial, I’ll illustrate how to add a new column to a data frame in R programming.
The table of content looks like this:
- Creation of Example Data
- Example 1: Add Column with $-Operator
- Example 2: Add Column with Square Brackets
- Example 3: Add Column with cbind Function
- Video, Further Resources & Summary
Let’s dig in.
Creation of Example Data
The examples of this R tutorial will be based on the following data frame:
data <- data.frame(x1 = 1:5, # Create example data x2 = letters[1:5]) data # Print example data # x1 x2 # 1 1 a # 2 2 b # 3 3 c # 4 4 d # 5 5 e
Our example data consists of five rows and the two variables x1 and x2.
Furthermore, we have to create an example vector that we can add as new column to our data frame:
vec <- c(3, 2, 3, 2, 3) # Create example vector vec # Print example vector # 3 2 3 2 3
Our example vector consists of five numeric values. Note that the number of rows of our data frame and the length of our vector are equal.
Now, let’s add the vector as new variable to our data frame…
Example 1: Add Column with $-Operator
In Example 1, you’ll learn how to add a new column to a data frame with the $-Operator. First, we are going to replicate our original example data:
data_1 <- data # Replicate example data
Now, we can add our example vector to the data frame as follows:
data_1$new_col <- vec # Add new column to data
Let’s print the new data frame to the RStudio console:
data_1 # Print new data # x1 x2 new_col # 1 1 a 3 # 2 2 b 2 # 3 3 c 3 # 4 4 d 2 # 5 5 e 3
As you can see, the new data frame consists of the same variables as our input data and in addition of the new variable new_col.
Example 2: Add Column with Square Brackets
Example 1 has shown how to add a new variable to a data frame with the $-Operator. However, there are many different ways how to do this and in this example I’ll show you how to concatenate a vector to a data frame with square brackets.
Have a look at the following R code:
data_2 <- data # Replicate example data data_2["new_col"] <- vec # Add new column to data
data_2 contains our original data as well as our example vector vec.
Example 3: Add Column with cbind Function
Another alternative for creating new variables in a data frame is the cbind function. The cbind function can be used to add columns to a data matrix as follows:
data_3 <- data # Replicate example data data_3 <- cbind(data, new_col = vec) # Add new column to data
Again, the output is a data frame consisting of our original data and a new column.
Video, Further Resources & Summary
Do you need more information on the contents of this article? Then you may want to have a look at the following video of my YouTube channel. In the video tutorial, I’m explaining the contents of this article in RStudio:
Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Furthermore, you might want to have a look at the other tutorials of my website. Some tutorials about data manipulation in R can be found below:
- The cbind Function
- Append New Column & Row to Data Frame in for-Loop
- How to Rename a Column Name in R
- Convert Data Frame Column to Vector in R
- The R Programming Language
In this R tutorial you learned how to append a vector to a data frame. Don’t hesitate to let me know in the comments section, if you have further questions.
Statistics Globe Newsletter
6 Comments. Leave new
Most of the time being a data scientist, 50% of the work is already spent with processing data with the right programming logic , debuggibn, fixing, testing instead of spending time on real statistic
Definitely agreed 🙂
Does this retain the vector order?
For example, the vector was obtained from the dataframe, manipulated, then returned there. Is this method is as good as a more sophisticated join function?
Hey Ahmed,
The new data frame column will have the same order as the vector at the point when you are adding it.
Regards,
Joachim
How do I add a column to a specific position in a big dataframe?
Thank you!
Hey Rupal,
Please have a look at this tutorial. It explains how to insert a new column between two specific variables.
Regards,
Joachim