如何找到R中的小计?

小计是指根据分组列找到值的总和。例如,如果我们有一个名为df的数据框,其中包含三个数字列,分别为x,y,z和一个类别列(例如Group),则可以使用以下命令找到Group中每个类别的x,y,z小计(cbind(x,y,z)〜Group,data = df,FUN = sum)。

考虑以下数据帧-

示例

x1<-rpois(20,2)
x2<-rpois(20,2)
x3<-rpois(20,2)
Grp<-sample(c("I","II","III"),20,replace=TRUE)
df1<-data.frame(x1,x2,x3,Grp)
df1
输出结果
  x1 x2  x3  Grp
1  8  1  2    I
2  2  2  2  III
3  1  2  1   II
4  1  3  1   II
5  3  0  2   II
6  3  2  2  III
7  2  1  1  III
8  2  1  4  III
9  4  3  3    I
10 0  0  3   II
11 1  4  1    I
12 2  2  7   III
13 3  1  0    II
14 3  5  2    II
15 3  2  5   III
16 0  0  2    II
17 0  3  0   III
18 5  5  1    II
19 3  3  2    II
20 2  3  2     I

在Grp中找到类别的小计-

示例

aggregate(cbind(x1,x2,x3)~Grp,data=df1,FUN=sum)
输出结果
  Grp x1  x2  x3
1   I  15  11   8
2  II  19  19  14
3 III  14  13  21

示例

Category<-sample(c("First","Second","Third","Fourth"),20,replace=TRUE)
y1<-rpois(20,12)
y2<-rpois(20,12)
y3<-rpois(20,12)
y4<-rpois(20,12)
df2<-data.frame(Category,y1,y2,y3,y4)
df2
输出结果
   Category y1  y2   y3  y4
1  Second   14  15  16   12
2  Fourth   12  20  11   19
3  Fourth   18  8   15   10
4  First    12  7   14   11
5  First    5   17  15   16
6  First    15  10  9    12
7  Fourth   8  15   8    10
8  Third    17 15   14   11
9  Second   11  12  10   15
10 First    16  18  14   6
11 Fourth   14  11   10   12
12 Third    15  17   13   22
13 First    18  19   9     7
14 Second   13  16   16   10
15 Fourth   6   10   21   20
16 Fourth   8   12   14   13
17 Third    17  16   16   13
18 Second   8   11   14    9
19 First    10  9   16    10
20 Second   3   10   9    12

在df2的Category列中找到类别的小计-

示例

aggregate(cbind(y1,y2,y3,y4)~Category,data=df2,FUN=sum)
输出结果
   Category  y1  y2  y3 y4
1  First    76  80  77  62
2  Fourth   66  76  79  84
3  Second   49  64  65  58
4  Third    49  48  43  46