如何在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 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

以上是 如何在R数据框中同时找到分组均值和分组总和? 的全部内容, 来源链接: utcz.com/z/338665.html

回到顶部