Dear experts,

I wanted to signal a peculiar, unexpected behaviour of 'apply'. It is not a
bug, it is per spec, but it is so counterintuitive that I thought it could
be interesting.

I have an array, let's say "test", dim=c(7,5).

> test <- array(1:35, dim=c(7, 5))
> test

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    8   15   22   29
[2,]    2    9   16   23   30
[3,]    3   10   17   24   31
[4,]    4   11   18   25   32
[5,]    5   12   19   26   33
[6,]    6   13   20   27   34
[7,]    7   14   21   28   35

I want a new array where the content of the rows (columns) are permuted,
differently per row (per column)

Let's start with the columns, i.e. the second MARGIN of the array:
> test.m2 <- apply(test, 2, sample)
> test.m2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1   10   18   23   32
[2,]    7    9   16   25   30
[3,]    6   14   17   22   33
[4,]    4   11   15   24   34
[5,]    2   12   21   28   31
[6,]    5    8   20   26   29
[7,]    3   13   19   27   35

perfect. That was exactly what I wanted: the content of each column is
shuffled, and differently for each column.
However, if I use the same with the rows (MARGIIN = 1), the output is
transposed!

> test.m1 <- apply(test, 1, sample)
> test.m1

     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    2    3    4    5   13   21
[2,]   22   30   17   18   19   20   35
[3,]   15   23   24   32   26   27   14
[4,]   29   16   31   25   33   34   28
[5,]    8    9   10   11   12    6    7

In other words, I wanted to permute the content of the rows of "test", and
I expected to see in the output, well, the shuffled rows as rows, not as
column!

I would respectfully suggest to make this behavior more explicit in the
documentation.

Kind regards,
Luca Nanetti
-- 
______________

Luca Nanetti, MSc, MRI
University Medical Center Groningen
Neuroimaging Center Groningen
Groningen, The Netherlands
Tel: +31 50 363 4733

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to