How to Add Suffix to Column Names in R

Spread the love

Adding a suffix to column names in a data frame is an often-overlooked yet essential aspect of data manipulation in R. Whether you’re performing joins, merges, or just better organizing your data, appending suffixes to column names can be incredibly useful. This comprehensive guide provides a deep dive into various methods for adding suffixes to column names in R.


The need to add a suffix to column names usually arises when dealing with data frames with similar or overlapping column names. Adding a suffix (or prefix) can help make the data frame more readable and easier to manipulate.


For this article, we assume you have a basic understanding of R and data frames. Below is a sample data frame that we’ll use for demonstrations:

# Sample data frame
df <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(28, 34, 45),
  Salary = c(55000, 70000, 120000)

Methods to Add Suffix

Method 1: Base R


The most straightforward way to add a suffix to all column names in a data frame is to use base R functionality:

names(df) <- paste0(names(df), "_suffix")


Here’s how you would add the suffix “_new”:

names(df) <- paste0(names(df), "_new")

Advantages and Disadvantages

  • Advantages: No need for additional packages; quick and easy.
  • Disadvantages: Lacks the flexibility for complex manipulations.

Method 2: Using dplyr


If you are using the dplyr package, you can take advantage of its rename_with function:

rename_with(.data, .fn, ...)


Firstly, install and load the dplyr package if you haven’t.


To add a suffix:

df <- df %>% rename_with(~paste0(.x, "_new"))

Advantages and Disadvantages

  • Advantages: Offers more flexibility and can be combined with other dplyr functions.
  • Disadvantages: Requires the installation of an additional package.

Method 3: Using data.table


The data.table package provides another option for renaming columns. The setnames function can be very useful:

setnames(x, old, new, skip_absent = FALSE)


Install and load the data.table package first.


Here is how you can use it:

setnames(df, names(df), paste0(names(df), "_new"))

Advantages and Disadvantages

  • Advantages: Fast and memory-efficient, especially for large datasets.
  • Disadvantages: Requires the data.table package and has its own syntax to learn.

Method 4: for Loop

Syntax and Usage

If you want more control over the renaming process, a for loop might be suitable:

for(name in names(df)){
  new_name <- paste0(name, "_new")
  names(df)[names(df) == name] <- new_name

Advantages and Disadvantages

  • Advantages: Provides complete control over the renaming process.
  • Disadvantages: More verbose and could be slower for very large data frames.

Use Cases

  1. Merging Data: When joining data frames with overlapping column names, suffixes can help distinguish between columns from different sources.
  2. Temporal Data: If your data frame represents different time slices, suffixes can be used to differentiate between them.
  3. Multiple Versions: When you have multiple versions of the same data frame, using suffixes can help differentiate between them.


R provides multiple ways to add a suffix to column names in a data frame, each with its own pros and cons. While base R provides a simple and quick method, packages like dplyr and data.table offer more features and are optimized for performance. The choice of method often depends on your specific needs, including the complexity of your data frame and the operations you plan to perform. Regardless of the method you choose, adding suffixes to your column names can greatly improve the readability and usability of your data frames in R.

Posted in RTagged

Leave a Reply