【发布时间】:2022-10-24 11:42:42
【问题描述】:
我尝试通过 R 的矩阵列进行所有组合,如下所示 首先,我有一个 4*3 矩阵,如下所示
> a
[,1] [,2] [,3] [,4]
[1,] 1 0 1 1
[2,] 1 0 0 0
[3,] 1 1 1 1
然后我们要列出总共 3 个12*2 = 12 组合,如下例 一个例子是
[,1] [,2] [,3] [,4]
[1,] 1 0 1 1
[2,] 0 0 0 0
[3,] 0 1 0 0
第二个例子是
[,1] [,2] [,3] [,4]
[1,] 1 0 1 0
[2,] 0 0 0 0
[3,] 0 1 0 1
一列只有一个数字。 目前,我已经列出了每种列类型,例如
> whole.combination
[[1]]
b b b
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
[[2]]
b
[1,] 0
[2,] 0
[3,] 1
[[3]]
b b
[1,] 1 0
[2,] 0 0
[3,] 0 1
[[4]]
b b
[1,] 1 0
[2,] 0 0
[3,] 0 1
但是,虽然我可以手动使用 cbind 生成一个
> cbind(a[[1]][,1],a[[2]][,1],a[[3]][,1],a[[4]][,1])
[,1] [,2] [,3] [,4]
[1,] 1 0 1 1
[2,] 0 0 0 0
[3,] 0 1 0 0
如何将每个矩阵的每一列组合起来生成一个 4*3 矩阵?但是,它是否有任何有效的方法可以一次列出所有组合? 因此,如果我用 n*m 矩阵扩展这个问题,我需要一种算法来生成这些矩阵组合。 谢谢
【问题讨论】:
-
输入修改 - 我们要列出总数312*2 = 12我们要列出总计的组合3*1*2*2 = 12组合
-
问题不清楚。假设输入是矩阵
a,那么其他矩阵的第 1 列在哪里?以及如何获得产品3*1*2*2?我可以理解4+3*2*1,第一列有4个选择,第二列有3个,第三列有2个,最后一列只剩下一个选择。
标签: r