2023年12月8日发(作者:)
第 1 章
R语言简介
R软件最初是由奥克兰(Auckland)大学的Robert Gentleman和Ross Ihaka及其他志愿者在1997年前后开发的一个统计分析系统.其前身是贝尔实验室所开发的S语言.R语言现在由R开发核心小组(R Development Core Team)维护,他们的开发维护完全出于自愿,将全球优秀的统计软件打包提供给大家共享.R软件免费下载网址:/或.
1.1 R语言的特点
自诞生至今不到20年的时间,R语言已经成为全球众多统计学者和统计工作者的首选统计分析软件.R语言最大的特点或优势在于:它是一款免费的统计计算软件,并有着强大的软件维护和扩展团队.R语言的主要特点还包括:
(1)不受操作系统的限制.R语言可以在Windows,UNIX,Macintosh操作系统上运行,这就意味着R语言几乎可以在任何一台计算机上运行.本书主要基于Windows 操作系统上R软件的使用进行介绍.
(2)R语言是一种解释性的编程语言.它同Matlab一样,不需要编译即可执行代码.
(3)拥有完善的帮助系统.R软件内嵌一个非常实用的帮助系统:包括随软件所附的pdf帮助文件(An Introduction to R)和Html帮助文件.另外,通过help命令可以随时了解R软件所提供的各类函数的使用方法.
(4)具有强大的绘图系统.R支持的主要图形系统有:基础图形(base)、网格图形(grid)、lattice图形和ggplot2.这些系统使得数据可视化更为便捷.此外,R软件生成的图形文件可以保存为各种形式的文件(jpg,png,bmp,ps,pdf,emf,xfig,pictex等),有利于进一步分析与使用.
(5)具有强大的统计分析功能.R语言的部分功能(大约25个程序包)嵌入在R语言底层,其他都能以Package形式下载,几乎涵盖了现有的全部统计分析方法.
1.2 R语言运行平台
R软件的运行平台为:RGui(graphic user’s interface).启动R软件,我们看到RGui,即图形用户界面的主窗口,见图1.1.
1 2
R语言与现代统计方法
图1.1 R软件的运行平台:RGui
R软件的运行平台RGui由三部分组成:主菜单、工具条、R Console(R语言运行窗口).
R Console:绝大部分工作都是通过在这里发布命令来完成的,包括数据集的建立、数据的读取、作图等,在这里也可以得到在线帮助.
1.2.1 工作目录
工作目录是R语言数据输入输出的默认位置,默认状态下是软件安装时的目录.R的很多操作,包括读写数据,打开、保存脚本文件,读取保存工作空间的镜像等都是在工作目录中进行的.为管理方便,在首次运行R软件前,可以建立一个自己的目录,启动R后将工作目录改变到自己的目录上.在Windows版本中,更改工作目录可以利用菜单方式,选择“文件”|“改变工作目录”选项,选择自己的目录即可,见图1.2.
另外,也可以利用getwd()命令获得当前工作目录,并直接利用setwd()命令改变当前工作目录.例如:
> getwd()
[1] "C:/Users/tongji/Documents"
> setwd("C:/Users")
> getwd()
[1] "C:/Users"
需要说明的是,在Windows操作系统中,以不同的方式打开R软件,如通过桌面快捷方式或双击文档中的.RData文件运行R软件,其工作目录可能会不同.因此,每次运行R软件时,需要注意工作目录问题.
第1章 R语言简介
3
图1.2 主窗口文件菜单
命令()或者dir()可以用来显示当前工作目录中的所有文件和文件夹.例如:
> ()
[1] "360js Files" "Adobe" "" "Downloads"
[5] "My eBooks" "My Music" "My Pictures" "My Videos"
[9] "save_" "SPSS_"
可以看到,在当前工作目录下,共有10个文件或文件夹.
1.2.2 工作空间
对于初学者而言,工作空间(workspace)可以理解为R当前的工作环境或工作场所,它存储着在运行R时所定义的变量、向量、矩阵等所有的对象与函数.很多时候我们希望在下次运行R时能够继续以前的工作,这时只需将工作空间保存到一个镜像中,下次运行R时载入工作空间镜像即可.
工作空间存放在当前工作目录下的一个后缀名为.RData的文件中,当启动R时,工作空间将自动创建.当直接单击运行窗口R Console中的“关闭”按钮或利用命令
>q()
退出R时,系统将提示我们是否需要保存工作空间.
如果我们想在不退出R时保存工作空间,可以选择“文档”|“保存工作空间”选项(见图1.2)或利用命令
>()
来保存.以后运行R时可以通过选择“文件”|“加载工作空间”选项(见图1.2)或命令
>load()
加载,进而可以继续前一次的工作.
4
R语言与现代统计方法
1.2.3 历史命令
在运行R时,我们往往在运行窗口R Console中交互式输入很多条命令.使用上行箭头或下行箭头可以查看已输入命令的历史记录,这样可以选择某条命令进行适当修改后再次运行,而不必烦琐地重复录入.
选择“文档”“保存历史”|选项可以将运行窗口中的所有记录保存到后缀名为.RHistory的文件中;选择“文档”|“加载历史”选项(见图1.2),可以载入历史命令.利用函数
>history()
也可以显示最近使用过的命令,默认值为最近的25条.也可以自由定制显示更多条,例如:
>history(50)
可以显示最近使用过的50条命令;利用命令
> savehistory("myhistory")
可以将命令保存在文件名为ry的文件中;命令
> loadhistory("myhistory")
将载入文件名为ry的命令历史.
1.2.4 帮助系统
学习并较好地掌握一门语言或软件,快捷方便的帮助系统是其关键.R软件提供了十分强大的帮助系统,见图1.3.
图1.3 R中的“帮助”菜单
(1)在R用户界面中,“帮助”菜单中的“R FAQ”选项(见图1.3)给出了关于R软 第1章 R语言简介
5
件中的一些常见问题,FAQ是Frequently Asked Questions的缩写,单击该选项,则以网页的形式给出R软件中一些常见的问题;选项“Windows下的R FAQ”也是以网页的形式给出Windows操作系统下R软件使用的一些常见问题.FAQ随着R软件版本的更新而更新.
(2)R软件中自带8本pdf格式的帮助手册,分别是An Introduction to R,R reference,R Data Import/Export,R Language,Definition,Writing R Extensions,R Internals,R Installation
and Administration和Sweave User.这些手册为R的学习与使用提供了极大的便利,初学者可以着重看第一本,即An Introduction to R.
(3)利用“帮助”菜单中的“Html 帮助”选项或者通过命令
>()
打开html帮助系统(见图1.4).在该帮助系统中可以很方便地找到所需要的文档.
图1.4 Html帮助系统
(4)可以通过函数help()得到相应函数的帮助,例如命令
>help(plot)
或者
>?plot
可以得到函数plot的说明.help()在默认状态下,只会在载入内存的程序包中搜索,即选 6
R语言与现代统计方法
项es默认值为FALSE.我们可以通过选项设置改变搜索范围,例如:
> help("bs",es=TRUE)
> help("bs",package="splines")
上述两条命令分别表示在所有程序包及只在“splines”包中搜索函数“bs”的说明文件,可以利用该方法学习程序包的使用方法和注意事项.
需要说明的是,如果我们对某个函数名不是特别熟悉,可以利用函数apropos()或()等进行查找,例如:
> apropos("fun")
该命令用于找出名字中含有指定字符串“fun”的函数,但只会在被载入内存中的程序包中搜索.而
> ("fun")
则列出了所有帮助页面中的含有字符串“fun”的函数.
利用函数demo()可以得到R软件提供的几个示例,例如:
> demo(package = "stats")
将给出程序包“stats”包含的程序的示例(见图1.5).命令
> demo(smooth)
给出函数smooth()的演示示例.
图1.5 程序包stats的演示示例
第1章 R语言简介
7
1.3 R程序包的安装使用
1.3.1 R软件的下载与安装
前面曾经提及过,R软件的安装程序包(base installation)可以从网站www.r-
/上免费下载.该网站列出了包括中国、美国、加拿大等全球主要国家的一些镜像点,我们可以选择最近的一个镜像点(需要说明的是,CRAN的官方服务器位于奥地利的维也纳经济学院,全球的R使用者都可以从官方服务器下载,但下载速度比较慢,因此尽量避免从官方服务器下载),例如打开网址/mirrors/CRAN/,选择Download R for Windows,在新打开的页面中(见图1.6),选择base选项即可下载.R软件核心小组每过一段时间就会推出更新版本,目前的版本是R 3.2.3.R软件的安装非常简单,双击下载的安装程序,然后按照系统提示完成相应操作即可.
图1.6 R软件下载页面
1.3.2 程序包的安装与加载
程序包(package)可以理解为由函数、数据、预编译代码构成的集合,而存储程序包的文档称为库(library).R软件自带了一些基本的程序包,如stats、datasets、graphics等程序包,这些程序包可以直接使用.除了基本的程序包外,CRAN还提供了大量的其他程 8
R语言与现代统计方法
序包供我们下载使用.截至2016年8月27日,CRAN上现有8960个程序包可供下载,当然你也可以建立自己的程序包.这些程序包下载安装以后,需要载入激活后才能使用.
在联网条件下,选择“程序包”|“安装程序包...”选项(见图1.7)或者利用函数es()可以完成程序包安装.这里同下载R安装程序类似,也需要选择最近的镜像点(如果你想下载速度快一些),在出现的程序包列表中选择需要的程序包即可进行下载安装.假若你已经知道自己需要安装的程序包的名字,例如,程序包bayesGARCH,也可以直接利用命令
> es("bayesGARCH")
完成程序包bayesGARCH的下载安装.
图1.7 R中的“程序包”菜单
程序包仅需安装一次即可一直使用.同R的版本经常更新一样,程序包也经常被其发布者更新,选择“程序包”|“更新程序包...”命令或利用函数es()可以完成程序包的更新.
除了R自带的程序包外,其他新安装的packages在每次使用前必须先载入.选择“程序包”|“加载程序包...”命令(见图1.7)或者利用函数library()可以完成程序包载入.例如,命令
> library(bayesGARCH).
即可完成程序包“bayesGARCH”的载入.
1.3.3 与程序包有关的一些函数
library():显示已经安装的程序包列表.
第1章 R语言简介
9
.libPaths():显示库所在的目录.
search():显示已经加载可以使用的程序包列表.
data():返回R的内置数据集.例如:
> data() #返回datasets程序包中的数据集
> data(package="bayesGARCH") #返回程序包中的数据集
1.4 初识R语言
R软件的默认命令提示符为“>”,表示正在等待输入命令.如果一个语句在一行中输不完,按回车键,系统会自动在续行中产生一个续行符“+”.在同一行中,输入多个命令语句时,需要用分号将其隔开.
例如:
> n<-1 #给变量n赋值为1
> n #显示变量n的内容,同print(n)
[1] 1
其中方括号[1]表示从变量n的第一个元素显示.
R软件中的函数总是带有圆括号,即使括号中没有内容,例如ls().如果直接输入函数名而不输入圆括号,R则会自动显示该函数的一些具体内容.
例如:
> ls() #列出当前工作空间中的对象(Object)
[1] "n"
> ls #显示函数ls()的内容
限于篇幅,这里函数ls()的内容没有给出.R软件中进行的所有操作都是针对存储活动内存(即当前工作空间)中的对象的.所有能够使用的R函数都被包含在一个库(Library)中,该库存放在R安装文件下的library目录下.
1.4.1 对象的命名
R中的对象是一个抽象的概念,可以理解成以不同形式存储的数据,如向量、矩阵、数据框等.R中对象的命名必须以一个字母开头,其余可以是数字、字母、点号“.”以及下划线.以点号开头的变量名比较特殊,应该尽量避免.在R语言中,字母大小写有区别,因此Height和height代表两个不同的对象.
在R语言中,有些变量名具有特定含义,例如F或FALSE、T或TRUE分别表示逻辑取值为“真”和“假”,若重新定义这些变量,容易引起歧义,命名过程中应尽量避免.
1.4.2 对象的赋值
一个对象可以直接由赋值来定义,也可以先定义对象,再进行赋值.可以用“=”或“<-”来赋值,也可以用命令assign()实现赋值,例如:
> m1<-10 #定义对象m1,并赋值为10
10
R语言与现代统计方法
> m1
[1] 10
> m2=20 #定义对象m2,并赋值为20
> m2
[1] 20
> assign("m3",100) #定义对象m3,并赋值为100
> m3
[1] 100
其中,“#”号及其后的内容为注释语句,不进行运算.在编写程序时,为增加程序的可读性,可添加必要的注释语句.例如:
> math<-c(90,85,68,88,92) #定义了一个对象,即包含5个元素的向量
> math
[1] 90 85 68 88 92
1.4.3 一个实例
下面通过一个R软件内置的数据集women来说明R软件是如何进行统计分析的.该数据集在datasets程序包中,该程序包随着R的启动而自动加载,因此不需要再次载入.
> women #显示数据集women中的全部观测值
height weight
1 58 115
2 59 117
3 60 120
4 61 123
5 62 126
6 63 129
7 64 132
8 65 135
9 66 139
10 67 142
11 68 146
12 69 150
13 70 154
14 71 159
15 72 164
该数据集共包含了15组数据,记录的是15名年龄在30岁到39岁的美国妇女的身高和体重.
> head(women)
height weight
1 58 115
2 59 117
3 60 120
4 61 123
5 62 126
6 63 129
即命令head(women)仅显示数据集women中的前6个观测值.类似地,tail(women)仅显示数据集women中的最后6个观测值.
> names(women) #显示数据集women中的变量名
第1章 R语言简介
11[1] "height" "weight"
> mean(women$height)
[1] 65
以上命令用于计算15名妇女的平均身高.其中,对象women$height表示women数据集中的height变量.也可以先将数据集women激活,使之成为当前的数据集,此时,women中的变量就可以直接被使用了.例如:
> attach(women) #激活women数据集,使之成为当前数据集
> mean(height)
[1] 65
> var(height) #计算身高的方差
[1] 20
> var(weight) #计算体重的方差
[1] 240.2095
> sd(weight) #计算体重的标准差
[1] 15.49869
> summary(weight)
Min. 1st Qu. Median Mean 3rd Qu. Max.
115.0 124.5 135.0 136.7 148.0 164.0
> plot(height,weight) #画出height和weight的散点图(见图1.8)
> detach(women) #从活动内存中清除数据集
图1.8 height和weight的散点图


发布评论