Often you may want to add leading zeros to each number in a vector in R.

Here are the most common ways to do so:

**Method 1: Add Leading Zeros to Numbers Using paste0()**

df$ID <- paste0("00", df$ID)

This particular example uses the **paste0()** function concatenate two leading zeros to each value in the **ID** column of the data frame named **df**.

**Method 2: Add Leading Zeros to Numbers Using str_pad()**

library(stringr) df$ID <- str_pad(df$ID, 2, pad = "0")

This particular example uses the **str_pad()** function from the **stringr** package to add two leading zeros to each value in the **ID** column of the data frame named **df**.

**Method 3: Add Leading Zeros to Numbers Using sprintf()**

df$ID <- sprintf("%05s", df$ID)

This particular example uses the **sprintf()** function add enough leading zeros to each value in the **ID** column of the data frame named **df** so that the final width of each value is **5**.

This method is particularly useful when you want each value in a particular column of a data frame to have the same width.

The following examples show how to use each method in practice with the following data frame that contains one column named **ID** to represent employee ID values at a company and another column named **sales** that represents the total sales made by each employee:

#create data frame df <- data.frame(ID=c(934, 455, 884, 229, 304, 307, 352, 405, 454, 882), sales=c(29, 49, 34, 56, 30, 76, 56, 80, 88, 32)) #view data frame df ID sales 1 934 29 2 455 49 3 884 34 4 229 56 5 304 30 6 307 76 7 352 56 8 405 80 9 454 88 10 882 32

Let’s jump in!

**Example 1: Add Leading Zeros to Numbers Using paste0()**

We can use the following syntax with the **paste0()** function to add two leading zeros to each number in the **ID** column of the data frame:

#add two leading zeros to each number in ID column df$ID <- paste0("00", df$ID) #view updated data frame df ID sales 1 00934 29 2 00455 49 3 00884 34 4 00229 56 5 00304 30 6 00307 76 7 00352 56 8 00405 80 9 00454 88 10 00882 32

Notice that two leading zeros have been added to each number in the **ID** column of the data frame.

**Example 2: Add Leading Zeros to Numbers Using str_pad()**

We can use the following syntax with the **str_pad()** function from the **stringr** package to add two leading zeros to each number in the **ID** column of the data frame:

library(stringr) #add two leading zeros to each number in ID column df$ID <- str_pad(df$ID, 2, pad = "0") #view updated data frame df ID sales 1 00934 29 2 00455 49 3 00884 34 4 00229 56 5 00304 30 6 00307 76 7 00352 56 8 00405 80 9 00454 88 10 00882 32

Notice that two leading zeros have been added to each number in the **ID** column of the data frame.

**Example 3: Add Leading Zeros to Numbers Using sprintf()**

We can use the following syntax with the **sprintf()** function to add enough leading zeros to each number in the **ID** column of the data frame to make each number have a final width of 5:

#add enough leading zeros to make each number have a width of 5 df$ID <- sprintf("%05s", df$ID) #view updated data frame df ID sales 1 00934 29 2 00455 49 3 00884 34 4 00229 56 5 00304 30 6 00307 76 7 00352 56 8 00405 80 9 00454 88 10 00882 32

Notice that two leading zeros have been added to each number in the **ID** column of the data frame, which gives each number a final width of 5.

**Additional Resources**

The following tutorials explain how to perform other common operations in R:

How to Convert a Vector to String in R

How to Convert Strings to Lowercase in R

How to Perform Partial String Matching in R