如何在R中的另一列中找到一列值的总和?
要查找一列值的总和直到另一列中的特定值,我们可以使用 cumsum 函数和 sum 函数。
例如,如果我们有一个名为 df 的数据框,其中包含两列 x 和 y,并且我们想要找到 x 值的总和,直到 y 等于 2,那么我们可以使用以下命令 -
sum(df$x[cumsum(df$y==2)==0])
示例 1
以下代码段创建了一个示例数据框 -
x1<-rpois(20,5)输出结果x2<-rpois(20,2)
df1<-data.frame(x1,x2)
df1
创建以下数据框 -
x1 x21 9 4
2 1 2
3 5 3
4 5 2
5 4 2
6 14 2
7 11 3
8 2 2
9 6 1
10 6 2
11 1 2
12 3 3
13 3 0
14 6 2
15 6 0
16 9 3
17 5 1
18 6 4
19 5 2
20 2 2
要找到 x1 的总和直到 x2 达到 0,请将以下代码添加到上面的代码段中 -
x1<-rpois(20,5)输出结果x2<-rpois(20,2)
df1<-data.frame(x1,x2)
sum(df1$x1[cumsum(df1$x2==0)==0])
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 67
示例 2
以下代码段创建了一个示例数据框 -
y1<-round(rnorm(20),1)输出结果y2<-round(rnorm(20),1)
df2<-data.frame(y1,y2)
df2
创建以下数据框 -
y1 y21 2.4 -0.7
2 0.1 2.7
3 -0.7 0.0
4 1.6 -1.9
5 0.2 -1.0
6 0.2 1.7
7 0.7 0.7
8 -0.1 -0.3
9 -0.2 -0.2
10 -1.3 1.4
11 -2.5 -0.4
12 1.2 0.9
13 0.8 -0.4
14 0.8 -1.3
15 0.6 0.5
16 -0.8 -1.8
17 0.4 -0.4
18 0.4 0.6
19 -1.0 0.2
20 0.3 0.6
要找到 y1 的总和直到 y2 达到 0.5,请将以下代码添加到上述代码段中 -
y1<-round(rnorm(20),1)输出结果y2<-round(rnorm(20),1)
df2<-data.frame(y1,y2)
sum(df2$y1[cumsum(df2$y2==0.5)==0])
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 3.2
以上是 如何在R中的另一列中找到一列值的总和? 的全部内容, 来源链接: utcz.com/z/331669.html