如何在 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 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.