最近因为一些特殊的原因,开始接触R语言。越学越发现R语言的强大,原来完成一件事情是如此的简单。R语言中提供的工具和方法极大的方便了对一些数据的分析和处理的工作。对于一个要立志从事数据分析或者数据挖掘的学生或者工程师来说,学习R语言,确实可以达到如虎添翼的效果。
R语言有如下特点:
1. 有效的数据处理和保存机制;
2. 拥有一整套的数组和矩阵操作运算符;
3. 一系列连续而又完整的数据分析工具;
4. 图形统计可以直接对数据进行分析和显示,可用于多种图形设备;
5. R语言是一种相当完善、简洁和高效的程序设计语言。包括条语句,循环语句、用户自定义函数已经输入输出接口;
6. R语言是彻底的面向对象的统计编程语言;
7. R语言与其它编程语言以及数据库之间有良好的接口。
个人认为学习任何一门语言都应该从最基础的应用开始,尽量少去研究那些很偏,很怪,甚至是反人类的设计,因为那或许是语言本身的缺陷。
1、R语言的基本应用
对于R语言的安装我这里就不介绍了,因为基本上用过电脑的人都知道怎么安装软件。我先介绍一下怎么安装R语言的扩展包,做数据分析的时候肯定会用到扩展包的。
首先找到合适的镜像,然后选择合适的包安装就可以了,安装过程中会自动解决依赖关系。
2、写第一个R语言程序
R语言里最基本的两种数据类型是向量和矩阵。其实这两种数据类型都可以归结为数组,向量和矩阵也只不过是数组的一种特殊的表现形式。
(1)几个简单的入门级函数c(), length(), mode(), rbind(), cbind();
R语言的很多函数基本上都能做到见名知义。
先及时如下:
c():函数c()用于生成一个向量,向量的内容可以是数值,也可以是字符串,甚至可以是向量,但必须是同一种类型;
length():用于获取对象的长度;
mode():获得对象内的数据类型;
rbind():把两个向量按行组合成一个矩阵,两个向量的维数必须相同;
cbind():把两个向量按列组合成一个矩阵,两个向量的维数必须相同;
具体效果如下图所示:
(2)求平均值、和、连乘、最值、方差、标准差的函数
函数:mean(),sum(),min(),max(),max(),var(),sd(),prod()
var():用于求方差;
sd():用于求标准差;
prod():计算连乘。
效果入校:
(3)通过生成序列的方法来产生向量
几种比较直观的产生序列的方法如下:
通过序列来生成矩阵,其中a是一个1—100的向量:
通过seq()函数来生成序列:
产生字母序列:
which()函数的使用:
对新建的向量进行排序和反转(通过rev()函数和sort()函数实现)
(4)生成矩阵以及矩阵的计算
通过matrix()函数来生成矩阵,矩阵通过向量来产生:
通过t()实现矩阵的转置:
同型矩阵可以做加减运算:
满足条件的矩阵可以做乘法:
diag()函数用法示例:
对一个矩阵求逆solve(),首先通过正态分布生成函数,随机生成一个矩阵:
通过solve()解线性方程组:
求矩阵的特征值与特征向量:
R语言的循环与打印语句:
从外部读取R脚本并执行: