Cómo convertir una lista en un marco de datos en R

Hay muchos casos en los que es posible que desee convertir una lista en un marco de datos en R. Este tutorial explica tres formas diferentes de hacerlo.

Método 1: Base R

El siguiente fragmento de código muestra cómo convertir una lista en un marco de datos utilizando solo la base R:

#Crear lista
my_list <- lista (letras [1: 5], letras [6:10])
mi lista

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

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

#convertir lista a marco de datos
 data.frame (t (sapply (my_list, c)))

  X1 X2 X3 X4 X5
1 abcde
2 fghij

En este ejemplo, sapply convierte la lista en una matriz, luego data.frame convierte la matriz en un marco de datos. El resultado final es un marco de datos de dos filas y cinco columnas.

Método 2: tabla de datos

El siguiente fragmento de código muestra cómo convertir una lista de dos listas anidadas en un marco de datos con dos filas y tres columnas mediante la función rbindlist de la biblioteca data.table :

#load data.table biblioteca
biblioteca (tabla de datos)

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

$ a
$ a $ var1
[1] 1

$ a $ var2
[1] 2

$ a $ var3
[1] 3

$ b
$ b $ var1
[1] 4

$ b $ var2
[15

$ b $ var3
[dieciséis

#convertir lista a marco de datos
 rbindlist (my_list)

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

Esto da como resultado una tabla de datos con dos filas y tres columnas. Si desea convertir esta tabla de datos en un marco de datos, simplemente puede usar as.data.frame (DT) .

Este método convierte una lista en un marco de datos más rápido que el método anterior si está trabajando con un conjunto de datos muy grande.

Método 3: Dplyr

El siguiente fragmento de código muestra cómo convertir una lista de dos listas anidadas en un marco de datos con dos filas y tres columnas mediante la función bind_rows de la biblioteca dplyr :

#load library
biblioteca (dplyr)

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

mi lista

$ a
$ a $ var1
[1] 1

$ a $ var2
[1] 2

$ a $ var3
[1] 3


$ b
$ b $ var1
[1] 4

$ b $ var2
[15

$ b $ var3
[dieciséis

#convertir lista a marco de datos
 bind_rows (my_list)

# A tibble: 2 x 3
   var1 var2 var3
    
1 1 2 3
2 4 5 6

Esto da como resultado un marco de datos con dos filas y tres columnas.

Este método también tiende a funcionar más rápido que la base R cuando se trabaja con grandes conjuntos de datos.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Una gráfica residual es un tipo de gráfica que muestra los valores ajustados contra los valores residuales para un modelo…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!