1.R简介
R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来 进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版 本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由 MathSoft公司的统计科学部进一步完善。后来Auckland大学的 RobertGentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系 统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费 、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系 统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工 具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实 现分支、循环,用户可自定义功能。
R是一个免费的自由软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是 可以免费下载和使用的,在那儿可以下载到R的安装程序、各种外挂程序和文档。在R的 安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。
R的特点
1.有效的数据处理和保存机制。
2.拥有一整套数组和矩阵的操作运算符。
3.一系列连贯而又完整的数据分析中间工具。
4.图形统计可以对数据直接进行分析和显示,可用于多种图形设备。
5.一种相当完善、简洁和高效的程序设计语言。它包括条件语句、循环语句、用户自 定义的递归函数以及输入输出接口。
6.R语言是彻底面向对象的统计编程语言。
7.R语言和其它编程语言、数据库之间有很好的接口。
8.R语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差。
9.R语言具有丰富的网上资源
2.向量
2.1 向量定义
具有大小和方向的量
2.2 生成向量:
2.2.1 c()
> c(1,4,3,5,6)
[1] 1 4 3 56
2.2.2 a:b
> 1:7
[1] 1 2 3 4 5 6 7
这两个效果都是产生向量
2.2.3 seq()
>seq(2,10) 产生向量元素从2到10的向量
[1] 2 3 4 5 6 7 8 9 10
>seq(2,10,by=2) 产生从2到10间隔为2的向量元素
[1] 2 4 6 8 10
间隔是2 生成的向量的元素是2+2n<=10 其中n=(0,1,2……) 如果没有by=2,那么缺省值by=1
>seq(2,10,length=6) 从2到10均匀产生6个向量元素
[1] 2.0 3.6 5.2 6.8 8.4 10.0
一共产生6个向量元素 其中第一个为向量元素为2,最后一个向量元素10,从2到10均分成6份
这个函数的by属性和length属性不能共存 这俩属性有冲突 如 :上面两个例子
2.2.4 letters
它不是一个函数 是26字母的数据集 多余的用NA表示
>letters[1:26] 产生26英文字母
[1] "a" "b""c" "d" "e" "f" "g""h" "i" "j" "k" "l""m" "n" "o" "p" "q" "r"
[19] "s" "t""u" "v" "w" "x" "y""z"
>letters[1:30]
[1] "a" "b""c" "d" "e" "f" "g""h" "i" "j" "k" "l""m" "n" "o" "p" "q" "r""s" "t" "u" "v" "w""x" "y"
[26] "z" NA NA NA NA
产生26个英文字母,多余的用NA表示
2.3 向量操作
2.3.1 which()
> x=seq(2,20,3) 产生从2到20间隔为3的向量元素
> x
[1] 2 5 811 14 17 20
>which.max(x) which.max(x)返回最大元素坐标
[1] 7
>which.min(x) which.min(x)返回最小元素下标
[1] 1
>which(x==11) which(x==11)返回向量元素为11的元素下标
[1] 4
>which(x>11) which(x>11)返回向量元素大于11的元素下标
[1] 5 6 7
>
which(x)函数返回向量元素下标
2.3.2 rev()
向量的元素逆置
> x=c(1,4,3,2,6,8)
> x
[1] 1 4 3 2 6 8
> rev(x)
[1] 8 6 2 3 4 1
>
2.3.3 sort()
向量的元素从小到大排序
> x=c(1,4,3,2,6,8)
> x
[1] 1 4 3 2 6 8
> sort(x)
[1] 1 2 3 4 6 8
补:
数组
一系列标量的集合,在R中是指数字的集合在R中先生成向量然后在转换成数组
X=c(1:10)生成一个向量 用dim(x)<-c(2,5) 其中c中的2是生成数组的行5是生成数组的列
> x=c(1:10)
> is.array(x)
[1]FALSE x不是数组
> dim(x)=c(2,5) 将x转化成一个二维数组
> is.array(x) x是数组
[1] TRUE
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
>
生成一个二维数组