下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 153分钟学会R

153分钟学会R.pdf

153分钟学会R

westfoxcs
2012-01-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《153分钟学会Rpdf》,可适用于IT/计算机领域

R常见问题解答Rfrequentlyaskedquestionshttp:wwwrprojectorg分钟学会RThisdocumentisgeneratedfromLATEXsourcescompiledwithctexvdinaWindowsplatformTheusedpackagesareCJK、listings、graphicxandsoon序:这篇文档内容的来源多样既有来自于R官方文档(包括RintroRdataRadmin)也有来自于互联网的contributeddocuments还有若干来自于CapitalOfStatistics论坛的讨论问题。本文档的目的是为具有一定统计(数学)背景的R软件初学者提供一个快速认识R软件的平台如果你无此背景可能会对其中的若干表达存在疑问。这篇文档重点不在统计方法上因此所列问题不可能详尽到统计学的每个知识点。R是一个很庞大的体系在CRAN的TaskViews上可以清楚地看到贝叶斯推断、聚类分析、机器学习、空间统计、稳健统计等方法的介绍。而这些方法又通过相应的RPackages扩展可以说学习R是一件没有尽头的事情。如果你的英文阅读没问题那么精读一本关于R的原版书籍也是一个不错的选择但这个开头常常让人很头痛。希望这份页的文档对你认识、学习R是个不错的帮助。刘思喆June,致谢:abel,cran,rtist,XieYihui,zhangvsunbjt<at>gmailcom§A前言R是做什么的?R是一个有着统计分析功能及强大作图功能的软件系统是由奥克兰大学统计学系的RossIhaka和RobertGentleman共同创立。由于R受Becker,ChambersWilks创立的S和Sussman的Scheme两种语言的影响所以R看起来和S语言非常相似。在哪里可以下载R的安装程序在R的官方网址上选择网站镜像http:cranrprojectorgmirrorshtml比如UCBerkeley下载软件副本。R拥有在LinuxMacOSXWindows平台下的各个版本如果是Windows用户进入镜像网站选择Windows(andlater)进入base下载Rxxxwinexe。为什么R叫做R部分是因为两位R的作者(RobertGentleman和RossIhaka)的姓名部分是受到了贝尔实验室S语言的影响(称其为S语言的方言)。CRAN是什么意思?CRAN是ComprehensiveRArchiveNetwork的简写是拥有同一资料包括R的发布版本包文档和源代码的网络集合。我是新手我如何开始学习RR的官方网页拥有大量英文学习资源还可以参考http:cranrprojectorgotherdocshtml上的中文翻译文档。统计之都bbs是一个不错的学习R的中文网站这个论坛上你可以找到大量学习资料或直接提出问题同大家探讨。初学者阅读R自行安装的Rintro就可以了么?Rintro确实是官方文档中最基础的但它不是从R软件应用角度讲的故并不适合于R初学者。可以参考Rintro中数据类型、结构部分作为基础学习。能列举一些R的经典书目么?正如大家应用R的过程中看到大部分经典的R书籍都为英文:ModernAppliedStatisticswithS(VenablesandRipley)TheNewSLanguage:AProgrammingEnvironmentforDataAnalysisandGraphics(RichardABeckerJohnMChambersAllanRWilks)AHandbookofStatisticalAnalysisUsingR(BrianSEverittTorstenHothorn)DataAnalysisandGraphicsusingR(MaindonaldandBraun)IntroductoryStatisticswithR(Dalgaard)R需要编程么?不!大多数时候不需要因为R有很多函数和包而且每天都在增加你用的一般方法和函数都可以在R自带包中找到。能否简单举一个R的例子?生成个高斯(正态)分布随机数并对这个数进行特征描述。x<−rnorm(,mean=,sd=)mean(x)sd(x)summary(x)当然你还可以使用demo()函数比如R漂亮的图形演示:demo(graphics)R需要注册费用么?不需要!R是一款在GNUGeneralPublicLicense(GPL)下发布的开源软件只是很少一部分包不能用于商业用途。不知道为什么有些费时、费力且价格不菲的商业统计软件居然还在生存?为什么R不能使用超过的CPU?这是Windows下任务管理器的误导它将多个CPU看作是单个CPU同时计算使用比例。而R是单线程计算软件它不能同时使用个以上的CPU。当你的计算机应用的是双核技术你会发现CPU应用会定格在上。如何在发行出版物里引用R如果你是LATEX用户可以在R中使用命令citation()得到可供BibTEX使用的内容或者是某一个包的引用citation(package=’package’)§B基础知识如何获得帮助?R的帮助系统非常强大可以直接使用“topic”或help(topic)来获取topic的帮助信息也可使用helpsearch(”topic”)来搜索帮助系统。如果你只知道函数的部分名称那么可以使用apropos(”tab”)来搜索得到载入内存所有包含tab字段的函数。如果还没有得到需要的资料还有RSiteSearch:http:finzipsychupennedusearchhtml等价于在R平台上使用RSiteSearch()函数。R可使用的最大内存是多少?R经常因为过分消耗内存而受到指责而事实也确是如此。不过还好我们使用的数据量通常不是很大通常R都可以处理。特定条件下我们可能需要更大的内存来做运算提供两种途径来设定(增大)内存:•启动R进程前增加R启动参数。在CMD环境下运行增加参数的Rterm:r−−max−mem−size=Gb或通过添加RHOMEbin至系统环境中直接在“运行”中运行rgui−−max−mem−size=Gb•启动R进程后通过memorylimit函数增大R进程的内存限制。R的工作内存大小的设定值为Mb到Gb间的任意数值。但需要提示的是:Windows平台可用最大有效内存为Gb也就是说实际上R的工作内存区间为Mb至Gb。为什么helpsearch()搜索不能使用?基于浏览器的搜索引擎要求正确安装完整版Java且Java和Javascript须嵌入浏览器。R支持中文么?支持但不好!在R中大部分包的作者都是以英文为母语的不会对中文字符考虑太多故建议使用全英文环境。R支持自动补全(Tabcompletion)么?支持!在版本中R引入了命令自动补全功能使用Tab键能自动补全R命令或使用第二次Tab后返回所有可能的补全命令列表。如何清除变量?清除单个变量使用rm()函数清除内存中所有的变量:rm(list=ls(all=TRUE))如何更改小数点后显示数字位数?options(digits=)digits后面的参数为至的数字默认为。options函数还可以改变很多全局选项如更改提示符(prompt)是否显示错误信息(showerrormessages)等。如何调用系统内的程序?使用system()函数或用shellexec()调用相应程序来打开文件:#gotothecransystem(paste(’"C:ProgramFilesInternetExploreriexploreexe"’,同样支持Rterm’cranrprojectorg’),wait=FALSE)#invokethenotepadsystem("notepad")shellexec("C:WINDOWSclock")Windows下升级R但不想重装packages?在其他目录下安装R再将旧版本保留的library目录下的文件拷贝至新版本library目录下然后updatepackages()或卸载R把R装到旧的目录下然后updatepackages()。如何卸载已安装的packages?参考removepackages(c("pkg","pkg"),lib=filepath("path","to","library"))R的工作目录在哪里?一般的WindowsXP下的R工作目录在C:DocumentsandSettingsusername或者使用getwd()命令获得R的工作目录(WorkingDirectory)使用setwd()设置工作目录位置。我怎样保存自己的工作?使用saveimage()函数。它将在R的起始目录保存记忆区(workingspace)至RData文件或者使用save(,file=)保存需要保存的R对象。R如何安装包?通过选择下载镜像R可以自动安装未安装在本地的包当然也可以从镜像网站下载可用的包直接本地安装。library()的逆向操作是什么?当加载包后需要分离R同包时可以使用detach("package:pkg")Library和Package有什么区别?这两个概念的确容易混淆因为R中加载Package的命令是Library!Library是一个目录可能包含一个或多个Package而Package是包含函数、数据、手册的一个集合属于某个Library即(Windows下)的“*zip”文件。如何得到加载Package的列表?R有Unix、Mac、Windows三个版本注意包也分别对应三个版本search()函数返回当前加载的包的情况使用packages(allavailable=TRUE)命令获得本地安装的包列表。当R启动后R在内存中会自动加载若干Package:R初始状态载入包列表包描述stats常用统计函数graphics基础绘图函数grDevices基础或grid图形设备utilsR工具函数datasets基础数据集methods用于R对象和编程工具的方法和类的定义base基础函数如何使用R内置的数据集?R在datasets包中共提供了个可以使用的数据集这些数据集都可以通过data()函数加载入内存。dim(data()$results)data()$results,R的数据类型有几种?R(S语言)没有标量它通过使用各种类型的向量来存储数据。常用的数据类型(class)有:常用数据类型类型说明字符(charactor)它们常常被引号包围数字(numeric)实数向量整数(integer)整数向量逻辑(logical)逻辑向量(TRUE=T、FALSE=F)复数(complex)复数a列表(list)S对象的向量因子(factor)常用于标记样本a参考第页“复数计算”在R(S)语言中有一点要牢记:EverythinginSisanobjectEveryobjectisShasaclassdataframe是什么?dataframe(数据框)可以理解是一个松散的数据集。它可以是由不同类型的列(数字、因子、字符等)组成的类矩阵(matrixlike)。如何得到函数的代码?通常情况你只需要在R平台下写出你需要查看的函数名回车即可。比如:dist但有时候这个函数可能是一个类函数(GenericFunction)上面的方法就需要稍稍改进一下:先使用methods()函数来查看这个类函数的列表找到具体需要的函数写出来回车问题解决。summary#Itisagenericfuncitonmethods(summary)#listoftheSmethodssummarylm#maybeyouwanttoknowthelinearmodels’ssummary如果要究根问底可以去下载源代码压缩包(*targz比如Rtargz)我想查看一个矩阵的前(后)几行怎么办?可以使用head()或tail()函数。head(CO)这两个函数是类函数它们可以应用于向量、矩阵、数据框、表格或函数。如果只想随机看看对象中的一些内容还可以使用car包中的some函数。在R中公式的符号都是什么意义?拿常见的lmglm模型来说y˜model是一种特定的格式表示以y为响应变量模型为model。其中model中的变量由来连接或者由:来表示变量间的“交互作用”。除了和:我们使用∗来表示′aba:b′。(abc)∧表示(abc)∗(abc)即主因素a、b、c和各个因素的交互作用。−表示去掉之意。(abc)∧−a:b表示′abcb:ca:c′。在公式表达中除了变量和因子名外运算符号也是可以存在的。如′log(y)alog(x)′是合法的。符号在update函数中有特殊的意义它表示“已经存在”之意。fm<−aov(Speed˜RunExpt)fm<−update(fm,˜−Run)在第H节中的网格(lattice)绘图我们还会看到|符号它可以用来标示“条件变量”。R里面可以使用科学计数法么?可以。e==e−==标注星号的函数可以使用getAnywhere()函数获得代码§C输入输出R可以读取其他统计软件录入的数据么?可以使用foreign包它可以读取Minitab,S,SAS,SPSS,Stata,Systat,dBase保存的数据R可以读Excel的数据么?可以但不推荐直接读取Excel文件或许只有微软知道Excel里面有什么东西。通常有三种方法读取Excel:将Excel另存为csv(CommaSeparatedValues)文件使用readcsv()函数读取(推荐)加载RODBC包使用odbcConnectExcel()函数读取xls文件library(RODBC)z<−odbcConnectExcel("rexceltestxls")dd<−sqlFetch(z,"Sheet")close(z)详细请参考RDataImportExportxlsReadWrite包中的readxls函数。可以将R中显示的结果输出到文件么?可以。使用sink()函数。data(CO)sink("COtxt")COsink()#gotoyourworkdirectory,youwillgetCOtxt如何调用R的输出信息?R提供了captureoutput()函数这个函数可以将R的输出信息转化为字符或文件。glmout<−captureoutput(example(glm))glmout:当然如果你想得到漂亮的输出GotoLATEX!R可以从内存直接读写数据么?可以。拷贝需要读取的内容使用data<−readtable("clipboard")writetable("clipboard")怎样将因子(factor)转换为数字这个问题时有发生假设f是一个这样的因子对象我们可以使用asnumeric(ascharacter(f))#orasnumeric(levels(f))asinteger(f)R可以使用电子表格输入数据么?可以使用edit()和fix()函数。data<−dataframe()edit(x)fix(x)为什么当我使用source()时不能显示输出结果?对需要显示输出的对象使用print()或者使用source(file,echo=TRUE)。如果R代码里面包含sink()之类的函数必须使用source(file,echo=TRUE)才能得到正确的输出结果否则sink的对象将为空。R可以输出可供TEX使用的文本么?可以参考Hmisc包中的latex()函数和xtable包中的xtable()函数。a<−matrix(:,nr=)#require(xtable)colnames(a)<−paste("col",:)xtable(a)xtable()函数可以用于产生HTML格式的原码这样R生成的表格就可以非常方便、漂亮地插入到word、powerpoint这类文字处理软件。输出LATEX格式的表格还可以quantreg包中的latextable()函数。找不到文件但我知道它在哪!在R里面使用必须使用双反斜杠或单斜杠表示文件路径比如:d:R−libraryxgobiscriptsxgobibatd:R−libraryxgobiscriptsxgobibat当然还可以使用filechoose()函数打开一个Windows标准文件选择对话框手动选择文件。当然还有可以使用choosedir()打开Windows标准目录选择对话框,。R可以直接从数据库读取数据么?可以并且还可以通过SQL语句对数据库进行操作。R对于基于SQL语言的关系型数据库有良好的支持这些数据库既有商业数据库Oracle、MicrosoftSQLServer、IBMDB等也包含在GNUGeneralPublicLicense(GPL)下发布的MySQL等开源数据库。RMySQL包中提供了到MySQL数据库的接口RODBC包提供了更为广泛数据库接口的解决方案支持所有标准ODBC接口的数据库。通过这种方式相同的R代码可以方便地应用于不同类型的数据库。library(RODBC)ch<−odbcConnect("stocksDSN",uid="myuser",pwd="mypassword")stocks<−sqlQuery(ch,"select∗fromquotes")odbcClose(ch)经测试Windows平台上的MicrosoftSQLServer、Access、Oracle、MySQL、PostgreSQL和Linux平台上的MySQL、Oracle、PostgreSQL、SQLite都有良好的应用案例(详细参考Rdata)。§D数据处理如何删掉缺失值?在R中使用NA(notavailable)表示缺失值要注意R(S)语言中NA同样是一个逻辑值x<−NAx>class(x)故当判断是否相等时不能使用x==NA来判断缺失值。而是使用函数isna()来判断是否为缺失值使用x!isna(x)删除缺失值。如何将字符串转变为命令执行?这里用到eval()和parse()函数。首先使用parse()函数将字符串转化为表达式(expression)而后使用eval()函数对表达式求解。x<−:a<−"print(x)"class(a)eval(parse(text=a))如何向一个向量追加元素?参考append()函数。需要包DBI的支持R共有三个逻辑值TRUE、FALSE、NAx<−:(foo<−c(x,,x:))#expectedresultappend(x,,after=)如何移除某行(列)数据可以使用函数subset(select=)或者使用下标:x<−dataframe(matrix(:,nrow=,byrow=T))dim(x)print(x)newx<−x−c(,),#rownewx<−x,−c,#colnewxnewx事实上关于选取特定条件下的数据框数据subset函数同使用下标效果相同:iS<−iris$Species=="setosa"irisiS,c(,)subset(iris,select=c(SepalLength,PetalLength),Species=="setosa")如何比较两个数据框是否相同?比较每个元素是否相同如果每个元素都相同那么这两个数据框也相同a<−dataframe(num=:,lib=letters:)a<−aa,<−−>a,any(a!=a)#all(a==a)any()函数可以返回是值是否至少有一个为真的逻辑值。而数据框中的元素有不相等的情况则a!=a将返回至少一个TRUE那么any()函数将判断为TRUE。同样也可以使用identical()函数。indentical(a,a)如果需要返回两个数据框不相同的位置可以使用which(a!=a,arrind=TRUE)arrind参量是arrayindices之意返回数据框的行列位置。我的数据框有相同的行如何去掉这些行?参考unique函数。unique函数可以去掉向量、数据框或类似数列的数据中重复的元素。x<−c(:,:,:,:)(xu<−x!duplicated(x))unique(x)#ismoreefficient这里duplicated函数返回了元素是否重复的逻辑值。如何对数列(array)进行维度变换?使用函数apermx<−array(:,:)xt<−aperm(x,c(,,))dim(x)dim(xt)如何删除list中的元素?R中使用表示无效的对象。lst<−list("a"=list("b"=,"c"=),"b"=list("d"=,"e"=))lst"a""b"<−#orlst$a$b<−lst如何对矩阵按行(列)作计算?使用函数apply()vec=:mat=matrix(vec,ncol=)veccumsum(vec)matapply(mat,,cumsum)apply(mat,,cumsum)如何注掉大段的R脚本如果你使用支持正则表达式的文本编辑器的话可以考虑用正则表达式(RegularExpression)或者将大段的代码写入一个*R文件如果需要注掉的话在source(*R)前加入#即可还可以使用if(FALSE){somethingpassby}如何对数据框(dataframe)的某列作数学变换?使用transform()函数对其操作具体参考transform如何求解两组平行向量的极值?pmax()和pmin()如:x<−:y<−rev(x)pmax(x,y)pmin(x,y)如何对不规则数组进行统计分析?参考tapply():n<−fac<−factor(rep(:,len=n),levels=:)table(fac)tapply(:n,fac,sum)tapply(:n,fac,mean)##orreversealistto<−list(a=,b=,c=,d=)tapply(to,unlist(to),names)tapply()的常见于方差分析中对各个组别进行mean、var(sd)的计算。说到概要统计不得不说另外一个函数aggregate()它将tapply()函数对象为向量的限制扩展到了数据框。attach(warpbreaks)tapply(breaks,list(wool,tension),mean)aggregate(breaks,list(wool,tension),mean)##fromthehelpaggregate(statex,list(Region=stateregion,Cold=statex,"Frost">),mean)判断数据框的列是否为数字?sapply(dataframe,isnumeric)一组数中随机抽取数据?函数sample()sample(n)随机组合,,nsample(x)随机组合向量x,length(x)>sample(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项当然同样概要统计的表现形式不一样n<−x<−sample(c(−,),n,replace=T)plot(cumsum(x),type="l",main="CumulatedsumsofBernoullivariables")还可以参考第页中关于模拟已知分布的随机数据函数如:rnorm(,mean=,sd=)如何根据共有的列将两个数据框合并?我们经常会遇到两个数据框拥有相同的时间或观测值但这些列却不尽相同。处理的办法就是使用merge(x,y,byx=,byy=,all=)函数。如何将数据标准化?参考scale函数。x<−c(rnorm(),∗rnorm())m<−scale(x,scale=F)#onlycenteringn<−scale(x,center=F)#onlyscaling为什么fivenum和summary两个函数返回的结果不同?因为他们对数据描述机理一致所以有些教材将二者等同但他们确实有细微差别。>fivenum(c(,,,,,,,))>quantile(c(,,,,,,,))我们看下他们的的定义:分位数是指有百分之多少的数据小于的数值(summary()函数即使用分位数概念)我们可以看到,分位数的定义:(length(x)−),分位数(length(x)−),分位数而fivenum()函数是完全利用中位数概念。§E数学运算如何做出曲线积分?R语言使用integrate函数来得到积分结果如integrate(dnorm,−,)integrate(dnorm,−Inf,Inf)##aslowly−convergentintegralintegrand<−function(x){((x)∗sqrt(x))}integrate(integrand,lower=,upper=Inf)如何得到一个列向量?矩阵转置可以使用函数t()R中默认x为“integer”类型数据这时可以用t(t(x))得到列向量:x<−:class(x)t(x)class(t(x))t(t(x))class(t(t(x)))行向量、列向量常常会有一个比较容易让人迷糊的地方:x∗x计算的是xTx(计算xxT使用o或outer()函数)。crossprod()函数能避免这种情况:XTy<−crossprod(X,y)它直接计算XTY可以看作前者的另一种表达方式当然crossprod()更为有效。由于outer()函数的矩阵意义它常用于三维绘图数据比如我们计算×sin√xy√xy那么对应的R函数计算为:f<−function(x,y){r<−sqrt(xˆyˆ)∗sin(r)r}z<−outer(x,y,f)R如何进行复数计算?参考complex()函数的帮助。x<−i#x<−complex(,)Mod(x)Conj(x)如何生成对角矩阵?对一个向量使用diag()函数得到对角线元素为向量的对角矩阵对整数Z使用此函数得到Z维的单位矩阵。求矩阵的特征值和特征向量的函数是什么?参考:eigen函数当矩阵很大时会非常明显,如何构造上(下)三角矩阵?参考函数lowertri()和uppertri()。Rmat<−matrix(:,,)Rmatlowertri(Rmat)<−Rmat求立方根如何运算?xˆ()。在R里面sqrt()函数可以计算开平方故新手容易推测开立方也有函数。事实上R里面使用ˆ来作幂函数运算。ˆ不但是运算符号还可以看作是函数:"ˆ"(x,)在R中的运算符号包括:R中的运算符号数学运算,,*,,ˆ,,加、减、乘、除、乘方、余数、整除逻辑运算>,<,>=,<=,==,!=大于小于大于等于小于等于等于不等于如何求矩阵各行(列)的均值?如果运算量不是很大当然可以使用apply()函数。rowMeans()和colMeans()函数可以更快地得到你要的结果。m<−n<−A<−matrix(:m∗n,m,n)systemtime(B<−matrix(apply(A,,mean),m,n,by=T))systemtime(B<−matrix(colMeans(A),m,n,by=T))如何计算组合数或得到所有组合?choose()用于计算组合数(nk)函数combn()可以得到所有元素的组合。使用factorial()计算阶乘。如何在R里面求(偏)导数?使用函数D()f<−expression(sin(x)∗x)f<−expression(xˆ∗yyˆ)D(f,"x")如何求一元方程的根?使用uniroot()函数不过uniroot是基于二分法来计算方程根当初始区间不能满足要求时会返回错误信息。f<−function(x)xˆ−∗x−uniroot(f,c(,))如果一元方程的根恰恰是其极值那么还可以使用optimize()函数来求极值。f<−function(x)xˆ∗xoptimize(f,c(−,))如何模拟高斯(正态)分布数据?使用rnorm(n,mean,sd)来产生n个来自于均值为mean标准差为sd的高斯(正态)分布的数据。在R里面通过分布前增加字母‘d’表示概率密度函数‘p’表示累积分布函数‘q’表示分位数函数‘r’表示产生该分布的随机数。这些分布具体可以参考第页中“如何做密度曲线”或Rintro中的Probabilitydistributions章节或helpsearch("distribution")使用这些函数可以很轻松的进行相关的分布的概率计算如已知X˜N(,)计算P(X)利用正态分布的累积分布函数pnormpnorm(,,)−pnorm(,,)计算结果为即右图中阴影的面积。−DensityP(<x<)§F字符操作R对大小写敏感么?R中有很多基于Unix的包故R对大小写是敏感的。可以使用tolower()、toupper()、casefold()这类的函数对字符进行转化。x<−"MiXeDcAsE"chartr("iXs","why",x)chartr("acX","DFw",x)tolower(x)toupper(x)R运行结果输出到文件中时文件名中可以用变量代替吗?可以通过使用paste()函数。for(varinletters:){x<−varwritetable(x,paste("FOO",var,"txt",sep=""))}#Youwillget”FOOatxt”在R中如何使用正则表达式(RegularExpressions)在R中有三种类型的正则表达式:extendedregularexpressions使用函数grep(extended=TRUE)(默认)basicregularexpressions使用grep(extended=FALSE)Perllikeregularexpressions使用grep(perl=TRUE)。比如“”用来匹配任意字符(使用“”来匹配“”):grep("J",monthabb)详细可以参考help(”regex”)。如何在字符串中选取特定位置的字符?参考substr()函数。substr("abcdef",,)substring("abcdef",:,:)这个函数同时支持中文用她来处理“简称”和“全称”还是一个不错的选择的。如何返回字符个数?参考nchar。nchar(monthname)§G日期时间日期可以做算术运算么?可以。一般我们需要使用asDate()asPOSIXct()函数将读取的日期(字符串)转化为“Date”类型数据“Date”类型数据可以进行算术运算。d<−c("")d<−c("")D<−asDate(d,"mdy")D<−asDate(d,"mdy")DD−Ddifftime(D,D,units="days")如何将日期表示为“星期日,七月”这种格式?使用format()函数。format((SysDate(),format="A,dBY")具体format参数可以参考help(strptime)的details部分。§H绘图相关如何在同一画面画出多张图?这里提供三种解决方案:•修改绘图参数如par(mfrow=c(,))或par(mfcol=c(,))•更为强大功能的layout函数它可以设置图形绘制顺序和图形大小•splitscreen()函数。推荐使用layout()函数StatisticswithR的一个例子:layout(matrix(c(,,,,,,,,),nr=,byrow=T))hist(rnorm(),col="VioletRed")hist(rnorm(),col="VioletRed")hist(rnorm(),col="VioletRed")hist(rnorm(),col="VioletRed")如何设置图形边缘大小修改绘图参数par(mar=c(bottom,left,top,right))bottom,left,top,right四个参数分别是距离bottom,left,top,right的长度默认距离是c(,,,)。或者修改绘图参数par(mai=c(bottom,left,top,right))以英寸为单位来指定边缘大小。常用的pch符号都有哪些?pch是plottingcharacter的缩写。pch符号可以使用“:”来表示个标识(参看右图“pch符号”)。当然符号也可以使用#,,∗,|,,−,,o,O。值得注意的是:这几个符号可以在points函数使用不同的颜色填充(bg=参数)。op<−par(bg="lightblue")x<−seq(,∗pi,len=)plot(x,sin(x),type="o",bg=par("bg"))points(x,sin(x),pch=,cex=,bg="red")如何在已有图形上加一条水平线使用低水平绘图命令abline()它可以作出水平线(y值h=)、垂线(x值v=)和斜线(截距a=斜率b=)。R中的绘图命令可以分为“高水平”(Highlevel)、“低水平(Lowlevel)”和“交互式”(Interactive)三种绘图命令。简要地说“高水平”绘图命令可以在图形设备上绘制新图“低水平”绘图命令将在已经存在图形上添加更多的绘图信息如点、线、多边形等使用“交互式”绘图命令创建的绘图可以使用如鼠标这类的定点装置来添加或提取绘图信息。在已有图形上添加信息当然要使用“低水平”绘图命令。如何做密度曲线?常用的办法是:做出x的一个序列然后做出dfunction(x)比如:x=seq(−,,)p

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/41

153分钟学会R

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利