R语言操作指南 作为《数理统计》教材的软件操作指南,本讲义主要选用R语言的学习入门操作。R语 言是一种界面友好容易上手的软件,通过本讲义学习,使得读者能够编制各章节中出现的例 题和习题,并通过软件进行演示。 1 R的基本介绍 11R的起源 R是S语言的一种实现。S语言是由AT&T贝尔实验室开发的一种用来进行数据探索 统计分析、作图的解释型语言。最初S语言的实现版本主要是s-PLUS。 S-PLUS是一个商业软 件,它基于S语言,并由 MathSoft公司的统计科学部进一步完善。后来 Auckland大学的 Robert Gentleman和 Ross ihaka及其他志愿人员开发了一个R系统。R的使用与 S-PLUS有很多类 似之处,两个软件有一定的兼容性 12R是免费的 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源 代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R是向量操作语言,不同 于C语言。 R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统; 数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的 统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实现分支、循环,用 户可自定义功能。R是一个免费的自由软件,它有UNⅨ、LNUX、 Macos和 WINDOWS版 R官方网站地址:htt://www.r-proiect.。org,在官网上可以免费下载,到2017年4月的 最新版本是3.33,除了安装程序,还有R语言程序包和技术支持文档。在R的安装程序中 只包含了8个基础模块,其他程序包可以通过R语言世界各地的镜像网站CRAN获得。 目前R语言由于其广泛的应用和推广性,在我国,每年由统计之都举办中国的“R语言 会议”,进行积极免费推广R语言的应用和研究,产生了深刻影响力。 13R的特点 1.有效的数据处理和保存机制。 2.拥有一整套数组和矩阵的操作运算符 3.一系列连贯而又完整的数据分析中间工具 4.图形统计可以对数据直接进行分析和显示,可用于多种图形设备 5.一种相当完善、简洁和高效的程序设计语言。它包括条件语句、循环语句、用户自 定义的递归函数以及输入输出接口。6.R语言是彻底面向对象的统计编程语言
1 R 语言操作指南 作为《数理统计》教材的软件操作指南,本讲义主要选用 R 语言的学习入门操作。R 语 言是一种界面友好容易上手的软件,通过本讲义学习,使得读者能够编制各章节中出现的例 题和习题,并通过软件进行演示。 §1 R 的基本介绍 1.1 R 的起源 R 是 S 语言的一种实现。S 语言是由 AT&T 贝尔实验室开发的一种用来进行数据探索、 统计分析、作图的解释型语言。最初 S 语言的实现版本主要是 S-PLUS。S-PLUS 是一个商业 软 件,它基于 S 语言,并由 MathSoft 公司的统计科学部进一步完善。后来 Auckland 大学的 Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个 R 系统。R 的使用与 S-PLUS 有很多类 似之处,两个软件有一定的兼容性。 1.2 R 是免费的 R 是用于统计分析、绘图的语言和操作环境。R 是属于 GNU 系统的一个自由、免费、源 代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R 是向量操作语言,不同 于 C 语言。 R 是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统; 数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的 统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实现分支、循环,用 户可自定义功能。 R 是一个免费的自由软件,它有 UNIX、LINUX、MacOS 和 WINDOWS 版 本。 R 官方网站地址:http://www.r-project.org ,在官网上可以免费下载,到 2017 年 4 月的 最新版本是 3.3.3,除了安装程序,还有 R 语言程序包和技术支持文档。在 R 的安装程序中 只包含了 8 个基础模块,其他程序包可以通过 R 语言世界各地的镜像网站 CRAN 获得。 目前 R 语言由于其广泛的应用和推广性,在我国,每年由统计之都举办中国的“R 语言 会议”,进行积极免费推广 R 语言的应用和研究,产生了深刻影响力。 1.3 R 的特点 1. 有效的数据处理和保存机制。 2. 拥有一整套数组和矩阵的操作运算符。 3. 一系列连贯而又完整的数据分析中间工具。 4. 图形统计可以对数据直接进行分析和显示,可用于多种图形设备。 5. 一种相当完善、简洁和高效的程序设计语言。它包括条件语句、循环语句、用户自 定义的递归函数以及输入输出接口。 6.R 语言是彻底面向对象的统计编程语言
6.R语言和其它编程语言、数据库之间有很好的接口 7.R语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差。 8.R语言具有丰富的网上资源 14R界面 R语言常用的编译方式主要基于RGU和 R studio两种,本讲义主要基于RGU的界面方 式进行讲解R的操作和学习。 R队6 回图回 R脚本编辑 RE掌工作2221计可所(研)ge员,用 dy《-day8+1+2esp(1) 新建程序本ctN加截程序包 打开程序本Ct0设定CRAN像 :1ct0)t《 另存为 安装柱序包 eday(20501 使新程序包 aleada: < funetion ()I ciratday ( ve 关闭程序本 从本地冲文件安装程序包 tranny faraday Bca:May(c(,21,3,30,21,30,3,31,30,31,30,3 fer(month in 4::2) eat('Sun' Tha’,m, Sa:in" lyear)) oneday(2]. 图11R的GU界面 由图1.1可以看出,R语言的操作主要通过命令行窗口的交互式运行方式和脚本编辑代 码后再进行编译运行两种方式。实际对于一个复杂的程序而言,建议采用脚本编辑窗口,其 优势在于可以反复编辑,更新完善程序,脚本文件保存的扩展名为.R文件 15符号惯例 为了便于更好学习R语言,针对软件中出现的符号惯例,在这里进行简要介绍一下,具 体如表1。 表11符号惯例及其含义 符号含义 命令提示符,提示可以输入新的命令 命令延续到下一行,表示上一行的代码不完整,需要继续录入 注释符,表示注释的开始(本课件也使用#注释) [n] 行结果的第一个元素的位置是 例11 >2^#命令未完成,下行以+提醒继续输入命令 #+由系统自动生成,请勿画蛇添足
2 6. R 语言和其它编程语言、数据库之间有很好的接口。 7. R 语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差。 8. R 语言具有丰富的网上资源。 1.4 R 界面 R 语言常用的编译方式主要基于 RGUI 和 R studio 两种,本讲义主要基于 RGUI 的界面方 式进行讲解 R 的操作和学习。 图 1.1 R 的 GUI 界面 由图 1.1 可以看出,R 语言的操作主要通过命令行窗口的交互式运行方式和脚本编辑代 码后再进行编译运行两种方式。实际对于一个复杂的程序而言,建议采用脚本编辑窗口,其 优势在于可以反复编辑,更新完善程序,脚本文件保存的扩展名为.R 文件。 1.5 符号惯例 为了便于更好学习 R 语言,针对软件中出现的符号惯例,在这里进行简要介绍一下,具 体如表 1。 表 1.1 符号惯例及其含义 符号 含义 > 命令提示符,提示可以输入新的命令 + 命令延续到下一行,表示上一行的代码不完整,需要继续录入 # 注释符,表示注释的开始(本课件也使用#注释) [n] 运行结果的第一个元素的位置是 例 1.1 > 2^ #命令未完成,下行以+提醒继续输入命令 + 3 #+由系统自动生成,请勿画蛇添足
8 #输出结果,一般都以[1]开始 >2:5 #通过:生成从2到5整数数列 [2345#[1表示结果中的2位置为1 R是交互式计算语言,具有强大计算器功能,图12主要展示R语言作为计算器的强大 能力和便宜性 2 >b<-5 a r [1110 1]0.唾 >b/a 1]2.5 >b鲁号a 1]1 >b t/s a= vs b/a [112 >n<-1:10 >m^2 [1114916253649641100 1 1282565 >m^2=2^n [1] FALSE TRUE FALSE TRUE FALSE FALSEFALSE FALSE FALSEFALSE >c(sin(a), cos(b)) [1]0.90929740.2836622 图12作为计算器的R语言 此外,由于R语言中的功能强大,常用的命令较多,R提供了一套完整的帮助系统,供 用户查阅,具体可在菜单中的“帮助”一栏找到,此外,在官方网站上也提供很多技术支持文 档,常用于查询命令帮助的命令为help()或?()等 §2基础知识 21赋值 通过赋值语句将一个数值或一些数据或表达式存储到变量中,比如某种商品价格为15 元,赋值给变量pie,具体如下,其中<-和=常用,建议<-,勿用 例21 price < 15 #“<-”赋值符号比较常用,表示将右边值赋值给左边变量 #等号“=”并不常用。 assign(" price",15)#此种方式并不常用,另外变量名要加引号 注:R语言区分大小写变量名 case sensitive),上面的代码中所得到的pice和Prce 是两个变量不是一回事初学者最容易犯这个错误
3 [1] 8 #输出结果,一般都以[1]开始 > 2:5 # 通过 : 生成从 2 到 5 整数数列 [1] 2 3 4 5 #[1]表示结果中的 2 位置为 1 R 是交互式计算语言,具有强大计算器功能,图 1.2 主要展示 R 语言作为计算器的强大 能力和便宜性。 图 1.2 作为计算器的 R 语言 此外,由于 R 语言中的功能强大,常用的命令较多,R 提供了一套完整的帮助系统,供 用户查阅,具体可在菜单中的“帮助”一栏找到,此外,在官方网站上也提供很多技术支持文 档,常用于查询命令帮助的命令为 help()或?()等。 §2 基础知识 2.1 赋值 通过赋值语句将一个数值或一些数据或表达式存储到变量中,比如某种商品价格为 15 元,赋值给变量 price,具体如下,其中<-和=常用,建议<-,勿用_。 例 2.1 price <- 15 # “<-”赋值符号比较常用,表示将右边值赋值给左边变量 Price = 15 # 等号“=”并不常用。 assign(“ price” , 15) #此种方式并不常用,另外变量名要加引号 注:R 语言区分大小写变量名(case sensitive),上面的代码中所得到的 price 和 Price 是两个变量不是一回事.初学者最容易犯这个错误
22数据对象 由一组数据构成的对象,称为向量。类似于线性代数中的向量概念。如 例2 year<1998:2006#year年份向量存储了从1998到2006年的时间信息 #查看当前系统的数据对象 数据对象常用属性有:姓名 names、长度 length、数据类型mode等. 例23 r)#查看year的取名 length(year)#查看year的长度 mode(yea r)#查看year类型 rm(year)#删除year向量 注:变量名不能含下划线,如 shanghai stat,表示将stat值附给 shanghai,取名可含 句点,如 shanghai stat。取名要有意义,如指标价格不要取名ⅹ或y,取名为pie含义明 确易懂。勿用内部函数名或常见命令名作为变量名 23运算 R的运算分为算术运算、比较和逻辑运算。我们常用的加减乘除乘方为算术运算,比较 数据大小就是比较运算,逻辑运算是用来判断命题或者条件是否成立,比如3>5这个条件就 不成立,R中返回逻辑变量值F( false),此外,若条件成立,称为逻辑真值,系统记为T(true). 逻辑变量所指即为F和T两种情况。 算术运算符号 加:+减::乘:*除:/乘方 例2 动手操作a+b,a-b,a'b,a/b和a^bora*b 注:由于系统指令符号并不含有×和÷,所以乘法和除法分别用相似的*和/来替代 此外乘方的符号为A,英语读为hat,也就是很形象在其上运算。**也表示乘方,即连乘。 24逻辑和比较运算 常用的比较运算符号和逻辑运算见表21和表22 表21比较运算符号表 等于不等于大于大于或等于小于小于或等于 >= 表22逻辑运算符号表
4 2.2 数据对象 由一组数据构成的对象,称为向量。类似于线性代数中的向量概念。如: 例 2.2 year<- 1998:2006 #year 年份向量存储了从 1998 到 2006 年的时间信息 ls() #查看当前系统的数据对象 数据对象常用属性有:姓名 names、长度 length、数据类型 mode 等. 例 2.3 names(year) #查看 year 的取名 length(year) #查看 year 的长度 mode(year) #查看 year 类型 rm(year) # 删除 year 向量 注: 变量名不能含下划线,如 shanghai_stat,表示将 stat 值附给 shanghai,取名可含 句点,如 shanghai.stat。取名要有意义,如指标价格不要取名 x 或 y,取名为 price 含义明 确易懂。勿用内部函数名或常见命令名作为变量名。 2.3 运算 R 的运算分为算术运算、比较和逻辑运算。我们常用的加减乘除乘方为算术运算,比较 数据大小就是比较运算,逻辑运算是用来判断命题或者条件是否成立,比如 3>5 这个条件就 不成立,R 中返回逻辑变量值 F (false),此外,若条件成立,称为逻辑真值,系统记为 T (true). 逻辑变量所指即为 F 和 T 两种情况。 算术运算符号 加: + 减: - 乘: * 除: / 乘方: ^ or ** 例 2.4 a<-4 b<-3 动手操作 a+ b, a-b, a*b, a/b 和 a^ b or a**b 注:由于系统指令符号并不含有×和÷,所以乘法和除法分别用相似的 *和/来替代。 此外乘方的符号为^,英语读为 hat,也就是很形象在其上运算。**也表示乘方,即连乘。 2.4 逻辑和比较运算 常用的比较运算符号和逻辑运算见表 2.1 和表 2.2 表 2.1 比较运算符号表 等于 不等于 大于 大于或等于 小于 小于或等于 == != > >= < <= 表 2.2 逻辑运算符号表
逻辑和 逻辑或 逻辑非 &向量,&&控制1向量,‖控制 注:注意==和=的区别,一个是赋值,一个是判断两变量相等 例 2.5 a1<-2 a2<-3 <-1:10 x>5&×<8 注:&和返回是向量每个元素逻辑运算结果,为一所有元为逻辑值的向量,而&&和 则为单独两个条件的逻辑运算结果,为一逻辑值。如果对向量使用此控制符号运算,则返回 第一个元素运算结果。 注:运行并分析a1==a2和a1=a2的结果,并分析这两行命令的结果不同原因。 25R包 package 程序包是R函数、数据、预编译代码以一种定义完善的格式组成的集合,称为库(brar R除了自带的系统包以外,更为强大的是各种扩展包。默认包在R启动后会自动加载, search 命令可以查询加载的包 在R菜单或使用 instal! package)会显示CRAN镜像站点,选择其一进行安装。 例 2.6 nstall packages(" glue")#安装gcus包 librarygclus) #加载 gclus包 help( package="gcus")#查询gcus包的帮助 注:CRAN是 Comprehensⅳ e R Archive Network简称,即R网站镜像站点,含有R的安 装软件源、学习资料和扩展包。建议选择美国或澳洲镜像进行下载安装 26数据类型 数据类型是指数据对象的单元(元素)的类型,即逻辑型( ogical)、数值型( numerical 复数型( complex)和字符型( character)。也可以是缺省值( missing value) 数值型的形式为实数,因此可以写成整数 (integer),小数( decimal fractions或科学计数 ( scientific notation)的方式,另外从有效位数分类为单精度( single)和双精度( double precision) 两种。 复数型为形如a+bi的复数,复数型数据常用函数为Mod(取模),Re(实部),m(虚部),Arg(幅 度)等 由于统计资料大多都是不完整的,缺省值就是应对这种情况而存在的,在R中的取值为 NA( not available,即这个数据缺值)
5 逻辑和 逻辑或 逻辑非 &向量,&&控制 |向量,||控制 ! 注:注意==和=的区别,一个是赋值,一个是判断两变量相等。 例 2.5 a1<-2 a2<-3 x<- 1:10 x>5 x>5 & x< 8 x>5 && x>8 注:&和|返回是向量每个元素逻辑运算结果,为一所有元为逻辑值的向量,而&&和|| 则为单独两个条件的逻辑运算结果,为一逻辑值。如果对向量使用此控制符号运算,则返回 第一个元素运算结果。 注:运行并分析 a1==a2 和 a1=a2 的结果,并分析这两行命令的结果不同原因。 2.5 R 包 package 程序包是 R 函数、数据、预编译代码以一种定义完善的格式组成的集合,称为库(library)。 R 除了自带的系统包以外,更为强大的是各种扩展包。默认包在 R 启动后会自动加载,search() 命令可以查询加载的包。 在 R 菜单或使用 install.package()会显示 CRAN 镜像站点,选择其一进行安装。 例 2.6 install.packages(“gclus”) #安装 gclus 包 library(gclus) #加载 gclus 包 help(package=“gclus”) #查询 gclus 包的帮助 注:CRAN 是 Comprehensive R Archive Network 简称,即 R 网站镜像站点,含有 R 的安 装软件源、学习资料和扩展包。建议选择美国或澳洲镜像进行下载安装。 2.6 数据类型 数据类型是指数据对象的单元(元素)的类型,即逻辑型(logical)、数值型(numerical)、 复数型(complex)和字符型(character)。也可以是缺省值(missing value)。 数值型的形式为实数,因此可以写成整数(integer),小数(decimal fractions)或科学计数 (scientific notation)的方式,另外从有效位数分类为单精度(single)和双精度(double precision) 两种。 复数型为形如a+bi的复数,复数型数据常用函数为Mod(取模), Re(实部), Im(虚部), Arg(幅 度)等.由于统计资料大多都是不完整的,缺省值就是应对这种情况而存在的,在 R 中的取值为 NA( not available,即这个数据缺值)