显示矩阵的各种 row-/column-wise 排列
Displaying various row-/column-wise permutations of matrix
我有一个包含 5 行和 5 列的数据矩阵,我正在寻找一种方法来显示可以重新排列 table 中的值的可能组合。有没有可以做到这一点的功能?我尝试使用 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
这将为您提供一个可能的排列行值实例:
> 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
总是 returns 它的结果按列优先顺序排列,因此要获得可能预期的结果,您可以这样做:
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
如果您想随机排列列值,请将第二个应用参数更改为 2 并且不要使用 t()
。
我有一个包含 5 行和 5 列的数据矩阵,我正在寻找一种方法来显示可以重新排列 table 中的值的可能组合。有没有可以做到这一点的功能?我尝试使用 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
这将为您提供一个可能的排列行值实例:
> 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
总是 returns 它的结果按列优先顺序排列,因此要获得可能预期的结果,您可以这样做:
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
如果您想随机排列列值,请将第二个应用参数更改为 2 并且不要使用 t()
。