如果R数据框中某些列是分类变量,如何求列的均值?
如果R数据框中某些列是分类变量,要查找列的均值,我们可以按照以下步骤操作:
首先,创建一个数据框。
然后,使用plyr包中的numcolwise函数来查找数值列的均值,即使某些列是分类变量。
示例1
创建数据框
让我们创建一个如下所示的数据框:
Grp<-sample(c("Male","Female"),25,replace=TRUE) Score<-sample(1:50,25) Frequency<-sample(1:5,25,replace=TRUE) df1<-data.frame(Grp,Score,Frequency) df1
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上会有所不同):
Grp Score Frequency 1 Male 22 2 2 Male 10 2 3 Female 38 4 4 Female 13 2 5 Male 24 5 6 Male 39 2 7 Male 23 5 8 Female 42 3 9 Female 15 4 10 Female 49 4 11 Male 18 2 12 Female 30 5 13 Male 17 2 14 Male 4 3 15 Male 34 2 16 Female 3 5 17 Male 35 2 18 Female 31 3 19 Female 43 5 20 Female 9 4 21 Female 12 4 22 Female 8 4 23 Male 29 2 24 Male 46 3 25 Male 33 2
如果某些列是分类变量,则查找列的均值
使用plyr包中的numcolwise函数查找数据框df1中数值列的均值:
Grp<-sample(c("Male","Female"),25,replace=TRUE) Score<-sample(1:50,25) Frequency-<sample(1:5,25,replace=TRUE) df1<-data.frame(Grp,Score,Frequency) library(plyr) numcolwise(mean)(df1)
输出
Score Frequency 1 25.08 3.24
示例2
创建数据框
让我们创建一个如下所示的数据框:
factor<-sample(LETTERS[1:4],25,replace=TRUE) v1<-rpois(25,2) v2<-rpois(25,5) df2<-data.frame(factor,v1,v2) df2
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上会有所不同):
factor v1 v2 1 C 3 7 2 C 2 5 3 C 2 5 4 A 3 7 5 C 4 8 6 B 0 6 7 C 3 6 8 D 3 4 9 D 2 4 10 A 6 10 11 A 2 4 12 A 2 5 13 B 3 6 14 C 2 7 15 A 2 4 16 C 0 6 17 C 3 7 18 B 1 7 19 C 1 6 20 B 2 3 21 A 1 8 22 C 1 1 23 A 3 7 24 A 4 7 25 B 1 7
如果某些列是分类变量,则查找列的均值
使用plyr包中的numcolwise函数查找数据框df2中数值列的均值:
factor<-sample(LETTERS[1:4],25,replace=TRUE) v1<-rpois(25,2) v2<-rpois(25,5) df2<-data.frame(factor,v1,v2) library(plyr) numcolwise(mean)(df2)
输出
v1 v2 1 2.24 5.88
广告