如何在 R 数据框中同时找到分组平均值和分组总和?
要同时找到分组平均值和分组总和,我们可以先将数据框转换为 data.table 对象,然后应用 data.table 对象组的 sum 函数和 mean 函数,如下面的示例所示。
示例 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 Score 1 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 Score 1: 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 Sales 1 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 Price 1: Third 345 621.7500 2: Second 571 593.1429 3: First 674 613.1111
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP