Bert provided an excellent answer to your question. FYI here is a different approach to do the calculation. It uses data.frame rather than matrix. A data frame is a list of its columns. Here the function supplied to sapply operates on each column of the data.frame.
> m <- as.data.frame(t(matrix(1:10,ncol=2))) > m V1 V2 V3 V4 V5 1 1 2 3 4 5 2 6 7 8 9 10 > sapply(m, cumsum) V1 V2 V3 V4 V5 [1,] 1 2 3 4 5 [2,] 7 9 11 13 15 On Mon, Sep 26, 2022 at 5:57 PM Bert Gunter <bgunter.4...@gmail.com> wrote: > > from ?apply: > "If each call to FUN returns a vector of length n, and simplify is > TRUE, then apply returns an array of dimension c(n, dim(X)[MARGIN]) ." > > For margin = 1 (cumsum over rows), each call to cumsum return a vector > of length 2. Hence the array returned will be of dimension c(2, > c(5,2)[1]) = c(2,5). > > Cheers, > Bert > > > On Mon, Sep 26, 2022 at 7:43 AM Jinsong Zhao <jsz...@yeah.net> wrote: > > > > Hi there, > > > > I try to calculate the cumsum of row and column of a matrix as follows. > > > > > m <- matrix(1:10, ncol = 2) > > > m > > [,1] [,2] > > [1,] 1 6 > > [2,] 2 7 > > [3,] 3 8 > > [4,] 4 9 > > [5,] 5 10 > > > apply(m, 1, cumsum) > > [,1] [,2] [,3] [,4] [,5] > > [1,] 1 2 3 4 5 > > [2,] 7 9 11 13 15 > > > apply(m, 2, cumsum) > > [,1] [,2] > > [1,] 1 6 > > [2,] 3 13 > > [3,] 6 21 > > [4,] 10 30 > > [5,] 15 40 > > > > My question is why the dim of the return value of apply(m, 1, cumsum) is > > not 5x2, but 2x5. > > > > Best, > > > > Jinsong > > > > ______________________________________________ > > 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.