Often you may want to combine two columns into one in R. For example, suppose you have a data frame with three columns:
month year value 10 2019 15 10 2020 13 11 2020 13 11 2021 19 12 2021 22
You may wish to combine the month and year column into a single column called date:
date value 2019_10 15 2020_10 13 2020_11 13 2021_11 19 2021_12 22
This tutorial explains two ways to quickly do this in R.
Method 1: Use the Paste Function from Base R
The following code shows how to use the paste function from base R to combine the columns month and year into a single column called date:
#create data frame data <- data.frame(month=c(10, 10, 11, 11, 12), year=c(2019, 2020, 2020, 2021, 2021), value=c(15, 13, 13, 19, 22)) #view data frame data #combine year and month into one column data$date <- paste(data$year, data$month, sep="_") #view new data frame data month year value date 1 10 2019 15 2019_10 2 10 2020 13 2020_10 3 11 2020 13 2020_11 4 11 2021 19 2021_11 5 12 2021 22 2021_12
Once we’ve combined the two columns, we can remove the old ones if we’d like:
data_new <- data[c("date", "value")]
data_new
date value
1 2019_10 15
2 2020_10 13
3 2020_11 13
4 2021_11 19
5 2021_12 22
Method 2: Use the Unite Function from Tidyr
The following code shows how to use the unite function from the tiydr package to combine the columns month and year into a single column called date:
#load tidyr package library(tidyr) #create data frame data <- data.frame(month=c(10, 10, 11, 11, 12), year=c(2019, 2020, 2020, 2021, 2021), value=c(15, 13, 13, 19, 22)) #combine year and month into one column unite(data, date, c(year, month)) date value 1 2019_10 15 2 2020_10 13 3 2020_11 13 4 2021_11 19 5 2021_12 22
Notice that both methods produce identical results.
You can find the complete documentation for the unite function here.
This definitely helped save my ass on my graphing homework. Thanks a lot!