Renaming Columns in R Dataframes

Why change column names in R?

Establishing crisp, clear column names is essential to keeping a large statistics project organized. I came to R from the Python language, which makes readability a key priority for developers. How often have you had to dust off your work six months later? Explain your ideas to a new hire? Debug the system at 3AM? Clean crisp code is your friend in these moments. The same goes for your data: you will likely want to rename columns in your data frame to make it easier to understand and maintain over time.

How To Rename Columns in R

We’re going to use the ChickWeight data frame for this exercise and make it easier to understand by changing column names in R. As you may remember, the ChickWeight data set includes four columns:

  • Weight
  • Time
  • Chick
  • Diet

You can easily load the dataset into R by typing data(ChickWeight) into the R interpreter.

We’re going to change column names in R to make the dataframe easier to pick up and use at a later date.

names(ChickWeight)[names(ChickWeight)=="Time"] <- "Days"

As you can see from the screenshot below, this worked:


We selected the “Time” field by name and successfully renamed it to “Days”. This value of this is that it simplifies things for future analysts and our collaborators. Data sets which explain themselves are a beautiful thing. Especially if you’re in charge of Data Quality Assurance. Rename columns to simple, natural terminology you can figure out several months later after you hand off your projects.

Renaming Columns by Position

Important: this technique assumes your data structure is effectively immutable. If you expect to make changes to the order of the columns or number of columns included  in the future, we recommend the other approach. That being said… you do have the option of targeting the nth column for renaming.

Example below, in this case flipping the Weight field to Ounces.

 names(ChickWeight)[1] <- "Ounces" 

As you can see, this worked as well.

Again, we need to stress the danger of using this approach if you expect to change your data frame design in the future. There is a substantial burden from using a brittle system like column position. That being said, this can be an excellent quick and dirty solution for throwaway data hygiene scripts if you’re in a hurry. Remapping fields based on name is a much safer way to proceed, of course, if you have time.

And that concludes our summation of how to rename a column in R. By changing your column names into easily remembered references, you simplify future updates to your projects. And as we demonstrated, it isn’t hard to change column names in R. Just to be sure to think about the balance of speed vs. flexibility your want when you write your project code.

A good tip from traditional software development is that you easily spend as much time reading your code as writing it, particularly when you are working as part of a larger team. This is an especially important tip for folks transitioning from academia to industry. As you move from doing solo projects and projects with highly structured releases to supporting a business team, being able to pass projects to another analyst and quickly resume work from months or years ago is a crucial skill. Changing column names in your data frame so they are easy to understand can significantly simplify your life.

For more information about handy functions for cleaning up data, check out our functions reference.