如何找到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 x31 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 x31: 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 y31 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 y31: 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