如何在 R 数据框中根据多列查找某一列的行总和?

r programmingserver side programmingprogramming更新于 2025/4/8 23:52:17

要在 R 数据框中根据多列查找某一列的行总和,我们可以按照以下步骤操作 −

  • 首先,创建一个数据框。

  • 然后,使用聚合函数根据多列查找某一列的行总和。

示例

创建数据框

让我们创建一个数据框,如下所示 −

Grp1<-sample(LETTERS[1:4],25,replace=TRUE)
Grp2<-sample(letters[1:4],25,replace=TRUE)
Grp3<-sample(c("A-1","B-2","C-3"),25,replace=TRUE)
DV<-sample(1:50,25)
df<-data.frame(Grp1,Grp2,Grp3,DV)
df

输出

执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −

   Grp1 Grp2 Grp3 DV
1  D    b    C-3  35
2  D    c    B-2   4
3  A    a    C-3  45
4  A    b    C-3   7
5  C    b    C-3  21
6  A    b    C-3  31
7  A    c    B-2  37
8  A    b    C-3   5
9  D    b    B-2  36
10 B    d    A-1  41
11 B    c    C-3   3
12 B    b    C-3  14
13 A    b    C-3  27
14 D    b    B-2  15
15 B    d    C-3  47
16 B    c    C-3  18
17 C    a    C-3   6
18 A    b    B-2  10
19 A    c    A-1  49
20 A    d    C-3  16
21 A    a    C-3  40
22 D    b    B-2  29
23 A    c    B-2  17
24 D    b    A-1  19
25 B    c    B-2  50

根据多列求出某一列的行数之和

使用聚合函数根据 Grp1、Grp2、Grp3 列求出 DV 列的行数之和,如下所示 −

Grp1<-sample(LETTERS[1:4],25,replace=TRUE)
Grp2<-sample(letters[1:4],25,replace=TRUE)
Grp3<-sample(c("A-1","B-2","C-3"),25,replace=TRUE)
DV<-sample(1:50,25)
df<-data.frame(Grp1,Grp2,Grp3,DV)
aggregate(DV~Grp1+Grp2+Grp3,data=df,FUN=sum)

输出

   Grp1 Grp2 Grp3 DV
1  D    b    A-1  19
2  A    c    A-1  49
3  B    d    A-1  41
4  A    b    B-2  10
5  D    b    B-2  80
6  A    c    B-2  54
7  B    c    B-2  50
8  D    c    B-2   4
9  A    a    C-3  85
10 C    a    C-3   6
11 A    b    C-3  70
12 B    b    C-3  14
13 C    b    C-3  21
14 D    b    C-3  35
15 B    c    C-3  21
16 A    d    C-3  16
17 B    d    C-3  47

相关文章