R帮助函数
help.start()
,打开帮助文档首页
help.search("foo")
或??foo,
以foo为关键词搜索本地帮助文档,?Startup
查看与R有关的启动文件信息;
example("foo")
,函数foo的使用示例(引号可以省略)
RSiteSearch("foo")
,以 foo 为关键词,查询整个 http://search.r-project.org 网站的包,例如RSiteSearch("{Bayesian regression}")
apropos("foo",mode="function")
, 列出名称中含有 foo 的所有可用函数 。apropos
支持正则表达式,例如apropos("z$")
表示列出所有以z为结尾的变量。而apropos("[4-9]")
则是含有4到9之间数字的所有变量。
data()
,列出当前已加载包中所含的所有可用示例数据集
vignette()
,列出当前已安装包中所有可用的 vignette 文档,vignette指是一类小文章,会描述某个R函数的用法。
vignette("foo")
,为主题 foo 显示指定的 vignette 文档
demo()
,演示某些R案例
browseVignettes()
,查看当前系统里的Vignettes
注:在搜索帮助文档的过程中,可能会遇到R软件无法给出任何搜索项的相关信息的情况,如下所示:
|
|
若你确定该函数安装在计算机中,则导致这样情况的原因可能是由于包含该函数的R包未载入,你不清楚哪个R包中包含这个函数。要解决这样的问题,需要在所有已安装的R包中搜索该函数。使用错误消息中提示的方法来进行搜索(即用help.search命令),例如:
|
|
vignette()
有些软件包中也会包含vignette,这是一些附加的文档,例如简介、教程或者开发文档等。这些vignette都会在安装软件包时,作为软件包的一部分安装到计算机中。vignette显示在软件包的帮助页面底部。可以通过vignette命令查看计算机中包含的所有软件包的附加文档列表,也可以通过在vignette命令中指定某一软件包的名称,查看特定软件包所附带的vignette?,如下所示:
|
|
每个vignette都对应一特定的名称,因此可以通过以下命令进行查看:vignette(“vignettename”) 。
某看某个函数的文档
用法:help(函数名)或?函数名
|
|
或者使用args函数快速获取函数的参数。例如,args(functionname)
或者用example函数查看函数的使用示例。例如example(functionname)
查看某个包的文档
用法:help(package=”包的名称”)
需要与这区别的是,查看一个函数的帮助命令是help(函数名),如果要查看一个包的帮助,操作与函数有所不同,需要加上package=,如下所示:
|
|
网络资源
Rseek.org
Q&A网站
针对编程有关问题的Q&A网站,例如数据结构、代码以及图表绘制等。
有关统计的的Q&A网站
http://stats.stackexchange.com
R官网
http://cran.r-project.org/web/views
网站中的任务视图,寻找并阅读与你研究相关的内容,其中能找到链接和相关软件包的简介。
关键词检索软件包
通过关键字检索合适的软件包
sos
提供查询R包的其他方式:
http://cran.r-project.org/web/packages/sos/vignettes/sos.pdf
环境配置
历史命令保留
默认情况下,R会将一次对话中所有的命令都记录下来,方便随时重用,如果要将历史记录保存下来,可以使用savehistory()
这个函数。默认情况下,R会当历史记录保存在当前工作目录下一个名为.Rhistory
的文件中。
如果要将历史记录保存在其他文件,可以使用file
参数,即savehistory(file="TestHistory")
,扩展名对此文件并无影响。
如果要再次载入这个历史记录,使用可以loadhistory()
命令,即loadhistory("TestHistory")
。
查看R当前的版本
使用R.version()
命令可以返回当前运行R的版本信息,包括运行平台本身的信息,比较丰富,如下所示:
|
|
如果只是想知道R的版本号,则用getRversion()
函数,如下所示:
|
|
设置R语言默认CRAN镜像
R使用的CRAN镜像信息保存在一个.RProfile
为扩展名的文件中,这个文件位于用户的home文件夹或R的启动目录中,如果要想更改CRAN镜像就需要修改这个文件。
查看R语言可选的镜像要用到chooseCRANmirror()
命名,如下所示:
|
|
选择19(上海的镜像)。
输入options("repos")[[1]][1]
就可以查看选择后的镜像,如下所示:
|
|
将上面的镜像添加到.RProfile
文件中即可 ,如下所示:
|
|
R代码的运行source()
运行R代码的方式有以下几种:
第一,若要在控制台上执行编辑器中的某一行代码,点击想要运行的那行代码,在RStudio中,按下Ctrl
+Enter
或按Run
即可。
第二,若要运行编辑窗口中的所有代码,那么就需要点击源代码编辑器中的任何位置,按下Ctrl
+Shift
+Enter
即可,或者是按Source
按钮。或者是在控制台中直接输入source("R代码的路径+R代码文件")
即可,例如在D盘下保存了一个R代码文件test.r
,那么就需要输入source("D:/test.r")
,按回车。
需要注意的是:Rstudio的编辑窗口中有一个Source on Save
复选框,这个是表示自动保存,最好选上。
Worksapce
在一次R任务中,会导入数据,会创建变量,这些所有的内容称为Worksapce,它具体指的是,在所有会话中创建的变量,函数,载入的包。如果要查看当前Worksapce中创建的哪些变量,可以使用ls()
命令。
保存Workspace命令save.image()
如果想要保存整个Worksapce,要用到save.image()
命令,如下所示:
|
|
现在就在D盘下保存了一个名为test.Rdata
的文件,现在关闭Rstudio。去D盘下,再打开test
文件,发现原来的变量test1
和test2
都还在,跟原来的一样。
Rda文件
Rda的全称是rdata,保存的是变量名与相应的多个变量,看以下代码:
|
|
现在就在D盘保存了一个x.rda
文件。当要载入这个文件时,要使用load()
命令,如下所示:
|
|
save()
与save.image()
函数使用
在R中如果要保存某个变量或工作环境需要用到save()
和save.iamge()
命令,它们的用法如下所示:
|
|
其中参数含义如下所示:
- list:一个包含要保存的对象名称的字符向量。
- file:连接或保存数据的文件的名称。必须是保存的文件名。
- ascii: ASCII码,默认FALSE。
- envir: 寻找要保存的对象的环境。
- compress:逻辑或字符串指定是否保存到指定文件是使用压缩。TRUE对应于gzip压缩,而字符串“gzip”、“bzip2”或“xz”指定压缩的类型。当文件是连接和工作空间格式版本时忽略。
- save.image()只是“保存我当前工作空间”的捷径。
save()
与save.image()
函数的简单区别就在前者只保存一个变量(也可以保存多个),而后者可以一次保存所有的变量。
ls()查看当前对象
例如ls()可以查看当前环境中的所有对象,如下所示:
|
|
ls.str()
查看对象的类型
使用ls.str()
命令可以查看变量的结构,如下所示:
|
|
类似的函数还有browseEnv()
,只是它是以HTML格式输出的,如下所示:
|
|
工作空间管理
如果把R对象的运行方式比较为游戏规则,那么工作空间就可以看作游戏场地。如果要玩好游戏,你不仅需要熟悉 规则,也要熟悉场地,这里的规则就是指R语言的各种语法,这里的场地就是R语言的运行工作空间。
R语言的工作目录
当R开始运行时,它总是运行在某一个目录下的,这个目录就是R会话的工作目录,多数情况话,使用的就是绝对路径,例如C:\test
这种工作,或者是使用相对路径,例如\test
这样的。
在R中使用getwd()
可以获取当前R的工作目录,使用setwd()
是设置工作目录。
创建R项目
在Rstudio中要创建一个新项目就是使用File|New Project
这个选项,具体的可以看Rstudio的实际操作。一旦创建了这个项目,就会在目录中创建一个扩展名为.Rproj
文件,这个文件的核心内容其实就是几行代码。这个文件中储存了一些R的设置,一旦打开这个文件,这些设置就会启动,工作目录也将被设计为项目文件所在的位置,当我们进行一项数据分析任务时,最好就在Rstudio中创建一个.Rproj
文件。
假设我们在Rstudio中创建了一个R项目,此时就会在设置的目录中创建了一个.Rproj
文件,这个项目就包括R脚本,数据文件,文本文件,图表等。
检查工作环境
在R中,每个代码语句都是在指定环境中运行的,这个环境就是符号和其绑定物的集合,当我们当一个值赋给一个变量时,调用一个函数,或者对应一个函数名,R就会在当前的环境中寻找这个变量。如果在Rstudio的控制台中输入命令,它们会在全局环境中运行。例如当我们在Rstudio中开始一个新的R对话时,就是在一个空的全局环境中开始工作,这个空的全局环境就是没有定义任何变量的全局变量。
使用objects()
这个命令就可以查看当前工作环境中的变量,如下所示:
|
|
运行结果如下所示:
|
|
从上面结果可以看出来,这个工作空间中有三个变量,另外,使用ls()
与objects()
的目的是一样的,但是ls()
用的更多。使用ls.str()
可以查看所有的变量的数据类型,此时也可以查看特定类型的,例如ls.str(mode = "list")
就可以列出列表类型的变量,此命令还支持正则表达式,使用ls.str(patten = "^\\w$", mode = "list")
就列出匹配了所有字符串的list变量。
修改全局选项
R语言中能够查看所有选项的值,例如getOption()
就可以查看,如下所示:
|
|
在查看某个参数时,要加上引号,从上面就可以知道,R中默认的数值是7位,使用options()
可以改变显示位数,如下所示:
|
|
查看R程序运行时间
proc.time()
查看用户时间
R中的proc.time()
函数可以查看程序运行时,其实proc
就是程序procedure
的缩写,如下所示:
|
|
由于系统是中文的,R中显示的是中文,其中用户(user)表示:R执行用户指标的CPU运行时间;系统(system)是指:系统所需要的时间,流逝(elapsed)是指R打开到现在总共运行的时间。
system.time()
查看程序运行时间
使用system.time()
函数可以查看R程序的运行时间,其语法是system.time(expr,gcFirst = TRUE)
。
其中expr
是需要运行的表达式,gcFirst
是逻辑参数,system.time()
这个函数实际上是调用了2次proc.time()
函数,在程序运行前调用一次,在程序运行结束后又调用一次,然后计算这两次的时间差,如下所示:
|
|
运行结果如下所示:
|
|
再来看一个案例:
|
|
运行结果如下所示:
|
|
从上面结果我们可以发现,这段程序运行的时间为:15.68秒,这是因为在R中,使用for
循环非常没有效率,最好不要用for循环。在上面的这个案例中,程序每次都增加一个元素z向量里,这样总共增加了100000次,如果我们已经知道了z的长度,首先给定z的长度,就可以提高运行效率,如下所示:
|
|
运行结果如下所示:
|
|
用了0.19秒。
参考资料
- R语言-默认镜像设置
- R语言轻松入门与提高 [法]Andrie de Vries ,[比利时]Joris Mey
- R语言_save()函数用法
- 学习R[美]Richard,Cotton著,刘军译
- R语言编程指南.任坤 著,王婷,赵孟韬,王泽贤 译