想制作自己的网站,wordpress使用培训,北京免费建站网络营销,数商云商城参考资料#xff1a;R语言实战【第2版】
1、整体统计 对于R语言基础安装#xff0c;可以使用summary()函数来获取描述性统计量。summary()函数提供了最小值、最大值、四分位数、中位数和算术平均数#xff0c;以及因子向量和逻辑向量的频数统计。
myvars-c(mpgR语言实战【第2版】
1、整体统计 对于R语言基础安装可以使用summary()函数来获取描述性统计量。summary()函数提供了最小值、最大值、四分位数、中位数和算术平均数以及因子向量和逻辑向量的频数统计。
myvars-c(mpg,hp,wt)
summary(mtcars[myvars]) 但基础安装没有提供偏度和峰度的计算函数。需要我们自定义函数来进行运算。
mystats-function(x,na.omitFALSE){if(na.omit) x-x[!is.na(x)]m-mean(x)n-length(x)s-sd(x)skew-sum((x-m)^3/s^3)/nkurt-sum((x-m)^4/s^4)/n-3return(c(nn,meanm,stdevs,skewskew,kurtosiskurt))
}
myvars-c(mpg,hp,wt)
sapply(mtcars[myvars],mystats)Hmisc、pastecs和psych包中也都有计算描述性统计量的函数。首次使用前需要先行安装。 Hmisc包中的describe()函数可返回变量和观测的数值、缺失值和唯一值的数目、平均值、分位数以及5个最大的值和5个最小的值。
library(Hmisc)
myvars-c(mpg,hp,wt)
describe(mtcars[myvars]) pastecs包中的stat.desc()函数可以计算种类繁多的描述性统计量。使用格式为 stat.desc(x,basicTRUE,descTRUE,normFALSE,p0.95)
其中x是一个数据框或时间序列。
若basicTRUE则计算其中所有值、空值、缺失值的数量以及最小值、最大值、值域还有总和。
若descTRUE则计算中位数、平均数、平均数标准误、平均数置信度为参数p的置信区间、方差、标准差以及变异系数。
若normTRUE则返回正态分布统计量包括偏度和峰度以及他们的统计显著程度和Shaprio-Wilk正态检验结果。
library(pastecs)
myvars-c(mpg,hp,wt)
stat.desc(mtcars[myvars]) psych包也有一个名为describe()的函数它可以计算非缺失值的数量、平均数、标准差、中位数、截尾平均数、绝对中位数、最小值、最大值、值域、偏度、峰度和平均值的标准误。
library(psych)
myvars-c(mpg,hp,wt)
describe(mtcars[myvars]) 2、分组统计 在比较多组个体或观测时关注的焦点经常是各组的描述性统计信息而不是样本整体的描述性统计信息。我们可以使用aggregate()函数来分组获取描述性统计量。
myvars-c(mpg,hp,wt)
aggregate(mtcars[myvars],bylist(ammtcars$am),mean)
aggregate(mtcars[myvars],bylist(ammtcars$am),sd) 注意list(ammtcars$am)的使用。如果使用的是list(mtcars$am)则am列将被标注为Group.1而不是am不利于我们对分组数据的理解。 aggregate()函数仅允许在每次调用中使用平均数、标准差这样的单返回值函数。要解决这个问题我们可以使用by()函数格式为 by(data,INDICES,FUN)
by(mtcars[myvars],mtcars$am,describe) doBy包中summaryBy()函数的使用格式为 summary(formula,datadataframe,FUNfunction)
其中formula接受以下格式 var1var2var3...varN~groupvar1groupvar2...groupvarN
在~左侧的变量为需要统计分析的数值型变量而~右侧的变量是类别型的分组变量。function可以是内建函数也可以是自编函数。
install.packages(doBy)
library(doBy)
summaryBy(mpghpwt~am,datamtcars,FUNmystats) psych包中的describeBy()函数可以计算和describe()相同的统计量只是按照一个或多个分组变量分层。但是describeBy()函数不允许指定任意函数所以它的普适性较低。若存在一个以上的分组变量我们可以使用list(name1groupvar1,name2groupvar2,...,nameNgroupvarN)来表示它们但这仅在分组变量交叉后不出现空白单元时有效。
library(psych)
describe(mtcars[myvars])
describeBy(mtcars[myvars],list(ammtcars$am))