如何根据R数据框中的单个组值找到平均值?
要根据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
要获得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
要获得GroupFirst的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