[R] apply on rows and columns?
Justin Haynes
jtor14 at gmail.com
Wed Nov 16 21:25:12 CET 2011
To expand on what Sarah and Michael said:
if you have a 3d array:
> x<-array(1:4,c(2,2,4))
> x
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 3
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 4
[,1] [,2]
[1,] 1 3
[2,] 2 4
> apply(x,c(1,2),sum)
[,1] [,2]
[1,] 4 12
[2,] 8 16
a margin of c(1,2) makes more sense. Hope that clarifies things.
Justin
On Wed, Nov 16, 2011 at 12:18 PM, Sarah Goslee <sarah.goslee at gmail.com> wrote:
> Hi,
>
> On Wed, Nov 16, 2011 at 3:13 PM, <rkevinburton at charter.net> wrote:
>>
>> I have the following scenario:
>>
>>> m <- matrix(1:4, ncol=2)
>>> m
>> [,1] [,2]
>> [1,] 1 3
>> [2,] 2 4
>>> apply(m, 2, sum)
>> [1] 3 7
>>> apply(m, 1, sum)
>> [1] 4 6
>>
>> So I can apply to rows *or* columns. According to the documentation
>> (?apply)
>>
>> MARGIN a vector giving the subscripts which the function will be applied
>> over. E.g., for a matrix 1 indicates rows, 2 indicates columns, c(1, 2)
>> indicates rows and columns. Where X has named dimnames, it can be a
>> character vector selecting dimension names.
>>
>>
>> But I get the following results:
>>
>>> apply(m, c(1,2), sum)
>> [,1] [,2]
>> [1,] 1 3
>> [2,] 2 4
>>
>> How am I to interpret this result?
>
> I'm pretty sure R is taking the sum of m[1,1] and putting it [1,1],
> and the sum of m[1,2] and putting it in [1,2] and so on. You
> instructed apply() to work on rows and columns *simultaneously*,
> rather than sequentially.
>
> apply() on c(1,2) is useful if you have a matrix that's three-dimensional,
> but not so much if it's two dimensional.
>
> What are you trying to accomplish?
>
> Sarah
>
>
>
>
> --
> Sarah Goslee
> http://www.functionaldiversity.org
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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