1 R语言基本知识
1基本知识
1.1系统简介
那么R到底是什么?或者说,R到底是做什么用的?从不同的角度出发,对R会有不同的描述。
从使用角度,R是一个有着统计分析功能及强大作图功能的软件,在GNU协议General Public Licence4下免费发行。
从编程角度,R语言是面向对象的统计编程语言,是由AT&T贝尔实验室所创的S语言发展出的一种方言。
从计算角度,R 是一种为统计计算和图形显示而设计的语言及环境。
从开发角度,R 是一组开源的数据操作,计算和图形显示工具的整合包有各种方式可以进行编程调用。
从架构角度,R 是为统计计算和图形展示而设计的一个系统。它包括一种编程语言,高级别图形展示函数,和其它语言的接口以及调试工具。
如果一定要找到一个与R类似的软件,那就是商业软件Matlab。R和Matlab都是基于编程进行数据分析的工具,Matlab适用的领域更广,而R更擅长统计分析领域。与Matlab相比,R更具备开放性:
R是自由软件,Matlab是商业软件;
R可以方便的通过“包”进行扩展,R的核心只有25个包,但是有几千个外部包可以调用,当然你也可以开发自己的;
R语言比Matlab的要强大;
R和其他编程语言/数据库之间有很好的接口;其他语言也可以很方便的调用R的API和结果对象。
R常用于统计领域。大多数人使用R就是因为它的统计功能,R的内部实现了很多经典、时髦的统计技术。
1.2系统安装
打开浏览器,输入R语言官方网址:https://www.r-project.org/
进入网站,点击左边视图栏“Download”下的“CRAN”,进入镜像页面。
页面按国家名称排序镜像网站。建议选择国内镜像(如清华大学、北京交通大学、厦门大学等)进入下一个页面。
在这个页面,根据读者电脑操作系统的不同进行选择。R语言同时支持Windows、Mac、Linux等操作系统。如微软操作系统则选择“Download R for Windows”,进入下一个页面。
在这个页面,对于首次安装R语言程序的读者,选择“install R for the first time”进入到下一个页面。
在这个页面显示当前R语言最新版本为3.2.3版本,读者选择“Download R 3.2.3 for Windows”,下载R语言安装程序包(exe)。
下载完成后,读者双击安装程序包(exe),选择默认设置即可完成安装。安装完毕后,桌面会出现蓝色大R图标。双击该图标,启动R程序,出现如下界面则系统安装成功。
1.3基本操作
R是一种语法非常简单的表达式语言,基于命令(command)可以通过交互、批处理及脚本等多种方式使用R语言。命令是表达式,也可能是赋值语句。如果一条命令是表达式,它被解析后将结果显示在屏幕上,同时释放该命令所占用的内存。赋值语句同样会被解析并把值传给变量,但结果不会显示在屏幕上。建议读者在入门阶段认真学习命令,手动输入,逐步学习R语言。等完全掌握,对R语言熟练之后再使用RStudio等工具软件进行操作。
R语言是通过大量“开箱即用”称之为“包”(package)的可选模块实现其强大的统计分析功能。“包”是一系列函数、数据、代码以R语言规范定义的格式组成的集合。这些包横跨各个领域,提供了丰富多彩的功能,包括聚类分析、金融、机器学习、生存分析、时间序列等34类,汇集了全球各行业专业人士应用R语言的最新成果,具体内容可参见1.3.4节内容。
在进行包安装和使用前,需要对CRAN进行设置。选择R菜单“程序包”,弹出下拉菜单,选择“设定CRAN镜像…”,建议仍然选择国内镜像。镜像站点设置完成后,即可开始包的安装。
1.3.1包的安装
包的安装一般有三种方法。
第一种是通过R菜单选择“程序包”下的“安装程序包…”,弹出包列表,选择相应程序包进行安装。这种方法需要熟知包名。
第二种是下载相应的包压缩文件(zip),然后通过R菜单选择“程序包”下的“从本地zip文件安装程序包…”,手动进行安装。
第三种是在提示符(>)下输入安装包的命令,程序会自动通过镜像站点查找包名,找到该包名后会自动进行链接、下载、安装一系列动作。在安装包的过程中,如要求安装该包依赖的相关包,程序会自动进行链接、下载、安装,全程无需人工干预。推荐使用这种方法。
命令:install.packages(“包名”)
据官网统计,截至2017年1月,公开发布的包数量已接近10000个。对如此多的包,读者如何找到与工作、研究相关的包呢?在联网状态下,读者可以进入官网按照“包发布时间”或“包名”进行查阅。选择“Table of available packages, sorted by name”进入索引页面。也可以通过通过R菜单选择“帮助”下的“手册(PDF文件)”,在弹出菜单中选择“R Reference”进行查看。PDF索引不便于检索,建议采用网页检索方式。
在这个页面,读者可以打开查询窗口,输入关键英文单词、词组(如Ann、hydro、wave等)进行检索,通过相应的注释、说明,找到相应的包后,在程序窗口下输入对应的包名进行安装。
如通过查询,检索,找到一个关于研究中国有关数据的R接口包“rstatscn”,输入安装命令后,提示该包需要安装curl、openssl、R6、httr这4个相依赖的包。程序自动搜寻、下载并安装这些包后,完成“rstatscn”的安装。
1.3.2包的使用
包安装完成后,需要进行加载才能使用。计算机上存储包的目录称为库(library),函数.libPaths()显示库所在的位置,函数library()显示库中所有的包,函数search()显示已经加载并可使用的包。
程序窗口显示当前可用的包有:stats、graphics、datasets、methods、base等包。这些包是R语言程序运行的基础包。在程序启动时已经加载到内存当中。可以通过如下命令对我们关注的包进行查阅。
命令:library(help=“包名”)
如对stats这个包进行查阅,输入:library(help=“stats”),回车即可弹出base这个包的详细说明。也可通过命令help.start() 启动“HTML帮助文件“查看相应参数、具体使用方法及范例等内容。建议使用HTML方式查阅。
包不加载,或包加载失败,后续工作即无法开展。确定要使用的包名以后,使用如下命令加载该包。
命令:library(包名)
前述的stats、graphics、datasets等基础包不需要再次加载,可直接使用。在加载一个包前必须确定已经安装了这个包。一次会话中,包只需加载一次。有些包会对依赖包中的参数、方法进行重构,加载这类包时会有提示信息,不影响正常使用。如果需要,可以自定义启动环境,修改根目录下\etc\文件夹中的Rprofile.site配置文件,可实现程序启动时自动加载频繁使用的包,方便工作开展。
1.3.3 工作空间
R语言程序启动即加载一个工作空间(workspace)。工作空间存储当前工作环境下所有操作的命令、函数、步骤等。保存工作空间时,系统会生成.RData和.Rhistory,其中.RData以二进制的方式保存了会话中的变量值,.Rhistory以文本文件的方式保存了会话中的所有命令。
保存当前工作空间,下次启动程序会默认打开上次关闭的工作空间,并提示“原来保存的工作空间已还原”,此时可以使用ls()、ls.str()和history()函数查看之前保存的数据和命令。使用rm()和remove()函数可以删除工作空间中的变量。使用getwd()和setwd()函数可以获取/设置工作空间目录。使用list.files()函数可以查看当前目录下的文件。在后续工作中,可以通过上、下箭头(↑、↓)快速调取已使用的命令、函数,提高效率。
针对不同的工作内容应创建不同的工作空间。
1.3.4任务视图
打开浏览器,输入镜像网址:https://cran.r-project.org/。进入网页后点击左边视图栏“Task Views”,进入“任务视图”页面。
该页搜集整理了R语言在聚类分析、计量经济学、生态环境分析、金融、遗传学、并行计算、机器学习、心理学、最优化、稳健统计、生存分析、时间序列等34类大的专项任务研究情况。每一个分类下面都汇集了全球各行业专业人士应用R语言的最新成果内容。读者可根据自己的兴趣(如时间序列分析)选择相应分类进一步了解有关内容。
R语言任务视图分类表
分类任务名称 |
主要研究内容 |
Bayesian贝叶斯推理 |
Bayesian Inference |
ChemPhys化学物理分析 |
Chemometrics and Computational Physics |
ClinicalTrials临床试验 |
Clinical Trial Design, Monitoring, and Analysis |
Cluster聚类分析 |
Cluster Analysis & Finite Mixture Models |
Differential Equations |
|
Distributions概率分布 |
Probability Distributions |
Econometrics计量经济学 |
Econometrics |
Environmetrics生态环境分析 |
Analysis of Ecological and Environmental Data |
Design of Experiments (DoE) & Analysis of Experimental Data |
|
Finance实证金融 |
Empirical Finance |
Genetics统计遗传学 |
Statistical Genetics |
Graphics图形可视化 |
Graphic Displays & Dynamic Graphics & Graphic Devices & Visualization |
高性能并行计算 |
High-Performance and Parallel Computing with R |
MachineLearning机器学习 |
Machine Learning & Statistical Learning |
MedicalImaging医学图像 |
Medical Image Analysis |
MetaAnalysis元分析 |
Meta-Analysis |
Multivariate多变量统计 |
Multivariate Statistics |
Natural Language Processing |
|
Numerical Mathematics |
|
OfficialStatistics官方统计调查方法 |
Official Statistics & Survey Methodology |
Optimization最优化 |
Optimization and Mathematical Programming |
Pharmacokinetics药物代谢动力学 |
Analysis of Pharmacokinetic Data |
Phylogenetics种系遗传学 |
Phylogenetics, Especially Comparative Methods |
Psychometric Models and Methods |
|
Reproducible Research |
|
Robust稳健统计方法 |
Robust Statistical Methods |
SocialSciences社会科学 |
Statistics for the Social Sciences |
Spatial空间分析 |
Analysis of Spatial Data |
SpatioTemporal时空数据处理与分析 |
Handling and Analyzing Spatio-Temporal Data |
Survival生存分析 |
Survival Analysis |
TimeSeries时间序列 |
Time Series Analysis |
WebTechnologies网络技术与服务 |
Web Technologies and Services |
gR图论 |
GRaphical Models in R |
系统程序也可以通过install.packages(“ctv”)命令自动安装“任务视图”,安装成功后,加载ctv包即可查阅全部分类信息。
通过install.views()命令可一次性安装某类(如TimeSeries)视图下的全部可用包。
1.4 使用帮助
开源软件通常都有非常好的帮助系统,无论对于初学者还是熟练者都能带来很大的帮助。R当然也不例外。R中提供的帮助主要有以下几种:
1.4.1 HTML帮助文档,这是最常用的帮助文档,方法是输入help.start()命令,程序会自动打开浏览器,链接到本地安装的帮助文档。包括入门文档(Manuals)、索引(Reference)、问答(Windows FAQ)及搜索(Search Engine & Keywords)等功能。其中索引(Reference)下的包(Packages)为本地已安装所有R包列表。
1.4.2 命令帮助文档,如果已经知道一个函数的名称(比如mean),需要了解其所属的包、用途、用法、参数说明、返回值、参考文献、相关函数以及范例等,可以使用如下命令:help(“mean”) (引号可以省略),或?mean,程序会打开浏览器,显示该函数的详细文档内容,包括定义、表达式、参数含义、值、范例等。使用help(package=“包名”)命令还可以查看具体包的详细内容和其他信息。
1.4.3 参数帮助文档,对于函数,可以使用args()命令获取函数参数。
1.4.4 搜索文档,如果不知道函数具体用法(如mean),可以使用如下命令进行搜索:??mean
程序会打开浏览器,列出所有mean()函数的搜索结果,这些结果说明mean()函数在不同包的定义、应用有可能是不一样的,读者可根据搜索结果详细阅读有关内容。这种方法(??)等同于输入help.search(“”)命令。
1.4.5 示例文档,对于函数用例,还可以使用example(“”)(引号可以省略)命令执行示例。
1.4.6 演示文档,使用demo()可以查看示范程序,demo()会按照包分组,列出所有可用的演示文档。输入可演示的名称可以进行演示。
1.4.7 系统关键字和运算符帮助文档,与函数的帮助类似,但是需要加上单引号。
1.4.8 函数文档,使用apropos(“关键词”)可以找到所有包含“关键词”的可用函数。
1.4.9 PDF文档,使用vignette(“主题词”)可以列出所有包含“主题词”的可用PDF文档。
1.4.10官方网站搜索,前述各种帮助方法都受限于本地环境已经安装的包。如果要搜索R中所有的资源(包,函数、数学方法等),可以使用RSiteSearch(“”)命令,或者在R的官方网站搜索,输入:https://www.r-project.org/search.html
请发表评论