在统计学中,对定量资料(连续变量或者数值变量)的统计描述主要包括集中趋势和离散趋势两个方面。其中集中趋势包括均数、中位数、众数等指标,离散趋势包括方差、标准差、分位数(以上下四分位数最为常用)、最大值、最小值等指标。这些指标在R语言中都有相应的函数。

data<-c(1,2,3,4,5,6,7,8,9,10,11)
mean(data)    #均值
median(data)  #中位数
var(data)     #方差
sd(data)      #标准差
min(data)     #最小值
max(data)     #最大值
range(data)   #范围
diff(range(data)) #全距
quantile(data,0.25)#下分位数
quantile(data,0.75)#上四分位数
scale(data)  #对数据进行中心化处理,默认均值为0,标准差为1的中心化处理

当然,在实际数据分析过程中,我们会采用批量计算函数给出相应变量的各种指标。summary()、describe()、describeBy()等函数。

summary()函数可以查看变量的最小值,下四分位数,中位数,均值,上四分位数,最大值这些指标。

> summary(data)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0     3.5     6.0     6.0     8.5    11.0

 psych包中的describe()函数可以得到非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误这些指标。describBy()函数可以添加分组变量,分组查看各变量的统计描述指标。

> library(psych)
> describe(data)
   vars  n mean   sd median trimmed  mad min max range skew kurtosis se
X1    1 11    6 3.32      6       6 4.45   1  11    10    0    -1.53  1


> myvars<-c("mpg","cyl")
> describe(mtcars[myvars]) #可查看多个变量的统计描述指标
    vars  n  mean   sd median trimmed  mad  min  max range  skew kurtosis   se
mpg    1 32 20.09 6.03   19.2   19.70 5.41 10.4 33.9  23.5  0.61    -0.37 1.07
cyl    2 32  6.19 1.79    6.0    6.23 2.97  4.0  8.0   4.0 -0.17    -1.76 0.32


> describeBy(mtcars[myvars], list(am=mtcars$am))      #分组列出多个变量的统计描述指标

 Descriptive statistics by group 
am: 0
    vars  n  mean   sd median trimmed  mad  min  max range  skew kurtosis   se
mpg    1 19 17.15 3.83   17.3   17.12 3.11 10.4 24.4    14  0.01    -0.80 0.88
cyl    2 19  6.95 1.54    8.0    7.06 0.00  4.0  8.0     4 -0.95    -0.74 0.35
----------------------------------------------------------------------------------- 
am: 1
    vars  n  mean   sd median trimmed  mad min  max range skew kurtosis   se
mpg    1 13 24.39 6.17   22.8   24.38 6.67  15 33.9  18.9 0.05    -1.46 1.71
cyl    2 13  5.08 1.55    4.0    4.91 0.00   4  8.0   4.0 0.87    -0.90 0.43

可以使用sapply()函数,把需要呈现的统计描述指标加入其中即可分析。结果呈现更具有针对性。

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))
}
myvars <- c("mpg", "hp", "wt")
sapply(mtcars[myvars], mystats)


pastecs包中stat.desc()函数,可计算其中所有值、空值、缺失 值的数量,以及最小值、最大值、值域,还有总和、 中位数、平均数、平均数的标准误、平均数置信度为95% 的置信区间、方差、标准差以及变异系数、 偏度和峰度(以及它们 的统计显著程度)和Shapiro-Wilk 正态检验结果。可以根据显示需要,设置里面的参数(basic=,desc=,norm=)。


> library("pastecs")

> myvars <- c("mpg", "hp", "wt")
> 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],basic=T,desc = T,norm =T )
                     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

综上可见,对于定量变量的统计描述的函数有很多,在使用过程中,我们可以根据自己的数据呈现需要选择相应的软件包和相应函数进行统计描述分析。