How can I add an index (numeric ID) column to a data frame in R?

Adding an index column to a data frame in R refers to the process of creating a column with unique numeric IDs that correspond to each row in the data frame. This is commonly used to easily identify and reference specific rows within the data frame. To add an index column, one can use the “row.names” function to generate a vector of row names, which can then be converted into a new column using the “as.data.frame” function. Alternatively, the “row_number” function from the dplyr package can also be used to create a new column with sequential numeric IDs. This process is useful for organizing and manipulating large datasets in R.

Add an Index (numeric ID) Column to a Data Frame in R


Suppose you have the following data frame:

data <- data.frame(team = c('Spurs', 'Lakers', 'Pistons', 'Mavs'),                   avg_points = c(102, 104, 96, 97))data

#     team avg_points
#1   Spurs        102
#2  Lakers        104
#3 Pistons         96
#4    Mavs         97

In order to add an index column to give each row in this data frame a unique numeric ID, you can use the following code:

#add index column to data frame
data$index <- 1:nrow(data)
data

#     team avg_points index
#1   Spurs        102     1
#2  Lakers        104     2
#3 Pistons         96     3
#4    Mavs         97     4

Another way to add a unique ID to each row in the data frame is by using the tibble::rowid_to_column function from the tidyverse package:

#load tidyverse package
library(tidyverse)

#create data frame
data <- data.frame(team = c('Spurs', 'Lakers', 'Pistons', 'Mavs'),
                   avg_points = c(102, 104, 96, 97))

#add index column to data frame
data <- tibble::rowid_to_column(data, "index")
data

#  index team avg_points
#1  1   Spurs        102
#2  2  Lakers        104
#3  3 Pistons         96
#4  4    Mavs         97

Notice that both techniques produce the same result: a new column that gives each row in the data frame a unique ID. 

x