如何在 R 中找到矩阵值的组合?

r programmingserver side programmingprogramming更新于 2025/4/9 9:07:17

要在 R 中找到矩阵值的组合,我们可以使用 expand.grid 函数和 split 函数。

例如,如果我们有一个名为 M 的矩阵,那么要创建矩阵值的组合,我们可以使用下面提到的代码 −

do.call(expand.grid,split(M,rep(1:nrow(M),ncol(M))))

查看下面给出的示例以了解其工作原理。

示例 1

以下代码片段创建一个矩阵 −

M1<-matrix(rpois(10,2),ncol=5)
M1

输出

创建以下矩阵 −

    [,1] [,2] [,3] [,4] [,5]
[1,]  1   1    3    3    3
[2,]  1   3    2    1    1

为了在 R 中找到矩阵值的组合,请将以下代码添加到上面的代码片段中−

M1<-matrix(rpois(10,2),ncol=5)
do.call(expand.grid,split(M1,rep(1:nrow(M1),ncol(M1))))

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

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

示例 2

以下代码片段创建一个矩阵 −

M2<-matrix(rpois(9,2),ncol=3)
M2

输出

以下矩阵被创建 −

    [,1][,2] [,3]
[1,] 3   1    3
[2,] 0   2    1
[3,] 5   1    0

为了在 R 中找到矩阵值的组合,请将以下代码添加到上述代码片段中−

M2<-matrix(rpois(9,2),ncol=3)
do.call(expand.grid,split(M2,rep(1:nrow(M2),ncol(M2))))

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

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

相关文章