Open In App

Convert Nested Lists to Dataframe in R

Improve
Improve
Like Article
Like
Save
Share
Report

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() functions 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() functions 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



Last Updated : 15 Nov, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads