如何在 R 資料框中根據單個組值查詢平均值?


為了根據 R 資料框中的單個組值查詢平均值,我們可以使用 mean 函式並透過單個方括號進行子集化。

例如,如果我們有一個名為 df 的資料框,其中包含一個分類列(例如 C),該列具有三個組 Low、Medium、High 和一個數值列(例如 Num),則可以透過使用以下命令找到 Num 的 Medium 組的平均值:

mean(df$C[df$Num=="Medium"])

示例 1

以下程式碼段建立了一個示例資料框:

Group<-sample(LETTERS[1:4],20,replace=TRUE)
Score<-rpois(20,5)
df1<-data.frame(Group,Score)
df1

建立了以下資料框:

 Group Score
1  D   7
2  D   6
3  D   3
4  B   5
5  C   7
6  A   2
7  D   7
8  D   5
9  C   1
10 C   6
11 C   9
12 D   3
13 C   6
14 B   8
15 C   2
16 B   6
17 D   7
18 C   8
19 A  12
20 B   3

要獲取 A 組的 Score 平均值,請將以下程式碼新增到上面的程式碼段中:

Group<-sample(LETTERS[1:4],20,replace=TRUE)
Score<-rpois(20,5)
df1<-data.frame(Group,Score)
mean(df1$Score[df1$Group=="A"])

輸出

如果將以上所有程式碼段作為單個程式執行,則會生成以下輸出:

[1] 7

示例 2

以下程式碼段建立了一個示例資料框:

Class<-sample(c("I","II","III"),20,replace=TRUE)
Price<-sample(10:20,20,replace=TRUE)
df2<-data.frame(Class,Price)
df2

建立了以下資料框:

 Class Price
1   II  19
2    I  15
3    I  14
4    I  19
5  III  13
6    I  17
7  III  12
8    I  10
9   II  18
10  II  11
11  II  13
12   I  11
13  II  12
14 III  11
15  II  13
16  II  15
17 III  10
18   I  17
19 III  18
20   I  14

要獲取 Class I 的 Price 平均值,請將以下程式碼新增到上面的程式碼段中:

Class<-sample(c("I","II","III"),20,replace=TRUE)
Price<-sample(10:20,20,replace=TRUE)
df2<-data.frame(Class,Price)
mean(df2$Price[df2$Class=="I"])

輸出

如果將以上所有程式碼段作為單個程式執行,則會生成以下輸出:

[1] 14.625

示例 3

以下程式碼段建立了一個示例資料框:

Category<-sample(c("First","Second","Third","Fourth"),20,replace=TRUE)
Sales<-sample(10:50,20)
df3<-data.frame(Category,Sales)
df3

建立了以下資料框:

 Category Sales
1  First   49
2  Fourth  43
3  Second  44
4  Third   35
5  Fourth  21
6  Third   50
7  First   45
8  Fourth  15
9  Second  20
10 First   11
11 First   17
12 Fourth  37
13 Third   48
14 Second  32
15 Fourth  10
16 Fourth  38
17 First   40
18 First   22
19 Second  25
20 First   47

要獲取 First 組的 Sales 平均值,請將以下程式碼新增到上面的程式碼段中:

Category<-sample(c("First","Second","Third","Fourth"),20,replace=TRUE)
Sales<-sample(10:50,20)
df3<-data.frame(Category,Sales)
mean(df3$Sales[df3$Category=="First"])

輸出

如果將以上所有程式碼段作為單個程式執行,則會生成以下輸出:

[1] 33

更新於: 2021年11月10日

810 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.