如何在 R 中合并不同大小的列表元素?

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

要在 R 中合并不同大小的列表元素,我们可以使用 expand.grid 函数。例如,如果我们有一个名为 LIST 的列表,其中包含不同大小的元素,那么我们可以使用下面给出的命令 − 组合这些项目。

expand.grid(LIST)

示例 1

要在 R 中组合不同大小的列表元素,请使用以下代码片段 −

List1<-list(x1=rpois(2,2),x2=rpois(2,10),x3=rpois(1,2),x4=rpois(3,5),x5=rpois(2,5))
List1

根据大小,相应的输出如下 −

$x1
[1] 2 3
$x2
[1] 6 7
$x3
[1] 2
$x4
[1] 2 4 4
$x5
[1] 3 5

现在,要合并 List1 的元素,请将以下代码添加到上述代码片段中 −

List1<-list(x1=rpois(2,2),x2=rpois(2,10),x3=rpois(1,2),x4=rpois(3,5),x5=rpois(2,5))
expand.grid(List1)

输出

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

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

示例 2

要在 R 中合并不同大小的列表元素,请使用以下代码片段 −

List2<-list(y1=0:2,y2=c(1,2),y3=c(2,3,4,5))
List2

相应的

输出

按大小输出如下 −

$y1
[1] 0 1 2
$y2
[1] 1 2
$y3
[1] 2 3 4 5

要合并 List2 的元素,请将以下代码添加到上述代码片段中 −

List2<-list(y1=0:2,y2=c(1,2),y3=c(2,3,4,5))
expand.grid(List2)

输出

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

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

相关文章