实验目的
掌握R语言对数据集进行描述性统计的函数及用法
实验原理
在R中经常使用summary()函数进行描述性统计,它会显示数据框每一列的平均值,中位数,四分位数等统计量。另外还有其他函数可以返回数据集中的描述性统计量,用户也可以自定义函数
实验步骤
本节教程使用iris数据集进行操作,下面的操作返回iris数据集中每一列的最小值、最大值、中位数、四分位数、均值等统计量
> summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50
Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
cor()函数可以返回两向量的回归系数、cov()函数计算两向量之间的协方差、IQR()返回四分位距、mean()函数计算均值、median()函数计算中位数、range()函数返回最小值和最大值、sd()函数计算标准差、var()函数计算方差,举例如下:
> x <- iris$Sepal.Length
> y <- iris$Sepal.Width
> cor(x,y)
[1] -0.1175698
> cov(x,y)
[1] -0.042434
> IQR(x)
[1] 1.3
> mean(x)
[1] 5.843333
> median(x)
[1] 5.8
> range(x)
[1] 4.3 7.9
> sd(x)
[1] 0.8280661
> var(x)
[1] 0.6856935
如果要对数据框中的多个变量使用相同的统计函数,可以用apply()。比如在接下来的例子中,就用apply()对iris数据集的前三个变量进行了标准差计算,另外还有其他类似的函数比如lapply() 以及 sapply()可以对列表和向量运用各种函数
> apply(iris[,c(1:3)], MARGIN=2, FUN=sd)
Sepal.Length Sepal.Width Petal.Length
0.8280661 0.4358663 1.7652982
此外,也可以自定义函数对变量进行统计运算,在下例中,运用R语句定义了一个函数my_range(),来计算由range()函数返回的最大值与最小值之差
> my_range <- function(v) {range(v)[2] - range(v)[1]}
> my_range(iris$Petal.Length)
[1] 5.9