如何基于R数据帧的其他列中的关键字找到值的总和?

如果我们有一个关键列,这意味着我们想将该列用作自变量,并找到因变量的统计值,例如总和,均值,标准差,范围等。可以使用with和tapply函数的组合来完成此操作,如以下示例所示。

考虑以下数据帧-

示例

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

为x1中的值找到y1的总和-

with(df1,tapply(y1,x1,FUN = sum))

A B C
16 31 57

示例

x2<-sample(c("India","Indonesia","UK"),20,replace=TRUE)
y2<-rpois(20,10)
df2<-data.frame(x2,y2)
df2
输出结果
    x2        y2
1  India      11
2  India       8
3  Indonesia  16
4  India       8
5  Indonesia  10
6  UK         16
7  India      16
8  Indonesia   9
9  Indonesia  11
10 India       9
11 UK          7 
12 India      14
13 Indonesia   9
14 India      12
15 UK          8
16 Indonesia  10
17 UK         14
18 India       9
19 India      13
20 Indonesia  10

为x2中的值找到y2的总和-

with(df2,tapply(y2,x2,FUN = sum))

India Indonesia UK
100     75      45