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


为了在 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

更新时间: 2021年11月5日

485 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告