# Convert Data Frame Rows to List in R (Example)

In this post you’ll learn how to **store each row of a data frame as a list element** in R programming.

Table of contents:

- Creation of Exemplifying Data
- Example: How to Store Each Row of a Data Frame in a List
- Example Continued: Modify Names of List Elements
- Video, Further Resources & Summary

Let’s dive right into the exemplifying R code.

## Creation of Exemplifying Data

In the example of this R tutorial, we’ll use the following example data frame:

data <- data.frame(x1 = 1:5, # Create example data x2 = letters[1:5], x3 = "x") rownames(data) <- paste0("row", 1:5) # Specify row names of data data # Print example data # x1 x2 x3 # row1 1 a x # row2 2 b x # row3 3 c x # row4 4 d x # row5 5 e x |

data <- data.frame(x1 = 1:5, # Create example data x2 = letters[1:5], x3 = "x") rownames(data) <- paste0("row", 1:5) # Specify row names of data data # Print example data # x1 x2 x3 # row1 1 a x # row2 2 b x # row3 3 c x # row4 4 d x # row5 5 e x

As you can see based on the RStudio console output, our data frame contains five rows and three columns. The row names are numerated from row1 to row5.

## Example: How to Store Each Row of a Data Frame in a List

If we want to convert the rows of this data frame into list elements, we can use a combination of the split, seq, and nrow functions. Consider the following R code:

data_list <- split(data, seq(nrow(data))) # Convert rows to list data_list # Print list # $`1` # x1 x2 x3 # row1 1 a x # # $`2` # x1 x2 x3 # row2 2 b x # # $`3` # x1 x2 x3 # row3 3 c x # # $`4` # x1 x2 x3 # row4 4 d x # # $`5` # x1 x2 x3 # row5 5 e x |

data_list <- split(data, seq(nrow(data))) # Convert rows to list data_list # Print list # $`1` # x1 x2 x3 # row1 1 a x # # $`2` # x1 x2 x3 # row2 2 b x # # $`3` # x1 x2 x3 # row3 3 c x # # $`4` # x1 x2 x3 # row4 4 d x # # $`5` # x1 x2 x3 # row5 5 e x

The previous R syntax converted our data frame rows into a list. Please note that the R code of this tutorial is based on a thread on Stack Overflow.

## Example Continued: Modify Names of List Elements

You may say that the list we created in Example 1 is difficult to read, since the list elements are just numbered from 1 to 5. With the following R code, we can change the names of our list elements to the row names of our input data:

data_list <- setNames(split(data, # Modify names of list elements seq(nrow(data))), rownames(data)) data_list # $row1 # x1 x2 x3 # row1 1 a x # # $row2 # x1 x2 x3 # row2 2 b x # # $row3 # x1 x2 x3 # row3 3 c x # # $row4 # x1 x2 x3 # row4 4 d x # # $row5 # x1 x2 x3 # row5 5 e x |

data_list <- setNames(split(data, # Modify names of list elements seq(nrow(data))), rownames(data)) data_list # $row1 # x1 x2 x3 # row1 1 a x # # $row2 # x1 x2 x3 # row2 2 b x # # $row3 # x1 x2 x3 # row3 3 c x # # $row4 # x1 x2 x3 # row4 4 d x # # $row5 # x1 x2 x3 # row5 5 e x

Looks good!

## Video, Further Resources & Summary

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

*The YouTube video will be added soon.*

In addition, you could have a look at some of the other articles of this website. Some tutorials are listed below.

- Convert List of Vectors to Data Frame in R
- The nrow Command
- The setNames Command
- The R Programming Language

Summary: This article showed how to **create a list consisting of the rows of a data frame** in the R programming language. Don’t hesitate to let me know in the comments below, if you have additional questions.

**5**/

**5**(

**1**vote )

### Subscribe to my free statistics newsletter: