如何在 R 資料框中合併具有相同值的行?


為了合併 R 資料框中具有相同值的行,我們可以使用 aggregate 函式。

例如,如果我們有一個名為 df 的資料框,其中包含兩個分類列,例如 C1 和 C2,以及一個數值列 Num,那麼我們可以透過對 C1 和 C2 值組合的 Num 中的值求和來合併 df 的行,使用以下命令:

aggregate(Num~.,df,FUN=sum)

示例 1

以下程式碼片段建立了一個示例資料框:

grp1<-sample(LETTERS[1:3],20,replace=TRUE)
grp2<-sample(letters[1:3],20,replace=TRUE)
Response<-rpois(20,5)
df1<-data.frame(grp1,grp2,Response)
df1

輸出

建立了以下資料框:

 grp1 grp2 Response
1  A   b   2
2  A   c   2
3  B   a   8
4  B   c   7
5  C   a   7
6  C   b   6
7  C   b   3
8  B   c   6
9  A   a   7
10 A   c   7
11 C   a  11
12 A   b   7
13 B   c   4
14 A   c   2
15 B   a   2
16 B   c   2
17 A   b   2
18 B   c   5
19 C   a   4
20 C   b   2

為了透過查詢 Response 的總和來合併 df1 的行,請將以下程式碼新增到上述程式碼片段中:

grp1<-sample(LETTERS[1:3],20,replace=TRUE)
grp2<-sample(letters[1:3],20,replace=TRUE)
Response<-rpois(20,5)
df1<-data.frame(grp1,grp2,Response)
aggregate(Response~.,df1,FUN=sum)

輸出

如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:

 grp1 grp2 Response
1  A   a    7
2  B   a   10
3  C   a   22
4  A   b   11
5  C   b   11
6  A   c   11
7  B   c   24

示例 2

以下程式碼片段建立了一個示例資料框:

factor1<-sample(c("Male","Female"),20,replace=TRUE)
factor2<-sample(c("I","II","III"),20,replace=TRUE)
Score<-sample(1:50,20)
df2<-data.frame(factor1,factor2,Score)
df2

建立了以下資料框:

factor1  factor2 Score
1  Female III    32
2  Male   III    18
3  Male   III    21
4  Male   III    49
5  Male     I    38
6  Female III     6
7  Male     I     7
8  Female   I    44
9  Female III    30
10 Female   I    26
11 Male    II    43
12 Male   III    41
13 Female   I     4
14 Female   I    33
15 Male     I    15
16 Female  II    13
17 Female  III   19
18 Female  III   46
19 Male     II   17
20 Female    I   31

為了透過查詢 Score 的總和來合併 df2 的行,請將以下程式碼新增到上述程式碼片段中:

factor1<-sample(c("Male","Female"),20,replace=TRUE)
factor2<-sample(c("I","II","III"),20,replace=TRUE)
Score<-sample(1:50,20)
df2<-data.frame(factor1,factor2,Score)
aggregate(Score~.,df2,FUN=sum)

輸出

如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:

   factor1 factor2 Score
1  Female   I      138
2  Male     I       60
3  Female  II       13
4  Male    II       60
5  Female III      133
6  Male   III      129

更新於: 2021年11月5日

3K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.