R语言笔记 计算描述性统计量的函数
更新:HHH   时间:2023-1-7


其中包括Hmisc、pastecs和psych。由于这些包并未包括在基础安装中。


> library(Hmisc)

> describe(mtcars[vars])

mtcars[vars] 


 3  Variables      32  Observations

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

mpg 

      n missing  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95 

     32       0      25       1   20.09   12.00   14.34   15.43   19.20   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  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95 

     32       0      22       1   146.7   63.65   66.00   96.50  123.00  180.00  243.50  253.55 


lowest :  52  62  65  66  91, highest: 215 230 245 264 335 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

wt 

      n missing  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95 

     32       0      29       1   3.217   1.736   1.956   2.581   3.325   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 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


--------------------------------------------------------------------


包中有一个名为stat.desc()的函数,它可以计算种类繁多的描述性统计量。使用

格式为:

> stat.desc(mtcars[vars],basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)

其中的x是一个数据框或时间序列。若basic=TRUE(默认值),则计算其中所有值、空值、缺失

值的数量,以及最小值、最大值、值域,还有总和。若desc=TRUE(同样也是默认值),则计算

中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系

数。最后,若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们

的统计显著程度)和Shapiro–Wilk正态检验结果。这里使用了p值来计算平均数的置信区间(默

认置信度为0.95)

> library(pastecs)

> stat.desc(mtcars[vars])

          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



------------------------------------------------

library(psych)

 describe(mtcars[vars])

    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



在前面的示例中,psych包和Hmisc包均提供了名为describe()的函数。R如何知道该

使用哪个呢?简言之,如代码清单7-5所示,最后载入的程序包优先。在这里,psych在

Hmisc之后被载入,然后显示了一条信息,提示Hmisc包中的describe()函数被psych

包中的同名函数所屏蔽(masked)。键入describe()后,R在搜索这个函数时将首先找

到psych包中的函数并执行它。如果你想改而使用Hmisc包中的版本,可以键入

Hmisc::describe(mt)。这个函数仍然在那里。你只是需要给予R更多信息以找到它


返回编程语言教程...