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

更新于: 2021年2月6日

579 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告