Home » R Tutorials » Convert List to Data Frame in R

Convert List to Data Frame in R

Data frame in R stores heterogeneous data types in the format of tabular forms. It is a list of vectors of equal length. Converting a list to a data frame provides more insight to analyze the tabular format of data.

The as.data.frame() function in R is used to create a data frame in R. It can create a data frame from the list of vectors by specifying the list parameter in data.frame() function.

In this tutorial, we will discuss how to convert a list to a data frame in R, using the do.call() ,cbind(), and rbind() function to convert the list of vectors to a data frame in R.

Convert List to Data Frame in R

To convert a list of vectors to a data frame in R, use below R code

dr <- as.data.frame(list)

Let’s practice with an example to make a data frame from the list in R.

name <- c("Tom", "Aron", "Gary","Jeannie")
gender <- c("Male", "Male", "Male", "Female")
age <- c(18, 20, 17, 21)

# Create a list from a vector
student_list <- list(
  name = name,
  gender = gender,
  age = age
  )
# Print the list of vectors  
student_list

In the above R code, we have created the list from vectors.

The output of the list of vectors is:

$name
[1] "Tom"     "Aron"    "Gary"    "Jeannie"

$gender
[1] "Male"   "Male"   "Male"   "Female"

$age
[1] 18 20 17 21

Using the R as.data.frame() function to convert the list to a data frame.

# Convert the list to data frame
student_data = as.data.frame(student_list)
# Print the data frame
student_data

In the above R code, as.data.frame() function takes student_list as an argument and converts the list of vectors to a data frame.

The output of the above R code is:

     name gender age
1     Tom   Male  18
2    Aron   Male  20
3    Gary   Male  17
4 Jeannie Female  21

Converting the list to Data frame in R using do.call function

Using the do.call() and cbind() function in R, we can convert the list to a data frame. It converts the list elements to columns in a data frame.

Let’s use the above example of a list to convert the list to a data frame.

# Use do.call and cbind() function to convert list elements to data frame columns
student_data1 <- as.data.frame(do.call(cbind, student_list))
# Print the data frame
student_data1

The output of the above R code converts the list of vectors elements to data frame columns.

     name gender age
1     Tom   Male  18
2    Aron   Male  20
3    Gary   Male  17
4 Jeannie Female  21

Convert the List to Data Frame Rows using rbind function

Using the rbind() function in R, we can convert the list to data frame rows.

Let’s practice with an example to convert a list to data frame rows in R.

# Convert the list to data frame rows
student_data2 <- as.data.frame(do.call(rbind, student_list)) 
# Print the data frame
student_data2

In the above R code, as.data.frame() function accepts argument to convert the list to data frame rows using do.call() and rbind() function.

The output of the R code is:

         V1   V2   V3      V4
name    Tom Aron Gary Jeannie
gender Male Male Male  Female
age      18   20   17      21

Convert the List to Data frame using the dplyr package

The dplyr package is commonly used for data manipulation. It provides a consistent set of verbs to perform data manipulation.

Using the dplyr package, we can convert the list to a data frame.

# Import the library
library(dplyr)
# Convert the list of vectors to data frame usint dplyr 
student_data3 <- student_list %>% as_tibble()
# Prints the data frame
student_data3

In the above R code, it pipe list using piping operator %>% to as_tibble() function.

The output of the above R code to convert the list to a data frame in r is:

name    gender   age
  <chr>   <chr>  <dbl>
1 Tom     Male      18
2 Aron    Male      20
3 Gary    Male      17
4 Jeannie Female    21

Conclusion

I hope the above article on how to convert the list to a data frame in R is helpful to you.

We can use as.data.frame() function in R to convert the list of vectors to R. Other methods to convert the list to data frame columns is using do.call() function and cbind() function.

Using the do.call() and rbind() function, it can convert the list to data frame rows in R.

Use the dplyr package to convert the list to the data frame using the as_tibble() function.

Leave a Comment