如何将较大向量的每个元素与 R 中的较小向量相乘?

要将较大向量的每个元素与较小向量相乘,我们可以借助 %o% 运算符执行外积计算。

例如,如果我们有两个向量,比如 x 和 y,其中 x 的长度比 y 短,那么我们可以使用下面给出的命令将 y 的每个元素与 x 的每个元素相乘 -

x%o%y

查看以下示例以了解其工作原理。

示例 1

要将较大向量的每个元素与较小向量相乘,请使用下面给出的代码 -

x1<-rpois(10,2)
x1

如果您执行上面给定的代码,它会生成以下输出 -

[1] 0 5 1 2 3 1 1 2 4 1

要将较大向量的每个元素与较小向量相乘,请将以下代码添加到上面 -

y1<-rpois(12,2)
y1

如果您将上述所有代码作为单个程序执行,它会生成以下输出 -

[1] 1 0 1 1 1 2 2 2 2 4 3 1

要将较大向量的每个元素与较小向量相乘,请将以下代码添加到上面 -

x1%o%y1
输出结果

如果您将上述所有代码作为单个程序执行,它会生成以下输出 -

    [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10][,11][,12]
[1,]  0  0   0   0   0   0   0   0   0   0    0    0
[2,]  5  0   5   5   5  10  10  10  10  20   15    5
[3,]  1  0   1   1   1   2   2   2   2   4    3    1
[4,]  2  0   2   2   2   4   4   4   4   8    6    2
[5,]  3  0   3   3   3   6   6   6   6  12    9    3
[6,]  1  0   1   1   1   2   2   2   2   4    3    1
[7,]  1  0   1   1   1   2   2   2   2   4    3    1
[8,]  2  0   2   2   2   4   4   4   4   8    6    2
[9,]  4  0   4   4   4   8   8   8   8  16   12    4
[10,] 1  0   1   1   1   2   2   2   2   4    3    1

示例 2

要将较大向量的每个元素与较小向量相乘,请使用下面给出的代码 -

x2<-rpois(8,5)
y2<-rpois(10,2)
x2%o%y2
输出结果

如果您将上述所有代码作为单个程序执行,它会生成以下输出 -

     [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,]  2   4   6   0   8   2   12  4   0   2
[2,]  4   8  12   0  16   4   24  8   0   4
[3,]  7  14  21   0  28   7   42 14   0   7
[4,]  2   4   6   0   8   2   12  4   0   2
[5,]  6  12  18   0  24   6   36 12   0   6
[6,]  8  16  24   0  32   8   48 16   0   8
[7,]  5  10  15   0  20   5   30 10   0   5
[8,]  6  12  18   0  24   6   36 12   0   6

示例 3

要将较大向量的每个元素与较小向量相乘,请使用下面给出的代码 -

x3<-rpois(10,5)
y3<-rpois(11,2)
x3%o%y3
输出结果

如果您将上述所有代码作为单个程序执行,它会生成以下输出 -

     [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10][,11]
[1,]   6   9   6   6  3   9   6   15   6   6   21
[2,]  10  15  10  10  5  15  10   25  10  10   35
[3,]  10  15  10  10  5  15  10   25  10  10   35
[4,]  16  24  16  16  8  24  16   40  16  16   56
[5,]   6   9   6   6  3   9   6   15   6   6   21
[6,]  14  21  14  14  7  21  14   35  14  14   49
[7,]  16  24  16  16  8  24  16   40  16  16   56
[8,]  12  18  12  12  6  18  12   30  12  12   42
[9,]   4   6   4   4  2   6   4   10   4   4   14
[10,] 18  27  18  18  9  27  18   45  18  18   63

示例 4

要将较大向量的每个元素与较小向量相乘,请使用下面给出的代码 -

x4<-rpois(8,1)
y4<-rpois(10,2)
x4%o%y4
输出结果

如果您将上述所有代码作为单个程序执行,它会生成以下输出 -

   [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,] 0  0   0   0   0   0   0   0   0   0
[2,] 0  0   0   0   0   0   0   0   0   0
[3,] 8  4   2   4   6   0   2   2   2   4
[4,] 0  0   0   0   0   0   0   0   0   0 
[5,] 8  4   2   4   6   0   2   2   2   4
[6,] 8  4   2   4   6   0   2   2   2   4
[7,] 0  0   0   0   0   0   0   0   0   0
[8,] 4  2   1   2   3   0   1   1   1   2

例 5

要将较大向量的每个元素与较小向量相乘,请使用下面给出的代码 -

x5<-rpois(10,5)
y5<-rpois(12,10)
x5%o%y5
输出结果

如果您将上述所有代码作为单个程序执行,它会生成以下输出 -

    [,1] [,2][,3][,4][,5][,6][,7][,8][,9][,10][,11][,12]
[1,]  24  48  52  56  32  80  48  36  36  32  40   44
[2,]  18  36  39  42  24  60  36  27  27  24  30   33
[3,]  12  24  26  28  16  40  24  18  18  16  20   22
[4,]   6  12  13  14   8  20  12   9   9   8  10   11
[5,]  18  36  39  42  24  60  36  27  27  24  30   33
[6,]  18  36  39  42  24  60  36  27  27  24  30   33
[7,]  60 120 130 140  80 200 120  90  90  80 100  110
[8,]  18  36  39  42  24  60  36  27  27  24  30   33
[9,]  30  60  65  70  40 100  60  45  45  40  50   55
[10,] 36  72  78  84  48 120  72  54  54  48  60   66

猜你喜欢