# [R] Stacking matrix columns

@vi@e@gross m@iii@g oii gm@ii@com @vi@e@gross m@iii@g oii gm@ii@com
Sun Aug 6 19:36:01 CEST 2023

```Based on a private communication, it sounds like Steven is asking the question again because he wants a different solution that may be the way this might be done in another language. I think he wants to use loops explicitly and I suspect this may be along the lines of a homework problem for him.

R has loops and if you loop over some variable moving "col" from 1 to the number of columns, then if your matrix is called "mat" you can use mat[,col] to grab a whole column at a time and concatenate the results gradually into one longer vector.

If you want a more loopy solution, simply reserve a vector big enough to hold an M by N matric (size is M*N) and loop over both "row" and "col" and keep adding mat[row,col] to your growing vector.

As stated, this is not the way many people think in R, especially those of us who know a matrix is just a vector with a bonus.

-----Original Message-----
From: R-help <r-help-bounces using r-project.org> On Behalf Of Steven Yen
Sent: Saturday, August 5, 2023 8:08 PM
To: R-help Mailing List <r-help using r-project.org>
Subject: [R] Stacking matrix columns

I wish to stack columns of a matrix into one column. The following
matrix command does it. Any other ways? Thanks.

> x<-matrix(1:20,5,4)
> x
[,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

> matrix(x,ncol=1)
[,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
[5,]    5
[6,]    6
[7,]    7
[8,]    8
[9,]    9
[10,]   10
[11,]   11
[12,]   12
[13,]   13
[14,]   14
[15,]   15
[16,]   16
[17,]   17
[18,]   18
[19,]   19
[20,]   20
>

______________________________________________
R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help