Open In App

Change column name of a given DataFrame in R

Improve
Improve
Like Article
Like
Save
Share
Report

A data frame is a tabular structure with fixed dimensions, of each rows as well as columns. It is a two-dimensional array like object with numerical, character based or factor-type data. Each element belonging to the data frame is indexed by a unique combination of the row and column number respectively. Column names are addressed by unique names.

Method 1: using colnames() method

colnames() method in R is used to rename and replace the column names of the data frame in R.

The columns of the data frame can be renamed by specifying the new column names as a vector. The new name replaces the corresponding old name of the column in the data frame. The length of new column vector should be equivalent to the number of columns originally. Changes are made to the original data frame. 

Syntax:

colnames(df) <- c(new_col1_name,new_col2_name,new_col3_name)

Example:

R




# declaring the columns of data frame
df = data.frame(
col1 = c('A', 'B', 'C', 'J', 'E', NA,'M'),
col2 = c(12.5, 9, 16.5, NA, 9, 20, 14.5),
col3 = c(NA, 3, 2, NA, 1, NA, 0))
  
# printing original data frame
print("Original data frame : ")
print(df)
  
print("Renaming columns names ")
  
# assigning new names to the columns of the data frame
colnames(df) <- c('C1','C2','C3')
  
# printing new data frame
print("New data frame : ")
print(df)


Output:

[1] “Original data frame : “

 col1 col2 col3

1    A 12.5   NA

2    B  9.0    3

3    C 16.5    2

4    J   NA   NA

5    E  9.0    1

6 <NA> 20.0   NA

7    M 14.5    0

[1] “Renaming columns names “

[1] “New data frame : “

   C1   C2 C3

1    A 12.5 NA

2    B  9.0  3

3    C 16.5  2

4    J   NA NA

5    E  9.0  1

6 <NA> 20.0 NA

7    M 14.5  0

1(A) .Specific columns of the data frame can also be renamed using the position index of the respective column. 

Syntax:

colnames(df)[col_indx] <- “new_col_name_at_col_indx”

Approach

  • Create dataframe
  • Select the column to be renamed by index
  • Provide a suitable name
  • Change using colnames() function

Example:

R




# declaring the columns of data frame
df = data.frame(
col1 = c('A', 'B', 'C', 'J', 'E', NA,'M'),
col2 = c(12.5, 9, 16.5, NA, 9, 20, 14.5),
col3 = c(NA, 3, 2, NA, 1, NA, 0))
  
# printing original data frame
print("Original data frame : ")
print(df)
  
print("Renaming columns names ")
  
# assigning the second column name to a new name
colnames(df)[2] <- "new_col2"
  
# printing new data frame
print("New data frame : ")
print(df)


Output:

[1] “Original data frame : “

 col1 col2 col3

1    A 12.5   NA

2    B  9.0    3

3    C 16.5    2

4    J   NA   NA

5    E  9.0    1

6 <NA> 20.0   NA

7    M 14.5    0

[1] “Renaming columns names “

[1] “New data frame : “

 col1 new_col2 col3

1    A     12.5   NA

2    B      9.0    3

3    C     16.5    2

4    J       NA   NA

5    E      9.0    1

6 <NA>     20.0   NA

7    M     14.5    0

1(B). Column names can also be replaced by using the which(names(df)) function, which searches for the column with the specified old name and then replaces it with the new specified name instance. 

Syntax:

colnames(dataframe)[which(names(dataframe) == “oldColName”)] <- “newColName”

Approach

  • Create data frame
  • Select name of the columns to be changed
  • Provide a suitable name
  • Use the function

Example:

R




# declaring the columns of data frame
df = data.frame(
col1 = c('A', 'B', 'C', NA,'M'),
col2 = c(12.5, 9, 16.5,  20, 14.5),
col3 = c(NA, 3, 2, NA, 0))
  
# printing original data frame
print("Original data frame : ")
print(df)
  
print("Renaming columns names ")
# assigning the second column name to a new name
  
colnames(df)[2] <- "new_col2"
  
# printing new data frame
print("After changing the data frame col2 name : ")
print(df)
  
# replacing first column name
colnames(df)[which(names(df) == "col1")] <- "new_col1"
  
# printing new data frame
print("After changing the data frame col1 name : ")
print(df)


Output

[1] “Original data frame : “

 col1 col2 col3

1    A 12.5   NA

2    B  9.0    3

3    C 16.5    2

4 <NA> 20.0   NA

5    M 14.5    0

[1] “Renaming columns names “

[1] “After changing the data frame col2 name : “

 col1 new_col2 col3

1    A     12.5   NA

2    B      9.0    3

3    C     16.5    2

4 <NA>     20.0   NA

5    M     14.5    0

[1] “After changing the data frame col1 name : “

 new_col1 new_col2 col3

1        A     12.5   NA

2        B      9.0    3

3        C     16.5    2

4     <NA>     20.0   NA

5        M     14.5    0

Method 2: using setNames() method

setNames() method in R can also be used to assign new names to the columns contained within a list, vector or tuple. The changes have to be saved back then to the original data frame, because they are not retained.

Syntax:

setnames(df, c(names of new columns))

Approach

  • Create data frame
  • Rename column using function
  • Display modified data frame

Example:

R




# declaring the columns of data frame
df = data.frame(
col1 = c('A', 'B', 'C', NA,'M'),
col2 = c(12.5, 9, 16.5,  20, 14.5),
col3 = c(NA, 3, 2, NA, 0))
  
# printing original data frame
print("Original data frame : ")
print(df)
  
# print("Renaming columns names ")
# renaming all the column names of data frame
df <- setNames(df, c("changed_Col1","changed_Col2","changed_Col3"))
  
print("Renamed data frame : ")
print(df)


Output

[1] “Original data frame : “

  col1 col2 col3

1    A 12.5   NA

2    B  9.0    3

3    C 16.5    2

4 <NA> 20.0   NA

5    M 14.5    0

[1] “Renamed data frame : “

  changed_Col1 changed_Col2 changed_Col3

1            A         12.5           NA

2            B          9.0            3

3            C         16.5            2

4         <NA>         20.0           NA

5            M         14.5            0



Last Updated : 16 Mar, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads