显示矩阵的各种行/列方式排列

时间:2015-01-14 21:06:08

标签: r combinations permutation

我有一个由5行和5列组成的数据矩阵,我正在寻找一种方法来显示表格中的值可以重新排列的可能组合。有没有可以做到这一点的功能?我尝试使用combn(),但只返回了一个包含30个值的列,这些值与矩阵的顺序相同。

 Data <- matrix(c(1:25),nrow=5,ncol=5)
 Data
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    6   11   16   21
[2,]    2    7   12   17   22
[3,]    3    8   13   18   23
[4,]    4    9   14   19   24
[5,]    5   10   15   20   25

1 个答案:

答案 0 :(得分:1)

这将为您提供一个可能的置换行值实例:

> apply(Data,1,sample)

     [,1] [,2] [,3] [,4] [,5]
[1,]   21   17    8   19   15
[2,]   11   12   18   14   20
[3,]    6   22   23   24   10
[4,]   16    2    3    9    5
[5,]    1    7   13    4   25

请注意,它可能是您想要的矩阵的转置,因为apply始终以列主要顺序返回其结果,因此要获得可能的预期,您可以这样做:

 t( apply(Data,1,sample) )  
 # a different row permutation since no set.seed()

> t( apply(Data,1,sample) )
     [,1] [,2] [,3] [,4] [,5]
[1,]    6    1   21   11   16
[2,]   12    7   22   17    2
[3,]   23   13    3    8   18
[4,]   14   19    9    4   24
[5,]   20   25   10   15    5

如果要随机置换列值,请将第二个apply参数更改为2,不要使用t()