如何在R数据框中同时找到分组均值和分组总和?
要同时找到分组均值和分组总和,我们可以先将数据框转换为data.table对象,然后对data.table对象组应用 sum 函数和均值函数,如下面的示例所示。
示例 1
以下代码段创建了一个示例数据框 -
Group<-sample(LETTERS[1:4],20,replace=TRUE)Rate<-rpois(20,5)
Score<-rpois(20,2)
df1<-data.frame(Group,Rate,Score)
df1
创建以下数据框 -
Group Rate Score1 B 5 3
2 A 8 3
3 B 5 3
4 D 9 2
5 D 4 3
6 D 4 1
7 D 8 3
8 C 5 3
9 C 4 1
10 D 6 4
11 D 4 4
12 C 5 1
13 D 7 2
14 C 4 0
15 C 3 1
16 B 1 1
17 C 3 2
18 D 3 2
19 B 2 4
20 C 4 3
要加载data.table包,将 df1 转换为data.table对象并找到分组均值和分组总和,将以下代码添加到上面的代码段 -;
library(data.table)输出结果DT1<-data.table(df1)
DT1[,list(Rate=sum(Rate),Score=mean(Score)),by="Group"]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Group Rate Score1: B 13 2.750000
2: A 8 3.000000
3: D 45 2.625000
4: C 28 1.571429
示例 2
以下代码段创建了一个示例数据框 -
Class<-sample(c("First","Second","Third"),20,replace=TRUE)Price<-sample(200:1000,20)
Sales<-sample(50:100,20)
df2<-data.frame(Class,Price,Sales)
df2
创建以下数据框 -
Class Price Sales1 Third 494 89
2 Second 222 90
3 First 466 53
4 First 425 94
5 First 567 66
6 Second 526 95
7 Third 443 97
8 Third 614 96
9 First 605 50
10 First 590 100
11 Second 853 92
12 First 818 73
13 Third 936 63
14 Second 932 68
15 First 677 88
16 First 851 80
17 Second 395 65
18 First 519 70
19 Second 804 77
20 Second 420 84
要将 df2 转换为data.table对象并找到分组均值和分组总和,请将以下代码添加到上述代码段中 -
DT2<-data.table(df2)输出结果DT2[,list(Sales=sum(Sales),Price=mean(Price)),by="Class"]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Class Sales Price1: Third 345 621.7500
2: Second 571 593.1429
3: First 674 613.1111
以上是 如何在R数据框中同时找到分组均值和分组总和? 的全部内容, 来源链接: utcz.com/z/338665.html