基于 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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例 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
广告