¿Cómo convertir array a lista de vectores en R?

En este artículo, aprenderemos cómo convertir una array en una lista de vectores en el lenguaje de programación R.

Convertir array en una lista de vectores por Columnas

Método 1: Usar la función as.list()

Para convertir las columnas de la array en una lista de vectores, primero debemos convertir la array en un objeto de marco de datos, lo que se puede hacer usando as.data.frame(matrix_name), que toma nuestra array como argumento y devuelve un marco de datos . Una vez que nuestra array se convierte en un marco de datos, podemos pasar nuestro marco de datos recién creado (por conversión) como argumento a la función as.list(dataframe_name) , que convierte nuestro marco de datos en una lista de vectores.

Sintaxis

as.list(as.data.frame(matrix_name))

Ejemplo 1:

R

mat<-matrix(1:20, ncol=4)
print("Sample Matrix")
mat
  
print("List of Vectors after conversion")
list<-as.list(as.data.frame(mat))
list  

Producción:

 [1] "Sample Matrix"
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
[1] "List of Vectors after conversion"
$V1
[1] 1 2 3 4 5
$V2
[1]  6  7  8  9 10
$V3
[1] 11 12 13 14 15
$V4
[1] 16 17 18 19 20

Método 2: Usar split() y rep()

Pasamos nuestra array de muestra y elementos replicados de vectores para dividir los datos como parámetros en la función split(), que devuelve nuestro objeto de lista.

La función split() se utiliza para dividir un vector de datos en grupos según lo definido por el factor proporcionado. 

Sintaxis: dividir (x, f)

Parámetros :

  • x : representa el vector de datos o el marco de datos
  • f : representa el factor para dividir los datos

rep() se usa para replicar los elementos de los vectores en la programación R.

Sintaxis: rep(x, veces)

Parámetro:

  • x : representa el vector de datos o el marco de datos
  • tiempos: frecuencia de aparición

Return : Devuelve los vectores replicados.

Ejemplo:

R

mat<-matrix(1:20, ncol=4)
print("Sample Matrix")
mat
  
list = split(mat, rep(1:ncol(mat), each = nrow(mat)))
  
print("After converting Matrix into a List")
print(list)

Producción:

[1] "Sample Matrix"
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
[1] "After converting Matrix into a List"
$`1`
[1] 1 2 3 4 5
$`2`
[1]  6  7  8  9 10
$`3`
[1] 11 12 13 14 15
$`4`
[1] 16 17 18 19 20

Convertir array en una lista de vectores por Filas

Método 1: Usar as.list()

El enfoque para usar este método es el mismo que el anterior, pero para obtener filas primero tenemos que obtener una transposición de la array. Se puede utilizar  la función t(matrix_name) .

Sintaxis: 

como.lista(como.datos.marco(t(nombre_array)))

Ejemplo:

R

mat<-matrix(1:20, ncol=4)
print("Sample Matrix")
mat
  
print("List of Vectors after conversion")
  
list<-as.list(as.data.frame(t(mat)))
list  

Producción:

[1] "Sample Matrix"
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
[1] "List of Vectors after conversion"
$V1
[1]  1  6 11 16
$V2
[1]  2  7 12 17
$V3
[1]  3  8 13 18
$V4
[1]  4  9 14 19
$V5
[1]  5 10 15 20

Método 2: Usar split() y rep()

De manera similar, en este método también tenemos que encontrar la transpuesta de la array y el resto del enfoque es el mismo que el anterior.

Sintaxis

split(mat, rep(1:ncol(mat), each = nrow(mat)))

Ejemplo:

R

mat<-matrix(1:20, ncol=4)
print("Sample Matrix")
mat
  
t_mat=t(mat)
list = split(
  t_mat, rep(1:ncol(t_mat), each = nrow(t_mat)))
  
print("After converting Matrix into a List")
print(list)

Producción:

[1] "Sample Matrix"
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
[1] "After converting Matrix into a List"
$`1`
[1]  1  6 11 16
$`2`
[1]  2  7 12 17
$`3`
[1]  3  8 13 18
$`4`
[1]  4  9 14 19
$`5`
[1]  5 10 15 20

Publicación traducida automáticamente

Artículo escrito por sudhanshublaze y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *