行列でランダムシャッフル

applyの引数2つ目が「1」か「2」かで行(=1)か列(=2)かが決まる.

> tmp <- matrix(1:10,ncol=2,nrow=5)
> tmp
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10
> apply(tmp,1,sample) #行方向のシャッフル
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    8    9    5
[2,]    6    7    3    4   10
> apply(tmp,2,sample) #列方向のシャッフル
     [,1] [,2]
[1,]    5    9
[2,]    3   10
[3,]    4    8
[4,]    2    6
[5,]    1    7

参考