Learn R – How to Add New Column to Data Frame

0
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

 

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
Share.

Leave A Reply

Time limit is exhausted. Please reload the CAPTCHA.