Avi, I was not trying to provide the most economical solution. I was trying to anticipate that people (either the OP or others searching for how to stack columns of a matrix) might be motivated by calculations in multilinear algebra, in which case they might be interested in the rTensor package.
On Sun, Aug 6, 2023 at 6:16 PM <avi.e.gr...@gmail.com> wrote: > > Eric, > > I am not sure your solution is particularly economical albeit it works for > arbitrary arrays of any dimension, presumably. But it seems to involve > converting a matrix to a tensor just to undo it back to a vector. Other > solutions offered here, simply manipulate the dim attribute of the data > structure. > > Of course, the OP may have uses in mind which the package might make easier. > We often get fairly specific questions here without the additional context > that may help guide a better answer. > > -----Original Message----- > From: R-help <r-help-boun...@r-project.org> On Behalf Of Eric Berger > Sent: Sunday, August 6, 2023 3:34 AM > To: Bert Gunter <bgunter.4...@gmail.com> > Cc: R-help Mailing List <r-help@r-project.org>; Steven Yen <st...@ntu.edu.tw> > Subject: Re: [R] Stacking matrix columns > > Stacking columns of a matrix is a standard operation in multilinear > algebra, usually written as the operator vec(). > I checked to see if there is an R package that deals with multilinear > algebra. I found rTensor, which has a function vec(). > So, yet another way to accomplish what you want would be: > > > library(rTensor) > > vec(as.tensor(x)) > > Eric > > > On Sun, Aug 6, 2023 at 5:05 AM Bert Gunter <bgunter.4...@gmail.com> wrote: > > > > Or just dim(x) <- NULL. > > (as matrices in base R are just vectors with a dim attribute stored in > > column major order) > > > > ergo: > > > > > x > > [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > > > x<- 1:20 ## a vector > > > is.matrix(x) > > [1] FALSE > > > dim(x) <- c(5,4) > > > is.matrix(x) > > [1] TRUE > > > attributes(x) > > $dim > > [1] 5 4 > > > > > ## in painful and unnecessary detail as dim() should be used instead > > > attr(x, "dim") <- NULL > > > is.matrix(x) > > [1] FALSE > > > x > > [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > > > > ## well, you get it... > > > > -- Bert > > > > On Sat, Aug 5, 2023 at 5:21 PM Iris Simmons <ikwsi...@gmail.com> wrote: > > > > > > You could also do > > > > > > dim(x) <- c(length(x), 1) > > > > > > On Sat, Aug 5, 2023, 20:12 Steven Yen <st...@ntu.edu.tw> wrote: > > > > > > > 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@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > > PLEASE do read the posting guide > > > > http://www.R-project.org/posting-guide.html > > > > and provide commented, minimal, self-contained, reproducible code. > > > > > > > > > > [[alternative HTML version deleted]] > > > > > > ______________________________________________ > > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide > > > http://www.R-project.org/posting-guide.html > > > and provide commented, minimal, self-contained, reproducible code. > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.