Re: [R] curious about dimension of 'apply' output when MARGIN=1

From: Patrick Burns <pburns_at_pburns.seanet.com>
Date: Wed 17 Jan 2007 - 10:45:14 GMT

A logical reason for the phenomenon is that matrices are stored down their columns. For example:

 > matrix(1:15,5)

     [,1] [,2] [,3]

[1,]    1    6   11
[2,]    2    7   12
[3,]    3    8   13
[4,]    4    9   14
[5,]    5   10   15

When an 'apply' across rows is done, it will be the values corresponding to each of the rows that are together.

For matrices, merely transposing the result fixes the "problem", but it is considerably more complex in higher dimensional arrays.

There could be a spectrum of opinion from:

the original programmer was lazy and didn't adequately serve users

to:

the simpler the program the fewer bugs there will be.

Patrick Burns
patrick@burns-stat.com
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")

Gabor Grothendieck wrote:

>The reshape package has an idempotent apply, iapply:
>
>
>
>>library(reshape)
>>iapply(M,1,function(row) row+c(1,2))
>>
>>
> [,1] [,2]
>[1,] 2 6
>[2,] 3 7
>[3,] 4 8
>
>On 1/16/07, Benjamin Tyner <btyner@stat.purdue.edu> wrote:
>
>
>>Reading the documentation for 'apply', I understand the following is
>>working exactly as documented:
>>
>> > M<-matrix(1:6,ncol=2)
>> > M
>> [,1] [,2]
>>[1,] 1 4
>>[2,] 2 5
>>[3,] 3 6
>> > apply(M,2,function(column) column+c(1,2,3))
>> [,1] [,2]
>>[1,] 2 5
>>[2,] 4 7
>>[3,] 6 9
>> > apply(M,1,function(row) row+c(1,2))
>> [,1] [,2] [,3]
>>[1,] 2 3 4
>>[2,] 6 7 8
>>
>>I'm not proposing any changes or extra arguments to 'apply'. Rather, I'm
>>wondering what is the benefit for (or rationale behind) this somewhat
>>unintuitive behavior in the case that MARGIN=1.
>>
>>Thanks,
>>Ben
>>
>>______________________________________________
>>R-help@stat.math.ethz.ch 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.
>>
>>
>>
>
>______________________________________________
>R-help@stat.math.ethz.ch 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.
>
>
>
>



R-help@stat.math.ethz.ch 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. Received on Wed Jan 17 21:49:34 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 18 Jan 2007 - 09:30:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.