Learn R – How to Add New Column to Data Frame

This article represents concepts and code samples on how to add new columns to a data frame using R programming language. Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.

Lets create a student data frame. Following is the code:

# Create non-empty data frame with column names
# Assign names to x 
x <- c( "Calvin", "Chris", "Raj")
# Assign names to y
y <- c( 10, 25, 19)
# Create a non-empty data frame with column names 
# Assign x to "First Name" as column name 
# Assign y to "Age" as column name 
student <- data.frame( "First Name" = x, "Age" = y, stringsAsFactors=FALSE)
# Print the data frame
student

A student data frame is created and following gets printed:

  First.Name Age
1     Calvin  10
2      Chris  25
3        Raj  19

 

Table of Contents

How to Add a New Column

With above student data frame, a column could be added in following manners:
Approach 1: Use $ sign with data frame and assign a vector

# Add "Location" column
student$Location <- c("Wilmington", "San Francisco", "Dayton")
# Print student

Notice the student data frame with additional “Location” column

  First.Name Age      Location
1     Calvin  10    Wilmington
2      Chris  25 San Francisco
3        Raj  19        Dayton

Approach 2: Use matrix-like notation and assign a vector. Pay attention to quotes used with “Smoke”

student[, "Smoke"] <- c( "yes", "no", "yes")

Following will get printed:

  First.Name Age      Location Smoke
1     Calvin  10    Wilmington   yes
2      Chris  25 San Francisco    no
3        Raj  19        Dayton   yes

Approach 3: Use array/map like notation and assign a vector. Pay attention to quotes used with “working”

student["Working"] <- c("no", "yes", "yes")

Following will get printed:

  First.Name Age      Location Smoke Working
1     Calvin  10    Wilmington   yes      no
2      Chris  25 San Francisco    no     yes
3        Raj  19        Dayton   yes     yes
Ajitesh Kumar

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.
Posted in Big Data. Tagged with , .