天天看点

R语言快餐教程(1) - 我们开始做统计吧R语言快餐教程(1) - 我们开始做统计吧

r语言是基于s语言的一种开源实现。s语言是贝尔实验室最早开发的一种用于统计的工具,后来成为商业的s-plus软件,是一种与sas和spss齐名的统计软件。

r语言的一个重要的优势就是r的生态,有大量的高质量的第三方的统计和算法相关的包。

首先我们学习如何在r中获取函数帮助和函数的例子。

help(函数名)

例:比如我们想知道标准差函数sd的用法:

输出就是标准差函数的用法信息:

r对于很多函数都有非常详尽的例子,对于图形类的函数,还图文并茂。

格式:example(函数名)

例:

大家可以试试图形的函数,如:

写好的r文件,可以通过source("filename.r")的形式装载进来。

可以通过save函数将r的内存数据保存到一个rdata文件中。下次再通过load()函数读取出来。

我们在学习r的语法之前,就先学习如何下载扩展包,因为将来有很多任务,我们就是要靠扩展包来完成的。

命令:install.packages("包名")

下载了之后,还需要在使用之前通过library()函数将库装载进来:

比如我要使用timedate库:

既然要处理数据,肯定要先从数据源读取数据。我们选取最简单的方式,从csv文件中读取。

假设我们有这样一个csv文件:

我们使用read.csv函数将其读到gun

c()函数用于生成向量。r语言中没有标量,看着来像标量的,其实也是长度为1的向量。

读到gun_data中后,就可以通过行和列来访问数据了。

可以用下标访问:

可以用双括号加下标访问:

可以用列名访问

ls()函数

下面我们开始学一些短平快的做统计的方法吧。

最简单的就是平均值了。所有的数求和,再除以个数就是了。

r语言中用mean()函数来求均值。

均值的问题在于,如果异常值比较大,会把均值拉高或拉低。而中位数是排序后处于中间的数,不受异常值的影响。

r语言中用median函数求中位数:

所谓五数,就是最小值,25%分位值,中位数,75%分位值,最大值。

这五个数可以通过fivenum()函数一次性求出来。

连同均值,summary函数能一次将6个数都求出来:

方差是各样本值与均值的差值的平方的和,反映了数据的离散程度。

方差的平方根是标准差。r语言用sd()函数求标准差

标准差是方差的平方根,我们用r语言验证一下:

果然跟sd()的值是一样的

离差是r中提供的一个特殊功能,它是相对于中位数的偏差的绝对值和:

离差用mad()函数计算。

如果结果不符合正态分布,我们希望知道是向左偏还是向右偏,这个值用偏度skewness来表示。r中用skewness()函数来计算。如果值>0为右偏,反之为左偏。

求偏度的函数,首先要通过install.packages来下载fbasics库,然后引入timedate库:

从中可以看以,这两组数据都向右偏。gun_data4偏得更厉害。

峰度是判断这个分布是比正态分布的图更尖还是更平。

r中用kurtosis()函数来计算

上面的两个分布都>0,说明比正态分布都要尖。