根据 R 中的另一个数值列查找列值的总和。

要根据 R 中的另一个数字列查找列值的总和,我们可以使用 with 函数并通过在单个方括号的帮助下对列进行子集来定义总和。

例如,如果我们有一个名为 df 的数据框,其中包含两列 X 和 Y,那么当 Y 大于 10 时,我们可以使用以下命令找到 X 中的值的总和 -

(df,sum(X[Y10]))

示例 1

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

x1<-rpois(20,2)
y1<-rpois(20,2)
df1<-data.frame(x1,y1)
df1

创建了以下数据框

 x1 y1
1  1 1
2  0 1
3  0 1
4  2 3
5  3 1
6  0 2
7  7 2
8  3 1
9  2 3
10 2 1
11 3 5
12 3 2
13 4 2
14 0 4
15 1 5
16 2 1
17 3 3
18 2 0
19 3 1
20 1 2

要在上面创建的数据框中找到 x1 介于 1 和 4 之间时 y1 值的总和,请将以下代码添加到上述代码段中 -

x1<-rpois(20,2)
y1<-rpois(20,2)
df1<-data.frame(x1,y1)
with(df1,sum(y1[x1>1 & x1<4]))
输出结果

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

[1] 23

示例 2

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

x2<-rnorm(20)
y2<-rnorm(20)
df2<-data.frame(x2,y2)
df2

创建了以下数据框

          x2        y2
1   1.14755939  0.2739985
2   0.33167239 -0.2753514
3  -0.01889732  2.0004839
4  -0.21294107 -1.2277250
5  -1.01230915 -0.4567277
6   0.30736328  0.8563572
7   0.59352845  0.7922568
8  -1.52657337  0.6147363
9   1.43228181 -0.7891716
10  0.15651466 -1.0415412
11  0.01792464 -0.3184454
12 -0.39428864  1.8005928
13 -0.48033841 -1.2787737
14 -0.51845529  0.2815327
15  0.33342239 -0.1313864
16  0.80461529 -0.2456082
17  0.30222411 -1.0134336
18 -0.83910609 -0.8805410
19 -0.06040907 1.4582650
20  0.12855851 -0.3424985

要在上面创建的数据框中找到 x2 介于 1 和 1.2 之间时 y2 值的总和,请将以下代码添加到上面的代码段中 -

x2<-rnorm(20)
y2<-rnorm(20)
df2<-data.frame(x2,y2)
with(df2,sum(y2[x>21 & x2<1.2]))
输出结果

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

[1] 0.2739985

示例 3

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

x3<-sample(0:9,20,replace=TRUE)
y3<-sample(0:9,20,replace=TRUE)
df3<-data.frame(x3,y3)
df3

创建了以下数据框

 x3 y3
1  9 0
2  2 3
3  2 1
4  1 2
5  2 0
6  1 6
7  3 1
8  1 0
9  9 5
10 6 9
11 1 5
12 6 6
13 7 3
14 9 7
15 9 8
16 5 8
17 0 1
18 6 9
19 3 4
20 1 3

要在上面创建的数据框中找到 x3 介于 8 和 10 之间时 y3 值的总和,请将以下代码添加到上述代码段中 -

x3<-sample(0:9,20,replace=TRUE)
y3<-sample(0:9,20,replace=TRUE)
df3<-data.frame(x3,y3)
with(df3,sum(y3[x>38 & x3<10]))
输出结果

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

[1] 20