如何找到R中n列的行明智总和?
通过使用 rowSums 函数以及使用单个方括号对列进行子集,可以找到 n 列的行明智总和。
例如,如果我们有一个名为 df 的数据框,它包含五列,并且我们想要找到最后三列的行总和,那么我们可以使用以下命令 -
df$Sum_3<-rowSums(df[,3:5])
示例 1
以下代码段创建了一个示例数据框 -
x1<-round(rnorm(20),2)x2<-round(rnorm(20),2)x3<-round(rnorm(20),2)df1<-data.frame(x1,x2,x3)df1
创建以下数据框 -
x1 x2 x31 -0.66 1.01 -0.442 -2.05 -0.47 0.423 1.11 1.47 1.044 -2.55 -0.42 -0.465 -0.50 -1.98 -0.416 -2.16 -0.34 -0.557 0.29 -0.58 0.428 -0.67 1.71 -0.869 -0.93 0.00 0.0010 0.30 -0.87 0.2711 1.27 -1.60 -0.4912 0.73 1.16 -1.2413 -0.71 0.20 -1.1814 -0.31 1.16 0.2415 -0.76 0.86 -0.7016 1.11 -0.25 -0.4817 -0.88 -0.43 0.1018 0.50 -2.05 0.3619 -0.30 0.56 -0.9720 -1.76 -1.39 1.10
要查找列 x2 和 x3 的行总和,请将以下代码添加到上述代码段中 -
x1<-round(rnorm(20),2) x2<-round(rnorm(20),2) x3<-round(rnorm(20),2) df1<-data.frame(x1,x2,x3) df1$Sum_x2_x3<-rowSums(df1[,2:3]) df1
输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
x1 x2 x3 Sum_x2_x31 -0.66 1.01 -0.44 0.572 -2.05 -0.47 0.42 -0.053 1.11 1.47 1.04 2.514 -2.55 -0.42 -0.46 -0.885 -0.50 -1.98 -0.41 -2.396 -2.16 -0.34 -0.55 -0.897 0.29 -0.58 0.42 -0.168 -0.67 1.71 -0.86 0.859 -0.93 0.00 0.00 0.0010 0.30 -0.87 0.27 -0.6011 1.27 -1.60 -0.49 -2.0912 0.73 1.16 -1.24 -0.0813 -0.71 0.20 -1.18 -0.9814 -0.31 1.16 0.24 1.4015 -0.76 0.86 -0.70 0.1616 1.11 -0.25 -0.48 -0.7317 -0.88 -0.43 0.10 -0.3318 0.50 -2.05 0.36 -1.6919 -0.30 0.56 -0.97 -0.4120 -1.76 -1.39 1.10 -0.29
示例 2
以下代码段创建了一个示例数据框 -
y1<-rpois(20,1)y2<-rpois(20,5)y3<-rpois(20,2)y4<-rpois(20,2)df2<-data.frame(y1,y2,y3,y4)df2
创建以下数据框 -
y1 y2 y3 y41 1 6 2 22 1 4 1 03 1 6 0 24 2 9 4 25 0 7 1 26 1 5 1 17 2 0 3 28 1 2 5 19 1 6 1 510 0 3 1 211 1 4 2 312 1 7 3 113 0 8 1 214 1 5 2 315 0 10 3 016 2 2 1 217 3 5 4 218 0 6 2 119 2 2 3 120 0 6 1 2
要查找列 y1 和 y2 的行总和,请将以下代码添加到上述代码段中 -
y1<-rpois(20,1) y2<-rpois(20,5) y3<-rpois(20,2) y4<-rpois(20,2) df2<-data.frame(y1,y2,y3,y4) df2$Sum_y1_y2<-rowSums(df2[,1:2]) df2
输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
y1 y2 y3 y4 Sum_y1_y21 1 6 2 2 72 1 4 1 0 53 1 6 0 2 74 2 9 4 2 115 0 7 1 2 76 1 5 1 1 67 2 0 3 2 28 1 2 5 1 39 1 6 1 5 710 0 3 1 2 311 1 4 2 3 512 1 7 3 1 813 0 8 1 2 814 1 5 2 3 615 0 10 3 0 1016 2 2 1 2 417 3 5 4 2 818 0 6 2 1 619 2 2 3 1 420 0 6 1 2 6