如何找到R数据框中每一行的行产品?

要查找 R 数据帧中每一行的行积,我们可以使用 matrixStats 包的 rowProds 函数,但我们需要将数据帧作为矩阵读取。

例如,如果我们有一个名为 df 的数据框,那么我们可以使用下面给出的命令找到 df 中每一行的行产品 -

rowProds(as.matrix(df))

示例 1

以下代码段创建了一个示例数据框 -

x1<-rpois(20,5)

x2<-rpois(20,2)

x3<-rpois(20,1)

df1<-data.frame(x1,x2,x3)

df1

创建以下数据框 -

 x1 x2 x3

 1  3  1  4

 2  7  2  0

 3  2  4  1

 4  9  2  0

 5  4  2  2

 6  7  3  1

 7  5  2  2

 8  1  2  0

 9  4  1  2

10  4  1  0

11  8  2  0

12  6  2  2

13  6  0  2

14  6  3  1

15  4  2  0

16 10  4  1

17  8  0  0

18  5  4  0

19  6  3  0

20  2  2  0

要加载 matrixStats 包并在上面创建的数据框中找到 df1 中数据的行积,请将以下代码添加到上面的代码段中 -

x1<-rpois(20,5)

x2<-rpois(20,2)

x3<-rpois(20,1)

df1<-data.frame(x1,x2,x3)

library(matrixStats)

df1$Row_Product_df1<-rowProds(as.matrix(df1))

df1

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

x1  x2  x3  Row_Product_df1

1   3  1   4               12

2   7  2   0                0

3   2  4   1                8

4   9  2   0                0

5   4  2   2               16

6   7  3   1               21

7   5  2   2               20

8   1  2   0                0

9   4  1   2                8

10  4  1   0                0

11  8  2   0                0

12  6  2   2               24

13  6  0   2                0

14  6  3   1               18

15  4  2   0                0

16 10  4   1               40

17  8  0   0                0

18  5  4   0                0

19  6  3   0                0

20  2  2   0                0

示例 2

以下代码段创建了一个示例数据框 -

y1<-round(rnorm(20),0)

y2<-round(rnorm(20),0)

y3<-round(rnorm(20),0)

y4<-round(rnorm(20),0)

df2<-data.frame(y1,y2,y3,y4)

df2

创建以下数据框 -

y1  y2  y3 y4

 1  0  -1  0  -2

 2  0  -1 -1   0

 3  1   0  1   0

 4  0   0  0   0

 5  1  -1  1   2

 6  0   0 -1  -1

 7 -1   0 -1   0

 8  1   0 -1   0

 9 -2   0 -2   1

10  0   0  0   1

11 -2   1 -2   0

12  0   1  0  -1

13  3   0  0   1

14  1  -1  1  -2

15 -1   1  1  -1

16  1   1 -1   0

17  0   0 -1   0

18  2   0  2  -1

19  3   2  0  -1

20  1   0 -1  -1

要在上面创建的数据框中找到 df2 中数据的行产品,请将以下代码添加到上面的代码段中 -

y1<-round(rnorm(20),0)

y2<-round(rnorm(20),0)

y3<-round(rnorm(20),0)

y4<-round(rnorm(20),0)

df2<-data.frame(y1,y2,y3,y4)

df2$Row_Product_df2<-rowProds(as.matrix(df2))

df2

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

y1  y2  y3  y4 Row_Product_df2

1   0  -1   0   -2              0

2   0  -1  -1    0              0

3   1   0   1    0              0

4   0   0   0    0              0

5   1  -1   1    2             -2

6   0   0  -1   -1              0

7  -1   0  -1    0              0

8   1   0  -1    0              0

9  -2   0  -2    1              0

10  0   0   0    1              0

11 -2   1  -2    0              0

12  0   1   0   -1              0

13  3   0   0    1              0

14  1  -1   1   -2              2

15 -1   1   1   -1              1

16  1   1  -1    0              0

17  0   0  -1    0              0

18  2   0   2   -1              0

19  3   2   0   -1              0

20  1   0  -1   -1              0

以上是 如何找到R数据框中每一行的行产品? 的全部内容, 来源链接: utcz.com/z/347452.html

回到顶部