GeeksforGeeks App
Open App
Browser
Continue

# Convert Nested Lists to Dataframe in R

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

My Personal Notes arrow_drop_up