如何根据 R 数据框中的单个组值找到平均值?

r programmingserver side programmingprogramming更新于 2025/4/7 7:07:17

要根据 R 数据框中的单个组值找到平均值,我们可以使用均值函数并通过单个方括号进行子集化。

例如,如果我们有一个名为 df 的数据框,其中包含一个分类列(例如 C),该分类列有三个组(低、中、高)和一个数值列(例如 Num),则可以使用下面给出的命令找到中组的 Num 平均值 −

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 组的平均分数,请将以下代码添加到上述代码片段中 −

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 的价格平均值,请将以下代码添加到上述代码片段 −

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

要获取第一组销售额的平均值,请将以下代码添加到上述代码片段 −

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

相关文章