Convert List to data.table in R (2 Examples)

 

In this post, you’ll learn how to transform a list into a data.table in R programming. Make sure to also visit our data.table page here, where we give an overview of the package and many related tutorials.

This tutorial consists of the following content blocks:

It’s time to dive into the examples.

 

Example Data & Packages

First, we need to install and load the data.table software package:

install.packages("data.table")             # Install & load data.table package
library("data.table")

Next, we construct some example data:

l_1 <- list( A = 1:5,
             B = letters[1:5],
             C = seq(0, 1, length.out = 5) )
l_1
# $A
# [1] 1 2 3 4 5
# 
# $B
# [1] "a" "b" "c" "d" "e"
# 
# $C
# [1] 0.00 0.25 0.50 0.75 1.00

Have a look at the previous RStudio console output. It shows that our example data l_1 is a list, containing three list elements, each being a vector of length five. For the creation of the list, we used seq() to create a sequence of numbers and letters[x:y] to create a sequence of letters.

 

Example 1: List to data.table: setDT

In Example 1, I’ll illustrate how to create a data.table from list l_1.

DT_1 <- data.table::copy(l_1)              # Replicate l_1
setDT(DT_1)                                # Transform list to data.table
DT_1

 

table 1 data frame convert list data table

 

Table 1 shows the result of the previous code: a data.table. We first replicated our list l_1 and called that object DT_1 (still a list). Using setDT(), we transformed the list into a data.table. Note that the function requires that all list elements have the same length.

 

Example 2: List to data.table: do.call

In this example, I’ll demonstrate an alternative way of creating a data.table from a list.

DT_2 <- data.table(do.call(cbind, l_1))    # Transform list to data.table
DT_2

 

table 2 data frame convert list data table

 

As shown in Table 2, the previous R programming syntax has created a data.table. As second function entry, do.call() takes a list and the first entry determines the function to be applied to the list elements. In the example, cbind() (short for column bind) sticks together the list elements of l_1 — column by column. The outer function data.table() sets the output to a data.table.

 

Video, Further Resources & Summary

Have a look at the following video on my YouTube channel. In the video, I demonstrate the contents of this tutorial.

 

The YouTube video will be added soon.

 

Furthermore, you might read the other articles on this website. We have released several related articles already:

 

In summary: You have learned in this post how to create a data.frame from a list in R. Please let me know in the comments below, in case you have further questions or comments.

 

Anna-Lena Wölwer Survey Statistician & R Programmer

This page was created in collaboration with Anna-Lena Wölwer. Have a look at Anna-Lena’s author page to get further information about her academic background and the other articles she has written for Statistics Globe.

 

Subscribe to the Statistics Globe Newsletter

Get regular updates on the latest tutorials, offers & news at Statistics Globe.
I hate spam & you may opt out anytime: Privacy Policy.


Leave a Reply

Your email address will not be published.

Fill out this field
Fill out this field
Please enter a valid email address.

Menu
Top