如何合并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 Response1 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 Response1 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 Score1 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 Score1 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