Rfrequentlyaskedquestions
R常见问题解答
http://www.r-project.org
153分钟学会
R
AThisdocumentisgeneratedfromLTEXsourcescompiledwithctexv0.7d
inaWindowsplatform.TheusedpackagesareCJK、listings、graphicxandsoon.
序:
(包括Rintro,Rdata,Radmin),也有来这篇文档内容的来源多样,既有来自于R官方文档
自于互联网的contributeddocuments;还有若干来自于CapitalOfStatistics论坛的讨论问题。
本文档的目的是为具有一定统计(数学)背景的R软件初学者提供一个快速认识R软件的平台,如果你无此背景,可能会对其中的若干表达存在疑问。这篇文档重点不在统计方法上,因此所列问题不可能详尽到统计学的每个知识点。
R是一个很庞大的体系,在CRAN的TaskViews上可以清楚地看到贝叶斯推断、聚类分析、机器学习、空间统计、稳健统计等方法的介绍。而这些方法又通过相应的RPackages扩展,可以说学习R是一件没有尽头的事情。
如果你的英文阅读没问题,那么精读一本关于R的原版书籍也是一个不错的选择,但这个开头常常让人很头痛。希望这份37页的文档,对你认识、学习R是个不错的帮助。
刘思喆1
June25,2008
致谢:
abel,cran,rtist,XieYihui,zhangv...
1sunbjt
§A前言
1.R是做什么的?
R是一个有着统计分析功能及强大作图功能的软件系统,是由奥克兰大学统计学系的RossIhaka和RobertGentleman共同创立。由于R受Becker,Chambers&Wilks创立的S和Sussman的Scheme
两种语言的影响,所以R看起来和S语言非常相似。
2.在哪里可以下载R的安装程序
在R的官方网址上,选择网站镜像http://cran.r-project.org/mirrors.html,比如UCBerkeley下载软件副本。R拥有在Linux,MacOSX,Windows平台下的各个版本,如果是Windows用户,进入镜像网站,选择Windows(95andlater),进入base,下载R-x.x.x-win32.exe。
3.为什么R叫做R
部分是因为两位R的作者(RobertGentleman和RossIhaka)的姓名,部分是受到了贝尔实验室S语言的影响(称其为S语言的方言)。
4.CRAN是什么意思?
CRAN是ComprehensiveRArchiveNetwork的简写,是拥有同一资料,包括R的发布版本,包,
文档和源代码的网络集合。
5.我是新手,我如何开始学习R
R的官方网页拥有大量英文学习资源,还可以参考http://cran.r-project.org/other-docs.html上的中文翻译文档。统计之都bbs是一个不错的学习R的中文网站,这个论坛上你可以找到
大量学习资料或直接提出问题同大家探讨。
6.初学者阅读R自行安装的R-intro就可以了么?
R-intro确实是官方文档中最基础的,但它不是从R软件应用角度讲的,故并不适合于R初学者。
可以参考R-intro中数据类型、结构部分,作为基础学习。
7.能列举一些R的经典书目么?
正如大家应用R的过程中看到,大部分经典的R书籍都为英文:
ModernAppliedStatisticswithS(VenablesandRipley)
TheNewSLanguage:AProgrammingEnvironmentforDataAnalysisandGraphics
—(RichardA.Becker,JohnM.Chambers,AllanR.Wilks)
AHandbookofStatisticalAnalysisUsingR(BrianS.Everitt,TorstenHothorn)
DataAnalysisandGraphicsusingR(MaindonaldandBraun)
IntroductoryStatisticswithR(Dalgaard)
8.R需要编程么?
2
不!大多数时候不需要,因为R有很多函数和包,而且每天都在增加,你用的一般方法和函数都可以在R自带包中找到。
9.能否简单举一个R的例子?
生成100个高斯(正态)分布随机数,并对这100个数进行特征描述。
1
x
3
当然你还可以使用demo()函数,比如R漂亮的图形演示:
demo(graphics)10.R需要注册费用么?
不需要!R是一款在GNUGeneralPublicLicense(GPL)下发布的开源软件,只是很少一部分包不能用于商业用途。不知道为什么有些费时、费力且价格不菲的商业统计软件,居然还在生存?
11.为什么R不能使用超过50%的CPU?
这是Windows下任务管理器的误导,它将多个CPU看作是单个CPU,同时计算使用比例。而R是单线程计算软件,它不能同时使用2个以上的CPU。当你的计算机应用的是双核技术,你会发现CPU应用会定格在50%上。
12.如何在发行出版物里引用R
A如果你是LTEX用户,可以在R中使用命令citation()得到可供BibTEX使用的内容;或者是某一
个包的引用
1
citation(package=’package’)
§B基础知识
13.如何获得帮助?
R的帮助系统非常强大,可以直接使用“?topic”或help(topic)来获取topic的帮助信息;也可使用help.search(”topic”)来搜索帮助系统。
如果你只知道函数的部分名称,那么可以使用apropos(”tab”)来搜索得到载入内存所有包含tab字段的函数。
http://finzi.psych.upenn.edu/search.如果还没有得到需要的资料,还有RSiteSearch:
html,等价于在R平台上使用RSiteSearch()函数。
14.R可使用的最大内存是多少?
3
R经常因为过分消耗内存而受到指责,而事实也确是如此。不过还好,我们使用的数据量通常不是
很大,通常R都可以处理。特定条件下我们可能需要更大的内存来做运算,提供两种途径来设定(增大)内存:
?启动R进程前,增加R启动参数。在CMD环境下,运行增加参数的Rterm:
1
r??max?mem?size=1Gb
或通过添加RHOME/bin至系统环境中,直接在“运行”中运行2
1
rgui??max?mem?size=1Gb
?启动R进程后,通过memory.limit函数增大R进程的内存限制。
R的工作内存大小的设定值为32Mb到3Gb间的任意数值。但需要提示的是:Windows平台可用
最大有效内存为2Gb,也就是说,实际上R的工作内存区间为32Mb至2Gb。
15.为什么help.search()搜索不能使用?
基于浏览器的搜索引擎要求正确安装完整版Java,且Java和Javascript须嵌入浏览器。
16.R支持中文么?
支持,但不好!在R中,大部分包的作者都是以英文为母语的,不会对中文字符考虑太多,故建议使用全英文环境。
17.R支持自动补全(Tabcompletion)么?
支持!在2.5.0版本中,R引入了命令自动补全功能,使用Tab键能自动补全R命令;或使用第二次Tab后,返回所有可能的补全命令列表。
18.如何清除变量?
清除单个变量使用rm()函数,清除内存中所有的变量:
1
rm(list=ls(all=TRUE))19.如何更改小数点后显示数字位数?
options(digits=),digits后面的参数为1至22的数字,默认为7。options函数还可以改变很多全
局选项,如更改提示符(prompt),是否显示错误信息(show.error.messages)等。
20.如何调用系统内的程序?
使用system()函数或用shell.exec()调用相应程序来打开文件:
1
#gotothecran
system(paste(’\/ProgramFiles/InternetExplorer/iexplore.exe\,
2同样支持
Rterm
4