[R] apply to row and column of matrix

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Mon Sep 26 16:56:14 CEST 2022


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 <jszhao using 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 using 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.



More information about the R-help mailing list