如何将较大向量的每个元素与 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

以上是 如何将较大向量的每个元素与 R 中的较小向量相乘? 的全部内容, 来源链接: utcz.com/z/338657.html

回到顶部