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