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