如何在 R 中将矩阵行转换为列表?


根据我们的目标,可能需要将矩阵行转换为列表,这意味着每一行都将成为列表的元素。这可以使用 as.list 函数来完成,但首先我们需要先转置矩阵,然后将其转换为数据帧。例如,如果我们有一个名为 M 的矩阵,那么可以使用下面编写的命令将其行转换为列表 -

as.list(data.frame(t(M)))

示例 1

 在线演示

M1<−matrix(1:25,nrow=5)
M1

输出

   [,1] [,2] [,3] [,4] [,5]
[1,] 1    6   11   16   21
[2,] 2    7   12   17   22
[3,] 3    8   13   18   23
[4,] 4    9   14   19   24
[5,] 5   10   15   20   25

示例

as.list(data.frame(t(M1)))

输出

$X1
[1] 1 6 11 16 21
$X2
[1] 2 7 12 17 22
$X3
[1] 3 8 13 18 23
$X4
[1] 4 9 14 19 24
$X5
[1] 5 10 15 20 25

示例 2

 在线演示

M2<−matrix(rnorm(36),nrow=6)
M2

输出

       [,1]       [,2]      [,3]        [,4]        [,5]         [,6]
[1,] 1.320181 0.17152409 −1.76634091 −0.48085533   −1.6186915   −1.4374249
[2,] −0.220481 −0.31776877 −2.16503900 −1.04481201 −1.2440593   −0.5943860
[3,] −0.138843 1.24491033 −0.23453374 0.09363227   0.1624981    −2.2085699
[4,] −0.535679 1.05556228 1.27692225 −1.00761472   −0.6388036    0.2438138
[5,] 1.563999 −0.08637959 −0.10161734 −3.03514376  −0.2729878 −0.4657192
[6,] 1.252191 2.09451091 −0.04484482 −0.96138526   1.2211188    −0.5685082

示例

as.list(data.frame(t(M2)))

输出

$X1
[1] 1.3201811 0.1715241 −1.7663409 −0.4808553 −1.6186915 −1.4374249
$X2
[1] −0.2204810 −0.3177688 −2.1650390 −1.0448120 −1.2440593 −0.5943860
$X3
[1] −0.13884303 1.24491033 −0.23453374 0.09363227 0.16249808 −2.20856995
$X4
[1] −0.5356790 1.0555623 1.2769222 −1.0076147 −0.6388036 0.2438138
$X5
[1] 1.56399912 −0.08637959 −0.10161734 −3.03514376 −0.27298782 −0.46571917
$X6
[1] 1.25219067 2.09451091 −0.04484482 −0.96138526 1.22111884 −0.56850819

示例 3

 在线演示

M3<−matrix(rpois(16,2),ncol=4)
M3

输出

   [,1] [,2] [,3] [,4]
[1,] 1    2    2    2
[2,] 0    5    1    3
[3,] 1    4    3    1   
[4,] 0    1    4    2

示例

as.list(data.frame(t(M3)))

输出

$X1
[1] 1 2 2 2
$X2
[1] 0 5 1 3
$X3
[1] 1 4 3 1
$X4
[1] 0 1 4 2

示例 4

 在线演示

M4<−matrix(runif(25,2,10),nrow=5)
M4

输出

        [,1]     [,2]     [,3]     [,4]    [,5]
[1,] 9.470178 3.844069 3.126983 7.666309 8.801446
[2,] 4.517685 6.602599 6.353498 9.570915 2.854464
[3,] 5.104221 5.793673 4.875067 6.810684 2.926270
[4,] 2.694206 4.677686 8.749031 6.201677 4.149385
[5,] 2.085755 9.849269 9.084727 3.010815 7.153298

示例

as.list(data.frame(t(M4)))

输出

$X1
[1] 9.470178 3.844069 3.126983 7.666309 8.801446
$X2
[1] 4.517685 6.602599 6.353498 9.570915 2.854464
$X3
[1] 5.104221 5.793673 4.875067 6.810684 2.926270
$X4
[1] 2.694206 4.677686 8.749031 6.201677 4.149385
$X5
[1] 2.085755 9.849269 9.084727 3.010815 7.153298

示例 5

 在线演示

M5<−matrix(rexp(16),nrow=4)
M5

输出

       [,1]      [,2]       [,3]    [,4]
[1,] 1.4500225 1.2780952 3.8074267 0.5150933
[2,] 0.6914497 3.0919047 4.9547217 1.5925355
[3,] 0.6407890 0.1222374 1.3573294 1.1416469
[4,] 1.0918338 1.1835358 0.8053099 0.2225276

示例

as.list(data.frame(t(M5)))

输出

$X1
[1] 1.4500225 1.2780952 3.8074267 0.5150933
$X2
[1] 0.6914497 3.0919047 4.9547217 1.5925355
$X3
[1] 0.6407890 0.1222374 1.3573294 1.1416469
$X4
[1] 1.0918338 1.1835358 0.8053099 0.2225276

更新于: 2021 年 2 月 5 日

1 千次浏览

开启你的 职业生涯

完成课程以获得认证

立即开始
广告