如何将矩阵转换为 R 中的向量列表?
在本文中,我们将学习如何在 R 编程语言中将矩阵转换为向量列表。
按列将矩阵转换为向量列表
方法一:使用as.list()函数
转换列 的 将矩阵转换为向量列表,我们首先需要将矩阵转换为数据帧对象,这可以通过使用as.data.frame(matrix_name)来完成,它将我们的矩阵作为参数并返回一个数据帧。一旦我们的矩阵转换为数据帧,我们就可以将我们新创建的(通过转换)数据帧作为参数传递给as.list(dataframe_name)函数,该函数将我们的数据帧转换为向量列表。
语法:
as.list(as.data.frame(matrix_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()函数用于将数据向量划分为由提供的因子定义的组。
Syntax: split(x, f)
Parameters:
- x: represents data vector or data frame
- f: represents factor to divide the data
rep()用于在 R 编程中复制向量的元素。
Syntax: rep(x, times)
Parameter:
- x: represents data vector or data frame
- times: frequency of appearance
Return: Returns the replicated vectors.
例子:
电阻
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)函数。
句法:
as.list(as.data.frame(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()
同样在这个方法中,我们也必须找到矩阵的转置,其余的方法与上面相同。
语法:
split(mat, rep(1:ncol(mat), each = nrow(mat)))
例子:
电阻
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