📜  如何将矩阵转换为 R 中的向量列表?

📅  最后修改于: 2022-05-13 01:54:53.885000             🧑  作者: Mango

如何将矩阵转换为 R 中的向量列表?

在本文中,我们将学习如何在 R 编程语言中将矩阵转换为向量列表。

按列将矩阵转换为向量列表

方法一:使用as.list()函数

转换列 将矩阵转换为向量列表,我们首先需要将矩阵转换为数据帧对象,这可以通过使用as.data.frame(matrix_name)来完成它将我们的矩阵作为参数并返回一个数据帧一旦我们的矩阵转换为数据帧,我们就可以将我们新创建的(通过转换)数据帧作为参数传递as.list(dataframe_name)函数,该函数将我们的数据帧转换为向量列表。

语法

示例 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


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)


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


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)


输出:

[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

方法 2:使用split()rep()

我们通过我们的样本矩阵和向量的复制元素将数据作为参数划分到 split()函数,该函数返回我们的列表对象。

split()函数用于将数据向量划分为由提供的因子定义的组。

rep()用于在 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)

输出:

[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

按行将矩阵转换为向量列表

方法一:使用 as.list()

使用此方法的方法与上述相同,但要获得行,我们首先必须获得矩阵的转置。可以使用t(matrix_name)函数。

句法:



例子:

电阻

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  

输出:

[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

方法 2:使用 split() 和 rep()

同样在这个方法中,我们也必须找到矩阵的转置,其余的方法与上面相同。

语法

例子:

电阻

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)

输出:

[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