描述性统计
1, 使用summary()函数来获取描述性统计量
summary()函数提供了最大值,最小值,四分位数和数值型变量的均值以及因子向量和逻辑向量的频数统计
例子

myvars <- c("mpg","hp","wt")
summary(mtcars[myvars])mpg              hp              wt       Min.   :10.40   Min.   : 52.0   Min.   :1.513  1st Qu.:15.43   1st Qu.: 96.5   1st Qu.:2.581  Median :19.20   Median :123.0   Median :3.325  Mean   :20.09   Mean   :146.7   Mean   :3.217  3rd Qu.:22.80   3rd Qu.:180.0   3rd Qu.:3.610  Max.   :33.90   Max.   :335.0   Max.   :5.424

2, 使用apply()函数或sapply()函数计算所选择的任意一个描述性统计量
sapply()函数的格式为
sapply(x,FUN, options)
参数x为数据框或矩阵,FUN为一个任意的函数。
options为函数FUN需要的参数,如果不需要参数也可以不写

典型的描述性统计函数有mean(), sd(), var(), min(), max(), median(), length(), range(), quantile()及可以返回图基五数总括(即最小值,下四分位数,中位数,上四分位数,最大值)的函数fivenum()
注意基础安装的函数没有提供偏度和峰度的计算函数

自定义描述性统计函数

> 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,kurtosis=kurt))
+ }
> sapply(mtcars[myvars],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
kurtosis -0.372766  -0.1355511 -0.02271075
> apply(mtcars[myvars],2,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
kurtosis -0.372766  -0.1355511 -0.02271075

3, 通过Hmisc包中的describe()函数计算描述性统计量
Hmisc包中的describe()函数可返回变量和观测的数量,缺失值,唯一值的数目,Info(关于变量的连续性的统计量),Gmd(基尼均差),平均值,分位数以及五个最大的值和五个最小的值
例子

> library(Hmisc)
> Hmisc::describe(mtcars[myvars])
mtcars[myvars] 3  Variables      32  Observations
------------------------------------------------------------------------------------------
mpg n  missing distinct     Info     Mean      Gmd      .05      .10      .25      .50 32        0       25    0.999    20.09    6.796    12.00    14.34    15.43    19.20 .75      .90      .95 22.80    30.09    31.30 lowest : 10.4 13.3 14.3 14.7 15.0, highest: 26.0 27.3 30.4 32.4 33.9
------------------------------------------------------------------------------------------
hp n  missing distinct     Info     Mean      Gmd      .05      .10      .25      .50 32        0       22    0.997    146.7    77.04    63.65    66.00    96.50   123.00 .75      .90      .95 180.00   243.50   253.55 lowest :  52  62  65  66  91, highest: 215 230 245 264 335
------------------------------------------------------------------------------------------
wt n  missing distinct     Info     Mean      Gmd      .05      .10      .25      .50 32        0       29    0.999    3.217    1.089    1.736    1.956    2.581    3.325 .75      .90      .95 3.610    4.048    5.293 lowest : 1.513 1.615 1.835 1.935 2.140, highest: 3.845 4.070 5.250 5.345 5.424
------------------------------------------------------------------------------------------
>

4, pastecs包中有一个名为stat.desc()函数可以计算描述性统计量
其格式为
stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)
参数x 是一个数据框或时间序列
参数basic=TRUE(默认值),则计算其中的所有值,空值,缺失值的数量以及最小值,最大值,值域,合计
参数desc=TRUE(默认值)则计算中位数,平均数,平均数的标准误差,平均数置信度为0.95的置信区间,方程,标准差,以及变异系数。
参数norm=FALSE,若norm=TRUE则返回正太分布统计量,包括偏度和峰度(以及它们的统计显著程度)和shapiro-wilk正态检验结果。
参数p值用来设置计算平均数的置信区间(默认的置信度为0.95)
例子

> stat.desc(mtcars[myvars])mpg           hp          wt
nbr.val       32.0000000   32.0000000  32.0000000
nbr.null       0.0000000    0.0000000   0.0000000
nbr.na         0.0000000    0.0000000   0.0000000
min           10.4000000   52.0000000   1.5130000
max           33.9000000  335.0000000   5.4240000
range         23.5000000  283.0000000   3.9110000
sum          642.9000000 4694.0000000 102.9520000
median        19.2000000  123.0000000   3.3250000
mean          20.0906250  146.6875000   3.2172500
SE.mean        1.0654240   12.1203173   0.1729685
CI.mean.0.95   2.1729465   24.7195501   0.3527715
var           36.3241028 4700.8669355   0.9573790
std.dev        6.0269481   68.5628685   0.9784574
coef.var       0.2999881    0.4674077   0.3041285
> stat.desc(mtcars[myvars],norm = TRUE)mpg            hp           wt
nbr.val       32.0000000   32.00000000  32.00000000
nbr.null       0.0000000    0.00000000   0.00000000
nbr.na         0.0000000    0.00000000   0.00000000
min           10.4000000   52.00000000   1.51300000
max           33.9000000  335.00000000   5.42400000
range         23.5000000  283.00000000   3.91100000
sum          642.9000000 4694.00000000 102.95200000
median        19.2000000  123.00000000   3.32500000
mean          20.0906250  146.68750000   3.21725000
SE.mean        1.0654240   12.12031731   0.17296847
CI.mean.0.95   2.1729465   24.71955013   0.35277153
var           36.3241028 4700.86693548   0.95737897
std.dev        6.0269481   68.56286849   0.97845744
coef.var       0.2999881    0.46740771   0.30412851
skewness       0.6106550    0.72602366   0.42314646
skew.2SE       0.7366922    0.87587259   0.51048252
kurtosis      -0.3727660   -0.13555112  -0.02271075
kurt.2SE      -0.2302812   -0.08373853  -0.01402987
normtest.W     0.9475647    0.93341934   0.94325772
normtest.p     0.1228814    0.04880824   0.09265499
>

5, 使用psych包中的describe()函数进行描述性统计
它可以计算非缺失值的数量,平均数,标准差中位数,截尾均值,绝对中位差,最小值,最大值,值域,偏度,峰度和平均值的标准误差
例子:

 library(psych)
> myvars <- c("mpg","hp","wt")
> describe(mtcars[myvars])vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 32  20.09  6.03  19.20   19.70  5.41 10.40  33.90  23.50 0.61    -0.37  1.07
hp     2 32 146.69 68.56 123.00  141.19 77.10 52.00 335.00 283.00 0.73    -0.14 12.12
wt     3 32   3.22  0.98   3.33    3.15  0.77  1.51   5.42   3.91 0.42    -0.02  0.17
>

6, 分组计算描述性统计量
(1),可以通过函数aggregate()函数来进行分组获取描述性统计量
但是aggregate()函数仅允许在每次调用中使用平均数,标准差这种单返回函数,它无法一次返回若干个统计量
注意对于函数aggregate()它的参数by=list(),可以对用来分组的列进行命名,如果不进行命名,则列自动命名为group.1,这样的名字,例如list(am=mtcars a m ) 的 使 用 , 如 果 使 用 的 是 l i s t ( m t c a r s am)的使用,如果使用的是list(mtcars am)的使用,如果使用的是list(mtcarsam),则am列将被标注为group.1而不是am。
例子

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

(2),使用by()函数进行分组获取描述性统计量
by()函数的功能和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)
mtcars$am: 0mpg           hp         wt
n        19.00000000  19.00000000 19.0000000
mean     17.14736842 160.26315789  3.7688947
stdev     3.83396639  53.90819573  0.7774001
skew      0.01395038  -0.01422519  0.9759294
kurtosis -0.80317826  -1.20969733  0.1415676
-------------------------------------------------------------------
mtcars$am: 1mpg          hp         wt
n        13.00000000  13.0000000 13.0000000
mean     24.39230769 126.8461538  2.4110000
stdev     6.16650381  84.0623243  0.6169816
skew      0.05256118   1.3598859  0.2103128
kurtosis -1.45535200   0.5634635 -1.1737358

(3),doBy包和psych包中也提供了分组计算的描述性统计量的函数
doBy保中的summaryBy()函数的使用格式为:
summaryBy(formula,data=dataframe,FUN=function)
其中formula的格式为
var1 + var2 + var3+…~groupvar1 + groupvar2 + …
左侧是需要分析的数值型变量,右侧是进行分组的类别型变量,function为任何内建或用户自定义的函数
summaryBy()函数和by函数的作用一样只是格式不一样
例子

 myvars <- c("mpg","hp","wt")
> summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)am mpg.n mpg.mean mpg.stdev   mpg.skew mpg.kurtosis hp.n  hp.mean hp.stdev     hp.skew
1  0    19 17.14737  3.833966 0.01395038   -0.8031783   19 160.2632 53.90820 -0.01422519
2  1    13 24.39231  6.166504 0.05256118   -1.4553520   13 126.8462 84.06232  1.35988586hp.kurtosis wt.n  wt.mean  wt.stdev   wt.skew wt.kurtosis
1  -1.2096973   19 3.768895 0.7774001 0.9759294   0.1415676
2   0.5634635   13 2.411000 0.6169816 0.2103128  -1.1737358

psych包中的describeBy()函数可以计算和describe()函数相同的描述性统计量,
其格式与aggregate()函数很相似只是没有指定FUN函数作用也类似。
例子

library(psych)
> describeBy(mtcars[myvars],list(am=mtcars$am))Descriptive statistics by group
am: 0vars  n   mean    sd median trimmed   mad   min    max  range  skew kurtosis    se
mpg    1 19  17.15  3.83  17.30   17.12  3.11 10.40  24.40  14.00  0.01    -0.80  0.88
hp     2 19 160.26 53.91 175.00  161.06 77.10 62.00 245.00 183.00 -0.01    -1.21 12.37
wt     3 19   3.77  0.78   3.52    3.75  0.45  2.46   5.42   2.96  0.98     0.14  0.18
-------------------------------------------------------------------
am: 1vars  n   mean    sd median trimmed   mad   min    max  range skew kurtosis    se
mpg    1 13  24.39  6.17  22.80   24.38  6.67 15.00  33.90  18.90 0.05    -1.46  1.71
hp     2 13 126.85 84.06 109.00  114.73 63.75 52.00 335.00 283.00 1.36     0.56 23.31
wt     3 13   2.41  0.62   2.32    2.39  0.68  1.51   3.57   2.06 0.21    -1.17  0.17

总结:R软件自带的描述性统计函数为summary()但是它不能计算数据的偏度和峰度
psych包中的descrebe()函数含有大部分统计性函数而且相对于summary()函数也包括其没有的数据的偏度和峰度
by()函数可以进行分组计算描述性统计
psych包中的describeBy()函数也可以分组计算描述性统计但是它不指定统计函数,其返回结果和describeBy()中包含的函数是一样的只是进行了分组计算

R语言描述性统计函数总结相关推荐

  1. R语言描述性统计分析:相关性分析

    R语言描述性统计分析:相关性分析 相关性分析:pearson.spearman.kendall 相关性系数的显著性检验: 偏相关性分析: library(ISwR) attach(thuesen) c ...

  2. R语言描述性统计分析:假设检验

    R语言描述性统计分析:假设检验 单样本t检验: 双样本t检验: 方差齐性检验: 配对样本t检验: 单样本Wilcoxon符号秩检验: 两样本Wilcoxon符号秩检验: daily.intake &l ...

  3. R语言描述性统计分析:使用epiDisplay包的summ函数获取dataframe数据中每个变量的常用统计量、对每个变量进行汇总统计

    R语言描述性统计分析:使用epiDisplay包的summ函数获取dataframe数据中每个变量的常用统计量.对每个变量进行汇总统计 目录

  4. R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值

    R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值 目录 R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值

  5. R语言频数统计函数和独立性检验函数

    目录 1. 频数统计函数 1.1 数据分组 1.2 频数统计 1.2.1 一维 1.2.2 二维 2. 独立性检验函数 1. 频数统计函数 1.1 数据分组 我们要进行频数统计,首先要利用因子对数据进 ...

  6. R语言-频数统计函数

    R如何对数据进行分组 1. factor()函数 > mtcars$cyl <- factor(mtcars$cyl) > mtcars$cyl[1] 6 6 4 6 8 6 8 4 ...

  7. R语言入门第五集 实验四:数据分析

    R语言入门第五集 实验四:数据分析 一.资源 [R语言]R语言函数练习--东北大学大数据班R实训第四次作业 R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍 ...

  8. r语言参数fig=c(),干货︱R语言绘图—基础图形参数整理

    继上一期的文章[干货丨零基础学习 R 语言?]小编在介绍了R语言基础入门(包括R的安装和载入.数据导入和导出方法等),在这一期小编继续为你挖掘R语言的巧妙用处,跟大家探讨如何创建和保存图形,如何修改图 ...

  9. R语言之Rstudio 导入包

    查找 以readxl为例子 Rstudio代码操作 install.packets("readxl") # " "引号内输入包名 library() #查阅当前 ...

最新文章

  1. cloud自动发卡平台cloudfaka_open-cloud基于springcloud、oauth2、nacos打造的微服务开放平台...
  2. 目标检测--A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection
  3. 【Python】创建和使用类
  4. STL源码剖析---红黑树原理详解
  5. Windows驱动开发学习笔记(七)—— 多核同步内核重载
  6. 机器人学习--机器人仿真环境汇总
  7. java怎么把system.out的东西输出到文件上
  8. mysql etl工具有哪些_常见ETL工具一览,你知多少?
  9. Zabbix 3.0 部署监控 [二]
  10. Php数组面包屑导航,thinkphp实现面包屑导航(当前位置)例子分享
  11. File 对象 创建,判断,
  12. jQueryQQ音乐动态轮播图
  13. django 一个项目多个App项目搭建
  14. 卡西欧计算机如何计算矩阵乘法,矩阵乘法计算器
  15. java钟表动画_js实现一个简单钟表动画(javascript+html5 canvas)
  16. 解决国外链接下载软件速度慢的方法
  17. Pycharm 快捷键 整理
  18. 网课查题API接口(免费)
  19. 3D角色模型欣赏:战斗类CG模型武士和风设计欣赏
  20. c语言中输出1st,高等学校计算机等级考试C语言模拟试题1st-all.doc

热门文章

  1. Java JVM 虚拟机调优样本 tomcat setenv.sh for jvm8_php_sir_新浪博客
  2. Flask框架之Jinja 2模板引擎
  3. 制作一个简单HTML传统端午节日网页(HTML+CSS)7页 带报告
  4. 集简云 x 度量科技丨打通企业微信OA审批与招银云直联,实现支付信息自动同步网银系统
  5. 什么是ZigBee,他的特点是哪些?
  6. python笛卡尔_用python计算笛卡尔坐标
  7. JVM GC日志解析
  8. 南京信息工程大学计算机专业是几本,南京信息工程大学是211还是985
  9. resampling method
  10. android replaceall,javascript replaceAll方法