# summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻
# 辑型向量的频数统计。你可以使用第5章中的apply()函数或sapply()函数计算所选择的任意描
# 述性统计量。对于sapply()函数,其使用格式为:sapple(x,FUN,options)
# 其中的x是你的数据框(或矩阵),FUN为一个任意的函数。如果指定了options,它们将被传递
# 给FUN。你可以在这里插入的典型函数有mean、sd、var、min、max、median、length、range
# 和quantile。函数fivenum()可返回图基五数总括(Tukey’s five-number summary,即最小值、
# 下四分位数、中位数、上四分位数和最大值
mystats<-function(x,na.omit=FALSE){
if(na.omit)
x<-x[!is.na(x)]
m<-mean(x)
n<-length(x)
s<-sd(x)
skew<-sum((x-m)^3/s^3)/n
kurt<-sum((x-m)^4/s^4)/n-3
return(c(n=n,mean=m,stdev=s,skew=skew,kurtsis=kurt))
}
sapply(mtcars[vars],mystats)
#
# > sapply(mtcars[vars],mystats)
# mpg hp wt
# n 32.000000 32.0000000 32.00000000
# mean 20.090625 146.6875000 3.21725000
# stdev 6.026948 68.5628685 0.97845744
# skew 0.610655 0.7260237 0.42314646
# kurtsis -0.372766 -0.1355511 -0.02271075
#
# 对于样本中的车型,每加仑汽油行驶英里数的平均值为20.1,标准差为6.0。分布呈现右偏(偏
# 度+0.61),并且较正态分布稍平(峰度0.37)。如果你对数据绘图,这些特征最显而易见。请注
# 意,如果你只希望单纯地忽略缺失值,那么应当使用sapply(mtcars[vars], mystats,
# na.omit=TRUE)。
install.packages("Hmisc")
library(Hmisc)
describemtcars[vars])
# pastecs包中有一个名为stat.desc()的函数,它可以计算种类繁多的描述性统计量。
stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)
#
# 其中的x是一个数据框或时间序列。若basic=TRUE(默认值),则计算其中所有值、空值、缺失
# 值的数量,以及最小值、最大值、值域,还有总和。若desc=TRUE(同样也是默认值),则计算
# 中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系
# 数。最后,若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们
# 的统计显著程度)和Shapiro–Wilk正态检验结果。
install.packages("pastecs")
library(pastecs)
state.desc(mtcars[vars])
#
# 似乎这还不够,psych包也拥有一个名为describe()的函数,它可以计算非缺失值的数量、
# 平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均
# 值的标准误
install.packages("psych")
library(psych)
describe(mtcars[vars])
# 首先,使用:
dfm<-melt(dataframe,measure.vars=y,id.vars=g)
# 融合数据框。其中的dataframe包含着数据,y是一个向量,指明了要进行概述的数值型变量(默
# 认使用所有变量),而g是由一个或多个分组变量组成的向量。然后使用
#
cast(dfm,group1+grou2+....+varible~.,FUN)
#
# 重铸数据。分组变量以+号分隔,这里的variable只取其字面含义①,而FUN是一个任意函数
# ,我们将运用数据重塑的方法来取得由变速箱类型与汽缸数形成的
# 每个亚组的描述性统计量。我们要获取的描述性统计量是样本大小、平均数和标准差
library(reshape2)
library(reshape)
dstats<-function(x){c(n=length(x),mean=mean(x),sd=sd(x))}
dfm<-melt(mtcars,measure.vars = c("mpg","hp","wt"),id.vars = c("am","cyl"))
cast(dfm,am+cyl~.,dstats)
#
# > cast(dfm,am+cyl~.,dstats)
# am cyl n mean sd
# 1 0 4 9 36.83389 38.19523
# 2 0 6 12 45.92125 51.86950
# 3 0 8 36 71.10692 90.33878
# 4 1 4 24 37.33075 36.26945
# 5 1 6 9 51.66278 63.34085
# 6 1 8 6 106.09000 151.58358
R之分组计算描述性统计统计量
最新推荐文章于 2024-08-04 01:00:00 发布