Skip to content
Related Articles

Related Articles

Improve Article

Convert Nested Lists to Dataframe in R

  • Last Updated : 09 May, 2021

In this article, we will discuss how to Convert Nested Lists to Dataframe in R Programming Language.

It can be done with two methods:

  • Convert Nested lists to Data Frame by Column.
  • Convert Nested lists to Data Frame by Row.

First, let’s Create a nested list.

Code block

Output:



fig 1: Nested List

Method 1: To convert nested list to Data Frame by column.

Approach:

  • Create dataframe using data.frame function with the do.call and cbind.
  • cbind is used to bind the lists together by column into data frame.
  • do.call is used to bind the cbind and the nested list together as a single argument in the Data frame function.
  • Also, store the whole data frame in a variable named data_frame and print the variable.

Code:

R




# list() functuons are used to create
# the list and those list() functions
# are put in another list() function to
# make the nested list
nested_list <- list(l1 = list(1:5, 5:1 ),
                       l2 = list(100:105, 105:100 ),
                       l3 = list(200:205, 205:200 ))
  
# Convert nested list to data frame
# by column with the help of cbind and do.call
data_frame <- as.data.frame(do.call(cbind, nested_list))
  
# Print data frame
data_frame 

Output:

             l1                           l2                           l3

1 1, 2, 3, 4, 5 100, 101, 102, 103, 104, 105 200, 201, 202, 203, 204, 205

2 5, 4, 3, 2, 1 105, 104, 103, 102, 101, 100 205, 204, 203, 202, 201, 200



Method 2: To convert nested list to Data Frame by row.

Approach:

  • Create dataframe using data.frame function with the do.call and rbind.
  • rbind is used to bind the lists together by row into data frame.
  • do.call is used to bind the rbind and the nested list together as a single argument in the Data frame function.
  • Also, store the whole data frame in a variable named data_frame and print the variable.

Code:

R




# list() functuons are used to create
# the list and those list() functions
# are put in another list() function to
# make the nested list
nested_list <- list(l1 = list(1:5, 5:1 ),
                       l2 = list(100:105, 105:100 ),
                       l3 = list(200:205, 205:200 ))
# print the nested list
nested_list
  
# Convert nested list to data frame by row
# with the help of rbind and do.call
data_frame <- as.data.frame(do.call(rbind, nested_list))
  
# Print data frame
data_frame 

 Output: 

                             V1                           V2

l1                1, 2, 3, 4, 5                5, 4, 3, 2, 1

l2 100, 101, 102, 103, 104, 105 105, 104, 103, 102, 101, 100

l3 200, 201, 202, 203, 204, 205 205, 204, 203, 202, 201, 200




My Personal Notes arrow_drop_up
Recommended Articles
Page :