分组计算描述性统计量
来看一个栗子
myvars<-c("mpg","hp","wt")
aggregate(mtcars[myvars],by=list(am=mtcars$am),mean) #均值
am mpg hp wt
1 0 17.14737 160.2632 3.768895
2 1 24.39231 126.8462 2.411000
aggregate(mtcars[myvars],by=list(am=mtcars$am),sd) #标准差
am mpg hp wt
1 0 3.833966 53.90820 0.7774001
2 1 6.166504 84.06232 0.6169816
#上述的描述了以am分组标签,对数据框的mpg,hp及wt进行了均值mea和标准差sd的描述,但是很遗憾,aggregate()函数每次只能单一调用和返回相关的统计量,所有
#我们需要借助于by()函数来解决这个问题,格式为:
#by(data,indices,fun),其中data为数据框或者矩阵,indices是一个因子或者因子组成的列表,fun是任意函数。
再来看一个栗子
dstats<-function(x) sapply(x,mystats) #定义函数,调用函数
myvars<-c("mpg","hp","wt")
by(mtcars[myvars],mtcars$am,dstats) #by()函数
结果如下图:
引用phych包中的 describeBy()分组计算概述统计量
library(Hmisc)
myvars <- c("mpg", "hp", "wt")
describeBy(mtcars[myvars], list(am=mtcars$am)) #中间必须有空格
结果如下:
好了,我的小伙伴们,今天就先到这儿吧,下期见!O(∩_∩)O哈哈~