So konvertieren Sie eine Liste in ein Dataframe in R

Von Fabian
Kategorie: R
Tags: Operationen
Lesezeit: 2 Minuten

Es gibt viele Fälle, in denen Sie eine Liste in ein Dataframe in R konvertieren möchten. In diesem Tutorial werden drei verschiedene Möglichkeiten erläutert.

Methode 1: Basis R

Das folgende Codeausschnitt zeigt, wie eine Liste nur mit Basis R in ein Dataframe konvertiert wird:

#Liste erstellen
my_list <- list(letters[1:5], letters[6:10])
my_list

[[1]]
[1] "a" "b" "c" "d" "e"

[[2]]
[1] "f" "g" "h" "i" "j"

#Liste in Dataframe konvertieren
ddata.frame(t(sapply(my_list,c)))

  X1 X2 X3 X4 X5
1  a  b  c  d  e
2  f  g  h  i  j

In diesem Beispiel konvertiert sapply die Liste in eine Matrix, dann konvertiert data.frame die Matrix in ein Dataframe. Das Endergebnis ist ein Dataframe aus zwei Zeilen und fünf Spalten.

Methode 2: Datentabelle

Das folgende Codeausschnitt zeigt, wie eine Liste mit zwei verschachtelten Listen mithilfe der Funktion rbindlist aus der Bibliothek data.table in ein Dataframe mit zwei Zeilen und drei Spalten konvertiert wird:

#data.table Bibliothek laden
library(data.table)

#Liste erstellen
my_list <- list(a = list(var1 = 1, var2 = 2, var3 = 3),
                b = list(var1 = 4, var2 = 5, var3 = 6))
my_list 

$a
$a$var1
[1] 1

$a$var2
[1] 2

$a$var3
[1] 3

$b
$b$var1
[1] 4

$b$var2
[1] 5

$b$var3
[1] 6

#Liste in Dataframe konvertieren
rbindlist(my_list)

   var1 var2 var3
1:    1    2    3
2:    4    5    6

Dies führt zu einer Datentabelle mit zwei Zeilen und drei Spalten. Wenn Sie diese Datentabelle in ein Dataframe konvertieren möchten, können Sie as.data.frame(DT) verwenden.

Diese Methode konvertiert eine Liste schneller als die vorherige Methode in ein Dataframe, wenn Sie mit einem sehr großen Datensatz arbeiten.

Methode 3: Dplyr

Das folgende Codeausschnitt zeigt, wie eine Liste mit zwei verschachtelten Listen mithilfe der Funktion bind_rows aus der Bibliothek dplyr in ein Dataframe mit zwei Zeilen und drei Spalten konvertiert wird:

#Bibliothek laden
library(dplyr)

#Liste erstellen
my_list <- list(a = list(var1 = 1, var2 = 2, var3 = 3),
                b = list(var1 = 4, var2 = 5, var3 = 6))

my_list

$a
$a$var1
[1] 1

$a$var2
[1] 2

$a$var3
[1] 3


$b
$b$var1
[1] 4

$b$var2
[1] 5

$b$var3
[1] 6

#Liste in Dataframe konvertieren
bind_rows(my_list)

# A tibble: 2 x 3
   var1  var2  var3

1     1     2     3
2     4     5     6

Dies führt zu einem Dataframe mit zwei Zeilen und drei Spalten.

Diese Methode arbeitet auch schneller als Basis R, wenn Sie mit großen Datenmengen arbeiten.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: