如何在 R 矩阵中查找每行的乘积?


要查找 R 矩阵中每行的乘积,我们可以使用 matrixStats 包的 rowProds 函数。

例如,如果我们有一个名为 MATRIX 的矩阵,那么我们可以使用以下命令查找 MATRIX 中每行的乘积:

rowProds(MATRIX)

示例 1

以下代码片段创建了一个示例矩阵:

Open Compiler
M1<-matrix(rpois(80,10),ncol=4) M1

创建了以下矩阵:

     [,1] [,2] [,3] [,4]
[1,]  10   16   12   20
[2,]  16   17    7    9
[3,]   3    9   10    5
[4,]  12    3   13   18
[5,]  16    6    8   10
[6,]  11   10   15   10
[7,]  12   11   13   12
[8,]   5   10   11   11
[9,]   5   12   11    5
[10,] 10   13    7   11
[11,] 10   18   11    4
[12,] 10   11   16   17
[13,]  8    7    9   10
[14,] 10    5    8    7
[15,] 12   11    8    8
[16,] 13   14    7   10
[17,]  9    7    8   11
[18,]  8    6    9    4
[19,]  6    7   14    6
[20,] 10    8    8   15

要加载 matrixStats 包并在上面创建的矩阵 M1 上查找每行的乘积,请将以下代码添加到上述代码片段中:

M1<-matrix(rpois(80,10),ncol=4) library(matrixStats) rowProds(M1)

输出

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

 [1] 38400 17136 1350 8424  7680 16500 20592 6050 3300 10010 7920 29920
[13] 5040  2800  8448 12740 5544 1728  3528  9600

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例 2

以下代码片段创建了一个示例矩阵:

Open Compiler
M2<-matrix(round(rnorm(60),2),ncol=3) M2

创建了以下矩阵:

       [,1] [,2]  [,3]
 [1,] -0.15  0.54 -0.63
 [2,]  0.37 -0.56  0.04
 [3,]  0.97 -0.98  0.08
 [4,] -1.84  0.91  1.51
 [5,] -0.35 -0.75  1.20
 [6,] -0.09 -1.09  0.76
 [7,]  0.23  1.65  0.08
 [8,] -0.25  0.83  0.03
 [9,] -1.05 -1.19 -1.34
[10,] -0.87  1.21 -0.18
[11,] -0.64 -0.83  1.11
[12,] -0.13  1.98  0.33
[13,]  1.13 -0.02 -0.23
[14,]  0.00  0.98 -1.16
[15,]  1.57 -0.73  0.45
[16,]  0.13  1.38 -0.96
[17,] -0.35 -0.22  0.04
[18,]  0.03 -0.67 -0.75
[19,]  0.77  0.07  0.24
[20,]  0.64 -0.27 -0.28

要查找上面创建的数据框 M2 中每行的乘积,请将以下代码添加到上述代码片段中:

M2<-matrix(round(rnorm(60),2),ncol=3) rowProds(M2)

输出

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

[1]   0.051030 -0.008288 -0.076048 -2.528344  0.315000 0.074556 0.030360
[8]  -0.006225 -1.674330  0.189486  0.589632 -0.084942 0.005198 0.000000
[15] -0.515745 -0.172224  0.003080  0.015075  0.012936 0.048384

示例 3

以下代码片段创建了一个示例矩阵:

Open Compiler
M3<-matrix(round(runif(40,1,5),4),ncol=2) M3

创建了以下矩阵:

         [,1] [,2]
 [1,] 3.8294 3.5931
 [2,] 3.2474 2.3081
 [3,] 3.0098 1.2742
 [4,] 4.8341 3.1084
 [5,] 3.8252 4.3888
 [6,] 1.3127 3.7109
 [7,] 2.2684 3.6221
 [8,] 4.3451 3.1057
 [9,] 1.5380 1.5950
[10,] 2.3099 1.4975
[11,] 1.5884 4.5375
[12,] 3.6575 1.3086
[13,] 4.5151 2.0521
[14,] 3.6870 1.1381
[15,] 4.8643 1.5867
[16,] 1.9543 3.4390
[17,] 1.9633 3.9299
[18,] 1.0350 1.8435
[19,] 3.6102 4.6444
[20,] 1.6571 2.5614

要查找上面创建的数据框 M3 中每行的乘积,请将以下代码添加到上述代码片段中:

M3<-matrix(round(runif(40,1,5),4),ncol=2) rowProds(M3)

输出

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

 [1] 13.759417 7.495324 3.835087 15.026316 16.788038 4.871298 8.216372
 [8] 13.494577 2.453110 3.459075 7.207365  4.786205  9.265437 4.196175
[15] 7.718185  6.720838 7.715573 1.908022  16.767213 4.244496

更新于: 2021年11月10日

118 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告