如何找到R数据框中每一行的累积总和?

要找到 R 数据帧中每一行的累积和,我们需要将数据帧作为data.table对象读取,然后将 Reduce 函数与累积参数一起使用。

例如,如果我们有一个名为 df 的数据框,并且我们想找到 df 中每一行的累积总和,那么我们可以使用下面提到的命令 -

setDT(df)[,names(df):=Reduce("+",df,accumulate=TRUE)]

示例 1

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

x1<-sample(1:50,20)

x2<-sample(1:50,20)

x3<-sample(1:50,20)

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

df1

创建了以下数据框

  x1  x2 x3

 1 6  19 3

 2 28 46 5

 3 17 3  16

 4 16 44 25

 5 50 26 14

 6 40 16 11

 7 21 8  48

 8 19 9  27

 9 37 43 1

10 34 33 15

11 4  17 50

12 48 25 44

13 31 18 12

14 7  13 9

15 12 6  8

16 22 2  4

17 23 23 41

18 11 37 19

19 49 7  13

20 3  4  49

要data.table在上面创建的数据框中加载包并找到 df1 中每一行的累积值,请将以下代码添加到上面的代码段中 -

x1<-sample(1:50,20)

x2<-sample(1:50,20)

x3<-sample(1:50,20)

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

library(data.table)

setDT(df1)[,names(df1):=Reduce("+",df1,accumulate=TRUE)]

df1

输出结果

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

   x1  x2 x3

 1: 6  25 28

 2: 28 74 79

 3: 17 20 36

 4: 16 60 85

 5: 50 76 90

 6: 40 56 67

 7: 21 29 77

 8: 19 28 55

 9: 37 80 81

10: 34 67 82

11: 4  21 71

12: 48 73 117

13: 31 49 61

14: 7  20 29

15: 12 18 26

16: 22 24 28

17: 23 46 87

18: 11 48 67

19: 49 56 69

20: 3  7  56

示例 2

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

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

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

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

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

df2

创建了以下数据框

  y1  y2 y3

 1  0  1  1

 2 -1 -1  1

 3  1 -1 -1

 4  0  0  0

 5 -1  0  0

 6  0 -2  0

 7 -1  0  0

 8  1  0 -1

 9  0  0  2

10  1  0  0

11 -1  0 -1

12 -1  0 -1

13  1  0  1

14  0 -2  0

15 -1  0  0

16 -1  1 -1

17 -1 -1 -1

18  0  0 -1

19  0 -1  1

20  0 -1 -1

要在上面创建的数据框中找到 df2 中每一行的累积值,请将以下代码添加到上面的代码段中 -

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

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

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

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

setDT(df2)[,names(df2):=Reduce("+",df2,accumulate=TRUE)]

df2

输出结果

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

    y1 y2 y3

 1:  0  1  2

 2: -1 -2 -1

 3:  1  0 -1

 4:  0  0  0

 5: -1 -1 -1

 6:  0 -2 -2

 7: -1 -1 -1

 8:  1  1  0

 9:  0  0  2

10:  1  1  1

11: -1 -1 -2

12: -1 -1 -2

13:  1  1  2

14:  0 -2 -2

15: -1 -1 -1

16: -1  0 -1

17: -1 -2 -3

18:  0  0 -1

19:  0 -1  0

20:  0 -1 -2

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

回到顶部