如何在R数据框中根据多个列计算一列的各行之和?


要根据R数据框中的多个列计算一列的各行之和,我们可以按照以下步骤操作:

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

  • 然后,使用aggregate函数根据多个列计算一列的各行之和。

示例

创建数据框

让我们创建一个如下所示的数据框:

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

根据多个列计算一列的各行之和

使用aggregate函数根据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

更新于:2021年11月8日

906 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告