# Repeat Rows of Data Frame N Times in R (2 Examples)

This tutorial illustrates how to create (multiple) duplicates of each row of a data frame in the R programming language.

The article will consist of these contents:

Let’s do this.

## Creation of Example Data

Consider the following example data:

```data <- data.frame(x1 = 1:5,
x2 = LETTERS[1:5])
data
#   x1 x2
# 1  1  A
# 2  2  B
# 3  3  C
# 4  4  D
# 5  5  E```

The previous output of the RStudio console shows that our example data contains five rows and two columns.

## Example 1: Create Repetitions of Data Frame Rows Using Base R

This Example illustrates how to create repetitions of our data frame rows. Let’s assume that we want to repeat each line of our matrix three times. Then, we can use the rep, seq_len, and nrow functions as shown below:

```data_new_1 <- data[rep(seq_len(nrow(data)), each = 3), ]  # Base R
data_new_1
#     x1 x2
# 1    1  A
# 1.1  1  A
# 1.2  1  A
# 2    2  B
# 2.1  2  B
# 2.2  2  B
# 3    3  C
# 3.1  3  C
# 3.2  3  C
# 4    4  D
# 4.1  4  D
# 4.2  4  D
# 5    5  E
# 5.1  5  E
# 5.2  5  E```

The previous output is showing our result: A data frame with three duplicates of each row. Note that the row names are numerated with .1, .2 and so on.

## Example 2: Create Repetitions of Data Frame Rows Using dplyr Package

This Section illustrates how to duplicate lines of a data table (or a tibble) using the dplyr package. In case we want to use the functions of the dplyr package, we first need to install and load dplyr:

```install.packages("dplyr")                                 # Install dplyr package

Now, we can apply the slice, rep, and n functions as follows:

```data_new_2 <- data %>% slice(rep(1:n(), each = 3))        # dplyr package
data_new_2
#    x1 x2
# 1   1  A
# 2   1  A
# 3   1  A
# 4   2  B
# 5   2  B
# 6   2  B
# 7   3  C
# 8   3  C
# 9   3  C
# 10  4  D
# 11  4  D
# 12  4  D
# 13  5  E
# 14  5  E
# 15  5  E```

The values contained in the output data are the same as in Example 1. However, when using the dplyr package the row names have a range from 1 to the number of rows of your data.

## Video, Further Resources & Summary

I have recently published a video on my YouTube channel, which illustrates the examples of this article. You can find the video below.

Furthermore, you might have a look at the related articles of this website:

In this R tutorial you learned how to repeat lines of a matrix table. Let me know in the comments section below, if you have any additional questions or comments.

Subscribe to the Statistics Globe Newsletter

• Francis Pitch
March 10, 2022 5:49 am

I would like to ask How can I make a bubble sort algorithm in ascending order which show by an animation.Thxx

• March 10, 2022 8:28 am