R常见问题解答Rfrequentlyaskedquestionshttp://www.
r-project.
org153分钟学会RThisdocumentisgeneratedfromLATEXsourcescompiledwithxeLATEXinaWindowsplatform.
Theusedpackagesareamsmath,listings,makeidxandsoon.
序:这篇文档内容的来源多样,既有来自于R官方文档(包括R_intro,R_data,R_admin),也有来自于互联网的contributeddocuments;还有若干来自于CapitalOfStatistics论坛的讨论问题.
本文档的目的是为具有一定统计(数学)背景的R软件初学者提供一个快速认识R软件的平台,如果你无此背景,可能会对其中的若干表达存在疑问.
这篇文档重点不在统计方法上,因此所列问题不可能详尽到统计学的每个知识点.
R是一个很庞大的体系,在CRAN的TaskViews上可以清楚地看到贝叶斯推断、聚类分析、机器学习、空间统计、稳健统计等方法的介绍.
而这些方法又通过相应的RPackages扩展,可以说学习R是一件没有尽头的事情.
如果你的英文阅读没问题,那么精读一本关于R的原版书籍也是一个不错的选择,但这个开头常常让人很头痛.
希望这份44页的文档,对你认识、学习R是个不错的帮助.
刘思喆12February4,2013致谢:abel,cran,rtist,XieYihui,zhangv…1http://www.
bjt.
name/todo2sunbjtgmail.
comA前言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语言的方言或GNUS).
4.
CRAN是什么意思CRAN是ComprehensiveRArchiveNetwork的简写,顾名思义:是拥有同一资料,包括R的发布版本,包,文档和源代码的网络集合.
5.
我是新手,我如何开始学习R由于R的创立者和维护人员大部分都是统计学家,所以如果你有相关统计背景,将是一个极好的帮助.
如果没有相关背景,R的官方网站拥有大量的英文学习资源可供选择.
当然还可以参考http://cran.
r-project.
org/other-docs.
html上的中文翻译文档.
统计之都BBS是一个非常不错的学习R的中文网站.
在论坛上,你可以搜索到大量学习资料或直接提出问题同大家探讨.
6.
初学者阅读R自行安装的R-intro就可以了么R-intro确实是官方文档中最基础的,但它不是从R软件应用角度讲的,故并不适合于R初学者.
可以参考R-intro中数据类型、结构部分,作为基础学习.
7.
能列一些R的经典书目么正如这份文档序言中所述,《153分钟学会R》更注重于快速认识R或者为拥有一定统计背景的初学者提供快速掌握R语言提供一个有效途径.
更多技术细节或统计知识仍需通过阅读相应文献来掌握.
中文资料的话,推荐华东师范大学汤银才老师的《R语言与统计分析》和北京工业大学薛毅老师《统计建模与R软件》.
2当然还有一些原版资料是必须要读的,例如:ModernAppliedStatisticswithS(VenablesandRipley)TheNewSLanguage:AProgrammingEnvironmentforDataAnalysisandGraphics—(RichardA.
Becker,JohnM.
Chambers,AllanR.
Wilks)AHandbookofStatisticalAnalysisUsingR(BrianS.
Everitt,TorstenHothorn)DataAnalysisandGraphicsusingR(MaindonaldandBraun)IntroductoryStatisticswithR(Dalgaard)Rinanutshell8.
R需要编程么不!
大多数时候不需要,因为R有很多函数和包,而且每天都在增加,你用的一般方法和函数都可以在R自带包中找到.
9.
能否简单一个R的例子生成100个高斯(正态)分布随机数,并对这100个数进行特征描述.
1x如何卸载已安装的packages5参考remove.
packages(c("pkg1","pkg2"),2lib=file.
path("path","to","library"))23.
R的工作目录在里一般的,WindowsXP下的R工作目录在C:\DocumentsandSettings\username或者使用getwd()命令获得R的工作目录(WorkingDirectory),使用setwd()设置工作目录位置.
24.
我样保存自己的工作使用save.
image()函数.
它将在R的起始目录保存记区(workingspace)至.
RData文件;或者使用save(.
.
.
,le=)保存需要保存的R对象.
25.
R如何安装包通过选择下载镜像,R可以自动安装未安装在本地的包,当然也可以从镜像网站下载可用的包,直接本地安装4.
26.
library()的逆向操作是什么当加载包后,需要分离R同包时,可以使用1detach("package:pkg")27.
Library和Package有什么区别这两个概念的确容易混淆,因为R中加载Package的命令是Library!
Library是一个目录,可能包含一个或多个Package;而Package是包含函数、数据、手册的一个集合,属于某个Library,即(Windows下)的"*.
zip"文件.
28.
如何得到加载Package的列表search()函数返回当前加载的包的情况,使用1.
packages(all.
available=TRUE)命令获得本地安装的包列表.
当R启动后,R在内存中会自动加载若干Package:4R有Unix、Mac、Windows三个版本,注意包也分别对应三个版本6R初始状态载入包列表包描述stats常用统计函数graphics基础绘图函数grDevices基础或grid图形设备utilsR工具函数datasets基础数据集methods用于R对象和编程工具的方法和类的定义base基础函数29.
如何使用R内置的数据集R在datasets包中共提供了102个可以使用的数据集,这些数据集都可以通过data()函数加载入内存.
1dim(data()$results)data()$results[,4]30.
R的数据类型有几种R(S语言)没有标量,它通过使用各种类型的向量来存储数据.
常用的数据类型(class)有:常用数据类型类型说明1字符(charactor)它们常常被引号包围2数字(numeric)实数向量3整数(integer)整数向量4逻辑(logical)逻辑向量(TRUE=T、FALSE=F)5复数(complex)复数a6列表(list)S对象的向量7因子(factor)常用于标记样本a参考第18页"复数计算"在R(S)语言中,有一点要牢记:EverythinginSisanobject;EveryobjectisShasaclass.
31.
dataframe是什么dataframe(数据框)可以理解是一个松散的数据集.
它可以是由不同类型的列(数字、因子、字符等)组成的类矩阵(matrix-like).
732.
如何得到函数的代码通常情况你只需要在R平台下写出你需要查看的函数名,回车即可.
比如:dist但有时候这个函数可能是一个泛型函数(GenericFunction),上面的方法就需要稍稍改进一下:先使用methods()函数来查看这个类函数的列表,找到具体需要的函数5,写出来,回车—问题解决.
1summary#Itisagenericfuncitonmethods(summary)#listoftheS3methods3summary.
lm#maybeyouwanttoknowthelinearmodels'ssummary如果要究根问底,可以去下载源代码压缩包(*.
tar.
gz,比如R-2.
5.
1.
tar.
gz)33.
我想查看一个矩阵的前(后)几行,么办可以使用head()或tail()函数.
1head(CO2)这两个函数是类函数,它们可以应用于向量、矩阵、数据框、表格或函数.
如果只想随机看看对象中的一些内容,还可以使用car包中的some函数.
34.
在R中公式的符号都是什么意义拿常见的lm,glm模型来说,ymodel是一种特定的格式,表示以y为响应变量,模型为model.
其中model中的变量由+来连接,或者由:来表示变量间的"交互作用".
除了+和:,我们使用来表示′a+b+a:b′.
(a+b+c)∧2表示(a+b+c)(a+b+c),即主因素a、b、c和各个因素的交互作用.
表示去掉之意.
(a+b+c)∧2a:b表示′a+b+c+b:c+a:c′.
在公式表达中除了变量和因子名外,运算符号也是可以存在的.
如′log(y)a+log(x)′是合法的.
符号.
在update函数中有特殊的意义,它表示"已经存在"之意.
1fm3class(x)故当判断是否相等时不能使用1x==NA6需要包DBI的支持7R共有三个逻辑值TRUE、FALSE、NA11来判断缺失值.
而是使用函数is.
na()来判断是否为缺失值,使用1x[!
is.
na(x)]删除缺失值.
48.
如何将字符串转变为命令行这里用到eval()和parse()函数.
首先使用parse()函数将字符串转化为表达式(expression),而后使用eval()函数对表达式求解.
1xa2[[8,2]]4any(a1!
=a2)#all(a1==a2)any()函数可以返回是值是否至少有一个为真的逻辑值.
而数据框中的元素有不相等的情况,则a1!
=a2将返回至少一个TRUE,那么any()函数将判断为TRUE.
同样也可以使用identical()函数.
1indentical(a1,a2)如果需要返回两个数据框不相同的位置,可以使用1which(a1!
=a2,arr.
ind=TRUE)arr.
ind参量是arrayindices之意,返回数据框的行列位置.
52.
我的数据框有相同的行,如何去掉这些行参考unique函数.
unique函数可以去掉向量、数据框或类似数列的数据中重复的元素.
1x130),mean)60.
判断数据框的列是否为数字使用sapply函数sapply(dataframe,is.
numeric)sapply有循环之意,即返回了dataframe的每一列的信息,同样还可以显示内存中所有对象的占用大小:1sapply(ls(),function(x)round(object.
size(get(x))/1024/1024))61.
一组数中随机抽取数据函数sample()8当然同样概要统计的表现形式不一样15sample(n)随机组合1,nsample(x)随机组合向量x,length(x)>1sample(x,replace=T)解靴带法sample(x,n)非放回的从x中抽取n项sample(x,n,replace=T)放回的从x中抽取n项sample(x,n,replace=T,prob=p)以概率p,放回的从x中抽取n项1nfivenum(c(1,4,6,17,50,51,70,100))[1]1.
05.
033.
560.
5100.
0163>quantile(c(1,4,6,17,50,51,70,100))0%25%50%75%100%51.
005.
5033.
5055.
75100.
00我们看下他们的的定义:分位数是指有百分之多少的数据小于的数值9,我们可以看到关于14,34分位数位置的定义:1+14(length(x)1),14分位数位置1+34(length(x)1),34分位数位置那么数据1c(1,4,6,17,50,51,70,100)的两个四分位数的位置分别为1+74=2.
75,1+214=6.
25故对应分位数为4+(64)*0.
75=5.
5,51+(7051)*0.
25=55.
75而venum()函数中NL(下)和NU(上)两个数,是两次利用中位数概念:先取中位数将数据分为上下两部分当然,如果length(x)为偶数,那么数据刚好被分为两部分,如果lenght(x)为奇数,那么中位数同属上下两部分,然后再取各部分的中位数,即为NL,NU.
E数学运算65.
如何做出线积分R语言使用integrate函数来得到积分结果,如1integrate(dnorm,1.
96,1.
96)integrate(dnorm,Inf,Inf)3##aslowlyconvergentintegralintegrand>=$为开头,$@$为结尾的段落里面.
开头部分有两个常用的参数:echo和fig,使用逻辑值分别表示是否将R代码输入作为\LaTeX{}文本输出;是否在\LaTeX{}文档中绘制图形.
这篇文档只需要在R中编译一遍,即可形成\LaTeX{}需要的输出(文件).
下面是一个配对t检验的一个例子:>=require(stats)##Student'spairedt-testm>=choose(49,6)@美国威力球(类似于福彩双色球)的理论组合数等于\Sexpr{choose(49,6)}.
43通过这种方法处理``有大量计算''的文档,比word不知方便多少倍.
R代码中可以随意写注释,但这些注释默认不会被输出.
如果要求输出注释,抱歉,现在还没有更好的解决办法.
使用Sweave还可以将R生成的图形加入到\LaTeX{}文档中,而不必事先做出\LaTeX{}需要的图形文件\footnote{Sweave会自动生成ps和pdf图形}.
下图是根据Titanic号海难中人员的经济状况、性别、年龄和是否存活四个变量绘制的马赛克图:>=require(graphics)mosaicplot(Titanic,main="SurvivalontheTitanic")@\end{document}Copyright2012RandalltheContributorstoRFAQ.
Allrightsreserved.
R以及RFAQ的作者拥有版权2012.
保留所有权利.
Permissionisgrantedtocopy,distributeand/ormodifythisdocumentunderthetermsoftheGNUFreeDocumentationLicense,Version1.
2oranylaterversionpublishedbytheFreeSoftwareFoundation;withtheInvariantSectionsbeingContributors,noFront-CoverTexts,andnoBack-CoverTexts.
你可以拷贝、发布或者修改这份文档,但必须遵守自由软件组织颁布的GNU自由文档许可证1.
2或者以后版本的条款.
InvariantSections包括Contributors,没有Front-CoverTexts和Back-CoverTexts.
44IndexSymbols1121.
GlobalEnv12.
packages6111819,3514Aabline.
24aggregate15any13aov36aperm14append12apply14,19,30as.
Date22as.
numeric25as.
POSIXct22axes25axis.
25Bbarplot.
27,28boxcox.
39bptest39Breusch-Pagan39Ccancor39capture.
output9car8,39casefold21choose19citation3clipboard10cm.
colors28col27col2rgb28colMeans19colors27combn19Commander.
40complex18connt36connt.
glm.
36connt.
nls36contour30crossprod18cumsum.
14,29curve29cutree.
34DD19data7dataframe7,14demo3detach6dev.
copy28dev.
cur27dev.
list27dev.
o27dev.
set.
27Devices26diag18ditime22duplicated13durbin.
watson.
37dwtest37Eedit10eigen.
18ESS.
41eval.
12Ffactanal.
34factorial19FALSE14le.
choose.
11lled.
contour.
30vnum.
17x10format22Ggc41getAnywhere8getwd6glm36gray28grep21grey28grid.
26Hhat,hatvalues37hclust.
34head8heat.
colors28help.
4help.
search445II35identical13if14image30integer17integrate17iris.
25is.
na12Jjarque.
bera.
test35jpeg28Kkmeans33knitr.
42ks.
test34Llatex.
10latex.
table10layout.
23lda.
39legend25letters28Library6library.
5,6lines29list.
5lm36lm.
ridge.
36lmtest.
39loadings.
34lower.
tri19ls5Mmai23mar.
23matrix14,19memory.
limit.
4merge.
16methods8Nnchar22ncv.
test39NULL14Ooptimize20options.
5outer18PPackage.
6cluster34plotrix25Rcmdr.
40rpart38sem.
35stats.
34tseries35par23,25,30parallel40parplot31parse12paste5,21pch25pdf28persp30pictex.
28pie.
25plotmath.
31pmax14pmin.
14png28points.
23poly37postscript28princomp34print.
10proc.
time40prompt5Qqda39qqnorm30qr.
solve39QuantileRegression33Rrainbow.
28rattle40read.
table.
10read.
xls9rect31RegularExpressions.
.
.
.
14,21rev.
14rgb27rm5RMySQL11rnorm20,25,29RODBC11rowMeans.
19RSiteSearch.
4Ssample.
15sapply15save.
6save.
image6savePlot28scale1646screeplot34search.
6setwd6shapiro.
test34shell.
exec5show.
error.
messages5sink9,10solve18some8sort25source10spline29split.
screen.
23sqldf19sqrt.
19stars27stem25step.
33strwrap26subset12substr.
21survt39Sweave.
41system5system.
time19,40Tt.
17t.
test33table.
32tail8tapply15terrain.
colors.
28tolower21topo.
colors28toupper21transform14twoord.
plot25Uunique13uniroot20update.
32update.
packages.
5upper.
tri19Wwindows28with25XxlsReadWrite9xtable.
1047
wordpress高级跨屏企业主题,通用响应式跨平台站点开发,自适应PC端+各移动端屏幕设备,高级可视化自定义设置模块+高效的企业站搜索优化。wordpress绿色企业自适应主题采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时支持移动终端的常用浏览器应...
适逢中国农历新年,RAKsmart也发布了2月促销活动,裸机云、云服务器、VPS主机全场7折优惠,新用户注册送10美元,独立服务器每天限量秒杀最低30.62美元/月起,美国洛杉矶/圣何塞、日本、香港站群服务器大量补货,1-10Gbps大带宽、高IO等特色服务器抄底价格,机器可选大陆优化、国际BGP、精品网及CN2等线路,感兴趣的朋友可以持续关注下。裸机云新品7折,秒杀产品5台/天优惠码:Bare-...
GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...
如何卸载为你推荐
咏春大师被ko大师:咏春是不会败的 教练:能不偷袭吗,咏春拳教练地图应用看卫星地图哪个手机软件最好。梦之队官网梦之队是什么呢?是那个国家的呢?他们又是参加那个项目的呢?得了几块金牌呢?百度商城百度知道一般一天能挣多少钱?百度关键词工具常见的关键词挖掘工具有哪些www.haole012.com阜阳有什么好的正规的招聘网站?www.119mm.comwww.kb119.com 这个网站你们能打开不?www.zjs.com.cn我的信用卡已经申请成功了,显示正在寄卡,怎么查询寄卡信息?www.javmoo.comjavimdb怎么看www.hyyan.comdota屠夫怎么玩?从初期到后期的装备是什么?
免备案虚拟空间 动态ip的vps 域名服务器的作用 dns是什么 bbr 主机 韩国俄罗斯 lighttpd tk域名 好看的桌面背景图 idc是什么 129邮箱 东莞数据中心 世界测速 南通服务器 福建铁通 中国电信宽带测速网 双线机房 raid10 服务器是干什么用的 更多