Hi:

One way:

x[sample(nrow(x)), ]

HTH,
Dennis

On Wed, Feb 9, 2011 at 10:45 PM, Diogo Almeida <dalazal@gmail.com> wrote:

> Hi,
>
> I need to permute the rows of a matrix, where each row is independently
> rearranged. A simple solution is this:
>
> shuffled <- datamatrix <- matrix(1:24, ncol = 4)
> for (i in 1:nrow(datamatrix)) { shuffled[i, ] <- sample(datamatrix[i, ]) }
>
> > datamatrix
>     [,1] [,2] [,3] [,4]
> [1,]    1    7   13   19
> [2,]    2    8   14   20
> [3,]    3    9   15   21
> [4,]    4   10   16   22
> [5,]    5   11   17   23
> [6,]    6   12   18   24
> > shuffled
>     [,1] [,2] [,3] [,4]
> [1,]    7   19   13    1
> [2,]    2    8   14   20
> [3,]   15    3    9   21
> [4,]   22   10   16    4
> [5,]    5   11   17   23
> [6,]   24    6   12   18
>
> However, I need to perform quite a lot of these permutations, and I was
> wondering whether anyone knows of a faster way of doing this. Something that
> might not involve a "for" loop, for instance?
> -Diogo
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]

