# Randomly Reorder Data Frame by Row and Column in R (2 Examples)

In this R tutorial you’ll learn how to **shuffle the rows and columns of a data frame randomly**.

The article contains two examples for the random reordering. More precisely, the content of the post is structured as follows:

Let’s get started…

## Creation of Example Data

We’ll use the data below as basement for this R programming tutorial:

data <- data.frame(x1 = 1:10, # Create example data x2 = LETTERS[1:10]) data # Print example data # x1 x2 # 1 1 A # 2 2 B # 3 3 C # 4 4 D # 5 5 E # 6 6 F # 7 7 G # 8 8 H # 9 9 I # 10 10 J |

data <- data.frame(x1 = 1:10, # Create example data x2 = LETTERS[1:10]) data # Print example data # x1 x2 # 1 1 A # 2 2 B # 3 3 C # 4 4 D # 5 5 E # 6 6 F # 7 7 G # 8 8 H # 9 9 I # 10 10 J

Have a look at the previous output of the RStudio console. It shows that our exemplifying data has ten rows and two columns. The variable x1 contains numeric values ranging from 1 to 10 and the variable x2 contains alphabetic letters ranging from A to J.

Let’s shuffle these data!

## Example 1: Shuffle Data Frame by Row

In Example 1, I’ll show how to reorder a data matrix rowwise. First, we need to set a seed for reproducibility:

set.seed(2347723) # Set seed |

set.seed(2347723) # Set seed

Now, we can use the sample and nrow functions as shown below:

data_row <- data[sample(1:nrow(data)), ] # Randomly reorder rows data_row # Print updated data # x1 x2 # 4 4 D # 7 7 G # 5 5 E # 1 1 A # 10 10 J # 6 6 F # 8 8 H # 3 3 C # 9 9 I # 2 2 B |

data_row <- data[sample(1:nrow(data)), ] # Randomly reorder rows data_row # Print updated data # x1 x2 # 4 4 D # 7 7 G # 5 5 E # 1 1 A # 10 10 J # 6 6 F # 8 8 H # 3 3 C # 9 9 I # 2 2 B

As you can see based on the previous output of the RStudio console, our updated data frame is permuted rowwise.

## Example 2: Shuffle Data Frame by Column

In Example 2, I’ll show how to permute a data frame columnwise. Again, we need to set a seed for reproducibility first:

set.seed(8732645) # Set seed |

set.seed(8732645) # Set seed

Now, we can use a combination of the sample and ncol functions to shuffle our data by variables:

data_col <- data[ , sample(1:ncol(data))] # Randomly reorder columns data_col # Print updated data # x2 x1 # 1 A 1 # 2 B 2 # 3 C 3 # 4 D 4 # 5 E 5 # 6 F 6 # 7 G 7 # 8 H 8 # 9 I 9 # 10 J 10 |

data_col <- data[ , sample(1:ncol(data))] # Randomly reorder columns data_col # Print updated data # x2 x1 # 1 A 1 # 2 B 2 # 3 C 3 # 4 D 4 # 5 E 5 # 6 F 6 # 7 G 7 # 8 H 8 # 9 I 9 # 10 J 10

Have a look at the previous output: The two variables x1 and x2 were exchanged.

## Video & Further Resources

Do you need further info on the R programming syntax of this post? Then you may want to watch the following video of my YouTube channel. In the video, I illustrate the examples of this post in the R programming language.

*The YouTube video will be added soon.*

Furthermore, you might have a look at the related tutorials of this website. Some articles can be found below.

- The nrow Function
- The ncol Function
- Sample Random Rows of Data Frame in R
- sample_n & sample_frac R Functions of dplyr Package
- The R Programming Language

In this R tutorial you learned how to **permute or randomize the row and column ordering of a data frame**. In case you have any additional questions, let me know in the comments section.

### Subscribe to my free statistics newsletter: