How to convert matrix rows into a list in R?


Depending on our objective, a matrix rows might be needed to converted into a list that means each row will be an element of the list. This can be done by using the function as.list but firstly we need to convert the matrix into data frame after transposing. For example, if we have a matrix called M then it’s rows will be converted to a list using the command writtem below −

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

Example1

 Live Demo

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

Output

   [,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

Example

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

Output

$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

Example2

 Live Demo

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

Output

       [,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

Example

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

Output

$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

Example3

 Live Demo

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

Output

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

Example

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

Output

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

Example4

 Live Demo

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

Output

        [,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

Example

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

Output

$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

Example5

 Live Demo

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

Output

       [,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

Example

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

Output

$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

Updated on: 05-Feb-2021

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements