如何在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 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.