如何合并R数据框中具有相同值的行?

要合并 R 数据框中具有相同值的行,我们可以使用聚合函数。

例如,如果我们有一个名为 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

以上是 如何合并R数据框中具有相同值的行? 的全部内容, 来源链接: utcz.com/z/331638.html

回到顶部