How to combine list elements of different sizes in R?

R ProgrammingServer Side ProgrammingProgramming

To combine list elements of different sizes in R, we can use expand.grid function. For Example, if we have a list called LIST that contains elements of different sizes then we can combine those items by using the command given below −

expand.grid(LIST)

Example 1

To combine list elements of different sizes in R, use the following snippet −

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

The respective Outputs as per the sizes will be as follows −

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

Now, to combine elements of List1 add the following code to the above snippet −

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)

Output

If you execute all the above given snippets as a single program, it generates the following Output −

 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

Example 2

To combine list elements of different sizes in R, use the following snippet −

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

The respective

Output

s as per the sizes will be as follows −

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

To combine elements of List2 add the following code to the above snippet −

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

Output

If you execute all the above given snippets as a single program, it generates the following Output −

  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
raja
Published on 05-Nov-2021 08:31:10
Advertisements