R语言及开发环境介绍



《R语言及开发环境介绍》由会员分享,可在线阅读,更多相关《R语言及开发环境介绍(64页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,,R语言与统计分析,–,上海师范大学,(,2004年2月,),*,,, Gentleman,RossIhaka,4,为什么要,学,学习R语,言,言,5,R是完全,免,免费的!,!,! 而S-Plus尽管是,非,非常优秀,的,的统计分,析,析软件,,可,可是你需,要,要支付一,笔,笔$US.,R可以在,运,运行于UNIX,Windows,和,和Macintosh的操,作,作系统上.,R嵌入了,一,一个非常,实,实用的帮,助,助系统.,R具有很,强,强的作图,能,能力.,我们将R,程,程序容易,地,地移植到S-Plus程序
2、,中,中,反之,S,S的许多,过,过程直接,或,或稍作修,改,改用于R.,通过R语,言,言的许多,内,内嵌统计,函,函数,很,容,容易学习,和,和掌握R,语,语言的语,法,法.,我们可以,编,编制自己,的,的函数来,扩,扩展现有,的,的R语言(这就是,为,为什么它,在,在不断等,级,级完善!!),…....,6,网站—R,的,的资源,7,统计分析,软,软件包,CRAN,提,提供了许,多,多便于统,计,计分析的,宏,宏包:http://cran.r-project.org/src/contrib/PACKAGES.html,stable-- 稳,妥,妥(分布)广义回,归,归分析,tseries,
3、–,– 时间,序,序列分析,VaR,–,– 风险,值,值分析,matrix –,矩,矩阵运,算,算,cinterface –C与R,的,的接口,foreign,–,– 读写,由,由S,Minitab,SAS, SPSS,Stata等软件,的,的数据,normix –,混,混合正,态,态分布分,析,析,nortest,–,– 正态,分,分布的Anderson-Darling检,验,验,MCMCpack,–,– 基,于,于Gibbs抽样,的,的MCMC抽样方,法,法,fracdiff,–,– 分,数,数差分模,型,型的极大,似,似然估计,还有很多,…,……,8,参考资料,随软件所,附,附pdf,文
4、,文档(help->manuals),随版,本,本更新:,W.N.Venables, D.M.Smith and theR DCT: Introduction to R-- NotesonR: AProgrammingEnvironmentforData Analysis and Graphics,2003.http://bayes.math.montana.edu/Rweb/Rnotes/R.html,R DCT, The REnvironmentforStatisticalComputing and Graphics -- ReferenceIndex,2003.,R DCT, RData
5、Import/Export,2003.,R DCT,R Language Definition,2003,R DCT,WritingR Extensions,2003,9,10,11,近期畅销,书,书:,Peter Dalgaard,IntroductoryStatisticswithR,Springer, 2002,JohnMaindonald,John Braun,Data Analysis and GraphicsUsing R-- An Example-basedApproach, CambridgeUniversity Press,2003,JohnFox, AnR and S-Pl
6、us Companionto Applied Regression, SagePublications, Inc.,2002,12,R的运行,平,平台-1,R_GUI,启动R,,我,我们看到R GUI(graphicuser’sinterface)的主,窗,窗口,,它,它由三部,分,分组成,主菜单,工具条,R console (R,的,的运行窗,口,口),R console,你的主要,工,工作是在,这,这里通过,发,发布命令,来,来完成的,包括数,据,据集的建,立,立,数据,的,的分析,,作,作图等.,在这里你,可,可以得到,在,在线帮助,help.start()HTML,格,格式的关,于,于
7、R的帮,助,助文件,help()得到相应,函,函数的帮,助,助,例如help(plot),demo()得到R提,供,供的几个,示,示例,q()退出R,同Matlab类,似,似,用右shift键可以,重,重现以前,的,的命令,13,工具条介,绍,绍,Source Rcode,Loadimage,Saveimage,CopyandPaste,Stopcurrentcomputation,,Source Rcode执行R文,件,件(*.R或*.r),Saveimage保存工作,空,空间,文,件,件名为*.RData,Loadimage打开已有,的,的工作空,间,间,Stopcurrentcomput
8、ation,中,中止当,前,前计算(,由,由于超时,等,等原因),14,主菜单介,绍,绍,15,R的运行,平,平台-2,R_Commander(帮助文件),作者:JohnFox(jfox@mcmaster.ca),版,本,本,:,:RcmdrVersion0.9-0,安,装,装,Rcmdr,是,是R,的,的,一,一,个,个,宏,宏,包,包,,,,,它,它,还,还,需,需,要,要宏,包,包car的,支,支,持,持,在,加,加,载,载Rcmdr,宏,宏,包,包之,前,前,,,,,需,需,要,要,先,先,安,安,装,装,宏,宏,包,包car,Rcmdr,仅,仅,在,在,单,单,文,文,件,件RGui
9、(SDI),下,下,工,工,作,作,,,,,这,这,可,可,通,通,过,过RGui,的,的Edit=>GUIpreferences,…,…进,行,行,设,设,置,置(注:好,象,象均可?),运行,安装宏,包,包car,在RGui下,通,通过Packages=>Load packages…加,载,载Rcmdr,宏,宏包,16,17,功能,R Commander是,一,一个交,互,互式菜,单,单/对,话,话框系,统,统(menu/dialog-boxinterfaces),,用,用于进,行,行数据,的,的读、,写,写、转,换,换及常,用,用的统,计,计分析,.,.作者,还,还添加,了,了线性,与,
10、与广义,线,线性模,型,型等统,计,计分析,工,工具.,结构与,使,使用(,具,具体见Rcmdr的Getting Started部分),R Commander窗,口,口由一,些,些菜单,及,及按钮,组,组成.,菜单的,下,下方是,一,一个log/script,窗,窗口,通过菜,单,单的对,话,话框将,命,命令发,送,送到RGUI,中,中,以,完,完成某,一,一项统,计,计分析,.,.这些,命,命令同,时,时在log窗,口,口中显,示,示出来,.,.它们,可,可以被,重,重新编,辑,辑修改,,,,并可,通,通过Rcmdr窗口,右,右下角,的,的Submit按钮,再,再一次,发,发送给R执行,命令
11、指,向,向一个,当,当前的,或,或者活,动,动的数,据,据集.,一,一旦读,入,入一个,新,新的数,据,据集,,它,它就是,活,活动的,.,.注:通过Data=>Importdata加载,数,数据集,,,,其名字及,路,路径不能含,有,有中文,而中R GUI中,是,是允许,的,的!!,18,R Commander的,菜,菜单,R Commander,菜,菜单树(MenuTree)(点击),R Commander的,信,信息反,馈,馈(information field),19,R的运,行,行平台-3,20,R_WinEdt的,设,设置,设置桌,面,面快击,键,键:,为了同,时,时可以,使,使用
12、LaTeX/CTeX,和,和R_WinEdt,,,,在桌,面,面上复,制,制一个WinEdt,快,快击键,,,,并命,名,名为R_WinEdt;,右击R_WinEdt快击,键,键,选,择,择属性,,,,然后,在,在“目,标,标(T)”中,输,输入,C:\CTeX\WinEdt\WinEdt-C="R-WinEdt"-e=r.ini,(并不,必,必须),如,如果每,次,次运行R都想,加,加载某,个,个/些,软,软件包,或,或函数,,,,则可,对,对R主,目,目录下etc,下,下的.Rprofile进,行,行修改,如每,次,次加载simple,宏,宏包就,可,可使用,下,下面的,设,设置,libr
13、ary(simple),options(editor="\"c:/program files/winedt/winedt\",-c=\"R-WinEdt-edit\"-e=r.ini-V"),21,R_WinEdt界面,22,R_WinEdt菜单,23,R_WinEdt的,特,特点,- 与RGui共同,运,运行,- 具,有,有WinEdt的强,大,大功能(如Delimiter,检,检查,,高,高级,搜,搜索,,书,书签,宏,,缩,缩进,与,与注释,的,的对齐,等,等),-,语,语法,高,高亮,显,显示(Syntax-Highlighting),-,同,同时,可,可以,编,编辑,多,多个R程,序
14、,序,-,设,设置,简,简单,快,快速,的,的按,钮,钮与,快,快击,键,键,-,将,将窗,口,口中,的,的代,码,码(script)发,送,送到R中,运,运行,-WinEdt,中,中选,中,中的,代,代码(code),发,发送,到,到R,中,中运,行,行,-,单,单行,代,代码(script),发,发送,到,到R,中,中运,行,行,-,及,及时,更,更新,历,历史,命,命令,记,记录,文,文件.Rhistory,,,,以,便,便重,复,复使,用,用旧,的,的命,令,令,-,提,提供,衫,衫的,模,模块,如:for(_in_){_},24,R_WinEdt,–,–,菜,菜,单,单与,热,热键,
15、#CommandHotKeyMenuIcon,说,说,明,明,#------------------------------------------------------------------------------------------------------,#BracketsCheckCtrl+F12{},括,括号,配,配对,检,检查,#RHistoryALT+HRHIST.,保,保存,历,历史,记,记录,#R-line-andgoALT+L,单,单行,发,发送,#R-lineCtrl+ALT+L,单,单,行,行发,送,送并,返,返回,#R<-R-paste-andgoALT+PR
16、<-PASTE,选,选,中,中后,发,发送,#R<-R-pasteCtrl+ALT+P,选,选,中,中后,发,发送,并,并返,回,回,#R<-R-source-andgoALT+SR<-SOURCER文,件,件发,送,送(先,打,打开),#R<-R-scriptCtrl+ALT+SRSCRIPTR文,件,件发,送,送并,返,返回,#functionCtrl+Alt+F,生,生成,函,函数,框,框架,#forCtrl+Alt+O,生,生,成,成for,循,循环,框,框架,#ifCtrl+Alt+I,生,生,成,成if框,架,架,#ifelseCtrl+Alt+E,生,生成ifesle,框,框架,
17、#<-Ctrl+-,生,生,成,成赋,值,值符,号,号,25,R的,运,运行,平,平台-4,R_ESS+XEmacs,–,–,安,安,装,装与,使,使用(,作,作者:JohnFox),关于ESS与XEmacs,Emacs是,一,一个,功,功能,强,强大,广,广为,使,使用,的,的编,程,程器,可,以,以进,行,行配,对,对检,查,查,,语,语法,高,高亮,显,显示,查,错,错(debugging),等,等.,ForsomeUnix/Linuxusers,Emacsismoreawayoflifethananeditor.,ESS(EmacsSpeaksStatistics),可,可以,为,为许
18、,多,多统,计,计软,件,件定,制,制相,应,应的,编,编程,环,环境,包,括,括R,S-Pplus,SAS,Stata,Lisp-Stat,等,等.,Emacs主,要,要有,二,二个,版,版本:GNUEmacs,和,和XEmacs.,由于,使,使用,了,了ESS,因,此,此多,个,个统,计,计分,析,析软,件,件可,并,并存,于,于同,一,一平,台,台.,JohnFox,的,的ESS,设,设置,提,提供,了,了一,个,个主,窗,窗口,上,下,下二,个,个子,窗,窗口:,上,上面,的,的用,于,于输,入,入R,的,的源,文,文件/代,码,码,,下,下面,的,的用,于,于显,示,示这,些,些R,
19、程,程序/代,码,码在XEmacs,运,运行,后,后的,输,输入,与,与输,出,出结,果,果.(点击此处,查,查看),XEmacs和ESS均是,免,免费的!,26,27,28,注:请选,择,择Native类,型,型(这是Windows版,的,的Xemacs),各站点的,安,安装或下,载,载速度以,及,及版本号,有,有所不同.,去掉宏包, 点一,下,下New,一,一栏下对,应,应的版本,号,号; 此,版,版本号即,被,被Skip所代替.,29,R_ESS+XEmacs,的,的设置,我们假定R与XEmacs,的,的目录分,别,别为,R:C:\Program Files\R\rwxxxx\(xxxx
20、为版本,号,号),Xemacs:C:\Program Files\Xemacs,检查系统,的,的home目录(WinXP/2000/NT下可在DOS方,式,式下用命,令,令 set HOME 检,查,查. 在,此,此假定为c:\,在home目录下,建,建立子目,录,录(用DOS命令mkdir).xemacs,从John Fox的主,页,页下载设,置,置文件fox-ess-config.zip ,,地址为:http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/ESS/index.html,将解压文,件,件init.el,改,改名为Rini
21、t.el并复制到.xemacs,下,下,,30,将解压文,件,件function.xpm, line.xpm,para.xpm, region.xpm, source.xpm和stop.xpm复制到目,录,录,c:\Program Files\Xemacs\XEmacs-xx.y.z\etc\toolbar\,(xx.y.z为Xemacs的版,本,本号),,由,由此在Xemacs中建立R的工具,条,条.,(若没有)添加系,统,统搜索路,径,径: c:\Program Files\R\rwxxxx\bin,(在WinXP/2000/NT中,可,可由控制,面,面板=>,系,系统=>,高,高级=>,
22、环,环境变量,中,中新建/添加).,另一方法,:,: 用纯,文,文本修改,文,文件Rini.el中的关,于,于R的搜,索,索,即(setq-default inferior-R-program-name “c:/Program Files/rwxxxx/bin/rterm.exe”)----,也,也即只要,去,去掉之前,的,的分号(;).,修改桌面,图,图标XEmacs,的,的属性:,在,在快捷,方,方式的”,目,目标”下,添,添加,-q -l “c:\.xemacs\Rinit.el“, 在”,起,起始位置,”,”添加存,放,放文件的,目,目录.,31,ESS+XEmacs下R,的,的使用-
23、--了,解,解XEmacs视,窗,窗,不是问题,的,的问题:,每次打开R_XEmacs,可,可能会弹,出,出信息“Initialization complete”,只要,点,点击OK,键,键就行了.,安装后初,次,次使用会,在,在屏幕的,底,底部(“minibuffer”中)出现当,前,前窗口无法打开.Rhistory 的,信,信息. 此记,录,录历史命,令,令的文件,会,会在正常,退,退出R与ESS时,建,建立(但,只,只在下面,窗,窗口>提示符后,直,直接输入,一,一个或多,个,个命令后!),32,33,视窗介绍,JohnFox,将,将Xemacs主,窗,窗口(实,际,际上称为frame)
24、分为,二,二个子窗,口,口,上下,分,分开(见,上,上图所示).,在Xemacs主,窗,窗口的上,方,方还有一,个,个菜单条(menu bar)和一个,工,工具条(toolbar),其内,容,容会随缓,冲,冲区(buffer)主模式(major mode)而变化.你可以,通,通过光标,在,在上下子,窗,窗口中转,换,换观察菜,单,单与工具,条,条的变化.,J. Fox为R,提,提供了专,门,门的工具,条,条与菜单,非常便,于,于使用(,后,后面介绍).,上面的子,窗,窗口显示*scratch*缓冲区,,其,其中你可,以,以输入R,命,命令.顾,名,名思义,*scratch*缓冲并非,永,永久性
25、的,当然你,可,可以将其,内,内容保存,在,在文件中.,下面的子,窗,窗口显示R经Emacs运,行,行的结果,在此缓,冲,冲区中你,也,也可以直接,输,输入R命,令,令.,34,每一子窗,口,口下均有,一,一个模式,行,行(modeline),显示,的,的缓冲的,状,状态,其,中,中包括:1)缓冲,的,的名字2)缓冲,的,的主模式(或次模,式,式) 3)窗口在,缓,缓冲中的,位,位置.,上面的子,窗,窗口包含*scratch*buffer,处,于,于ESS[S]主模式(,主,主模式由,文,文件的扩,展,展名所决,定,定. S,指,指S语言,当打开,扩,扩展名,为,为.r,.R,.s,.S,.q
26、的S,语,语言源代,码,码时,均,处,处于ESS[S],主,主模式中),显示,所,所有(ALL)缓冲内,容,容—现在,是,是空的.,下面的子,窗,窗口包含*R*buffer,,处,处在iESS(inferior ESS –,之,之所以你,它,它是inferior,因,为,为它是受Emacs控制的!),,目,目前处在,缓,缓冲的底,部,部(Bot). 你,可,可以滑动,游,游标观察,其,其位置的,变,变化.,指针(point): Emacs,的,的光标,,它,它与通常,的,的光标还,是,是有所差,异,异,不过JohnFox,在,在ESS,模,模式下按Windows的,习,习惯进行,了,了修改.,
27、在窗口的,下,下方是一,个,个单行的,小,小窗口,,称,称为minibuffer(小缓冲),主要,用,用于信息,显,显示,其,次,次若你要,输,输入Emacs命,令,令,它们,会,会显示在minibuffer中,,最,最后一命,令,令(如搜,索,索和替换)的响应,在,在此完成.,35,ESS+XEmacs下R,的,的使用,---R_XEmacs,视,视窗,Paste toR(粘,贴,贴至R),按,按钮 --- 将,上,上面子窗,口,口中的命,令,令送到下,面,面子窗口,中,中执行,Pasteline执,行,行,光,光,标,标,所,所,在,在,行,行,Pasteparagraph执,行,行,光,
28、光,标,标,所,所,在,在,段,段,落,落(,其,其,中,中,不,不,含,含,空,空,行,行),Pastefunction执,行,行,已,已,定,定,义,义,的,的,光,光,标,标,所,所,在,在,的,的,函,函,数,数,Pasteregion执,行,行,用,用,鼠,鼠,标,标,标,标,记,记,的,的,区,区,域,域,SourcetoR执,行,行,上,上,面,面,子,子,窗,窗,口,口(,缓,缓,冲,冲,区,区),中,中,的,的,所,所,有,有,命,命,令,令,对,于,于R,源,源,文,文,件,件,在,在,执,执,行,行,之,之,前,前,会,会,重,重,新,新,保,保,存,存,更,更,新,新,
29、的,的,代,代,码,码,对,于,于*scratch*buffer,中,中,的,的,代,代,码,码,保,保,存,存,后,后,才,才,能,能,执,执,行,行,(,不,不,同,同,于,于,前,前,的,的,几,几,种,种,方,方,式,式)R,文,文,件,件,中,中,的,的,源,源,代,代,码,码,的,的,执,执,行,行,过,过,程,程,不,不,在,在,下,下,面,面,的,的,子,子,窗,窗,口,口,中,中,显,显,示,示,出,出,来,来!注,意,意:首,次,次,使,使,用,用,会,会,在,在minibuffer,中,中,出,出,现,现Processtoloadinto:R,,按,按,回,回,车,车,键
30、,键,继,继,续,续,Stop中,止,止,当,当,前,前,计,计,算,算(,如,如,由,由,于,于,超,超,时,时),36,R,子,子,菜,菜,单,单,如果,光,光标/指,针,针须,在,在R,的,的源,文,文件,中,中,,则,则会,出,出现ESS菜,单,单,,进,进行ESS会,出,出现JohnFox,特,特地,为,为R,设,设计,的,的R,子,子菜,单,单.,R子,菜,菜单,本,本身,包,包括,三,三个,子,子菜,单,单,File文件,Packages宏包,Misc其它,它们,的,的功,能,能与RGUI的类,似,似,37,ESS=>R=>File,菜,菜单,,SourceRcode…打开,对,
31、对话,框,框以,选,选择,源,源文,件,件,Saveworkspace,…,…将R,的,的工,作,作空,间,间存,入,入文,件,件,Loadworkspace,…,…加载,保,保存,的,的工,作,作空,间,间,ChangeRdirectory,…,…改变,工,工作,空,空间(指R运,行,行过,程,程空,间,间,,并,并非,指,指上,面,面子,窗,窗口,的,的源,文,文件,目,目录),38,ESS=>R=>packages,菜,菜单,,Loadpackage,…,…加载R宏,包,包,,纳,纳入,搜,搜索,目,目录,InstallpackagefromCRAN…从CRAN处,选,选择,.,.下,载
32、,载.,安,安装,宏,宏包(需,要,要internet连,接,接!),Installpackagefromlocalzipfile…从本,地,地计,算,算机,或,或网,络,络宏,包,包(zip压,缩,缩文,件,件),UpdatepackagesfromCRAN…从CRAN处,更,更新,宏,宏包,–,–,搜,搜,索,索所,有,有安,装,装宏,包,包的,新,新版,本,本,,下,下载,并,并安,装,装,39,ESS=>R=>Misc,菜,菜单,,Removeallobjects,…,…删除R工,件,件空,间,间中,所,所有,的,的对,象,象,Listobjects,…,…列出R工,作,作空,间,间中
33、,的,的对,象,象,Displaypath,…,…列出R的,搜,搜索,路,路径,File=>ExitR/Xemacs菜,单,单,QuitsavingRworkspace在当前的R目录中,保,保存工作,空,空间,Justquit不保存R,工,工作空间,直,直接退出R,系统,会,会,提,提醒,你,你是否真,的,的不保存,修,修改的缓,冲,冲,,40,R的语法,与,与数据结,构,构,语法,符号,>,命,命,令,令或运算,提,提示符,+,续,续,行,行符,基本算术,运,运算,+ 加号,-,减,减号,* 乘,号,号,/ 除,号,号,^ 乘,方,方,赋值符,= 或<-,41,求助符,?,help()
34、,例子:,>3+5,>3-5,>3/5,>3^5,>x=5,>?plot,>help(plot),42,向量,向量是R,中,中最为基,本,本的类型,一个向量,中,中元素的,类,类型必须,相,相同,包,括,括,数值型,整型,单精度实,型,型,双精度实,型,型,逻辑型,复值型,字符型,43,建立向量,的,的方法(,函,函数),seq()或:若向量(,序,序列)具,有,有较为简,单,单的规律,rep()若向量(,序,序列)具,有,有较为复,杂,杂的规律,c()若向量(,序,序列)没,有,有什么规,律,律,例子:,>1:10,>seq(1,10,by=0.5),>seq(1,10,length=21)
35、,>rep(2:5,2),>rep(2:5,rep(2,4)),>x=c(42,7,64,9),>length(x),44,向量运算,中,中的循环,法,法则(recyclingrule),,,>1:2+1:4,,,,,,>1:4+1:7,,45,向量的下,标,标(index),与,与向量子,集,集(元素)的提取,正的下标提取向量,中,中对应的,元,元素,负的下标去掉向量,中,中对应的,元,元素,逻辑运算提出向量,中,中元素的,值,值满足条,件,件的元素,注:R中,向,向量的下,标,标从1开,始,始,这与,通,通常的统,计,计或数学,软,软件,一致而象C语言等,计,计算机高,级,级语言的,向,向
36、量下标,则,则从0开,始,始!,例子:,>x =c(42,7,64,9),>x[1],>x[-2],>x[c(1,4)],46,>x>10#值,大,大于10,的,的元素逻,辑,辑值,[1]TRUEFALSETRUE FALSE,>x[x>10]#,值,值大于10的元素,[1]4264,>x[x10],> #产,生,生(0,1)上100个均,匀,匀分布随,机,机数,>y =runif(100,min= 0,max= 1),>sum(y<0.5)#,值,值小于0.5的元,素,素的个数,[1]47,>sum(y[y<0.5])#,值,值小于0.5的元,素,素的值的,和,和,[1]10.84767,
37、47,数据框架(data frame),许多数据,集,集是数据,框,框架的形,式,式出现,一个数据,框,框架就是,将,将许多向,量,量组合起,来,来的一个,对,对象,它,是,是二维的,,,,通常其,列,列表示变,量,量,其行,表,表示观测,。,。,建立数据,框,框架的方,法,法(函数),若你的数,据,据本身保,存,存在一个,文,文件中,,则,则可以使,用,用,read.table()仅接受带,有,有分界符,的,的ASCII数据,如果数据,是,是电子报,表,表的形式,,,,则采用,下,下面的两,种,种变型,read.csv(),先,先将数,据,据另存为,带,带逗号的,数,数据(CommaSepe
38、ratedvalues),read.delim(),先,先将数据,另,另存为用tab作,为,为分界符,的,的数据,注:若数,据,据集很大(如1,000,000观,测,测x200变量),,,,则可由ODBC联接由,数,数据库读,入,入.,48,若你在R,中,中建立了,一,一些向量,并,并试图想,由,由它们生,成,成框架,,则,则可以使,用,用data.frame(),但需要,同,同时cbind().,例子:,>x=c(42,7,64,9),>y=1:4,>z.df=data.frame(cbind(INDEX= y, VALUE= x)),>z.df,INDEXVALUE,1142,227,33
39、64,449,注,,.df,只,只是为了,提,提醒自己z.df,是,是一个数,据,据框架,INDEX和VALUE是,重,重新命名,的,的向量名,字,字,49,数据框架,子,子集的提,出,出取,格式foo[row, column]其,中,中foo,数,数据框架,的,的名称row,需,需要,提,提出取的,行,行号column,需,需要,提,提出取的,行,行号,例子(续,上,上一例),> z.df[1,]# 提,取,取第一个,观,观测(第,一,一行),INDEX VALUE,1142,> z.df[,1]#提取,第,第一列(,第,第一个变,量,量的值),[1]1 23 4,> z.df[2,1
40、]#提取第,二,二行第一,列,列的元素,[1]2,50,列表(list),复杂的数,据,据分析时,,,,仅有向,量,量与数据,框,框架还不,够,够,有时需要,生,生成包含,不,不同类型,的,的对象,R的列表(list)就是,包,包含任何,类,类型的对,象,象,例子:,>foo= list(x =1:6,y =matrix(1:4,nrow =2)),>foo,$x,[1]1 23 45 6,$y,[,1][,2],[1,]13,[2,]24,51,列表子集,的,的提出取,提取一个,子,子对象如foo的x,下面,三,三种方式,等,等价>foo$x>foo[1]>foo[[1]],例,例子,
41、>foo$y,>foo[2],>foo[[2]],>foo[[1]][2],>foo$y[2],>foo$y[4],52,条件语句,作用:,避,避免除零,或,或负数的,对,对数等数,学,学问题,形式1:if(条件),表,表,达,达式1else,表,表达式2,形式2,–,– 常优,于,于形式1,!,!ifelse(条,件,件,yes,no),试比较下,面,面的三个,结,结果:>x =c(6:-4),> sqrt(ifelse(x>= 0, x,NA)),> ifelse(x >= 0,sqrt(x), NA),>if(x >= 0)sqrt(x)else NA,53,循环(loops),for(
42、)#若知,道,道终止条,件,件for (变,量,量 in 向,量,量),表,表达式,while()#,若,若无法知,道,道运行次,数,数while(,条,条件),表,表达式,两者通常,可,可以转换,例,例1—,试,试比较两,种,种方法>for(iin 1:5)print (1:i)>i=1>while(i <=5){ +print(1:i)+ i= i+1+ },54,例2 –,见,见Ko-Kang Wang’s,“,“RProgrammingWorkshop,”,”, pp6-8,Supposewe generatea pseudoDNAmicroarrayandwe wantto
43、 do anANOVA on it. Firstwe generatesomefactorsforArray (a),Treatments (t) and Genes(g). Then generatesomenormalrandom numbers for the logged foregroundintensity.Thenweputintoanaov() function for eachgene,–,–thisiswhere the loop is good for. Note thatyouwillgetdifferent answer when you try it, becaus
44、e of the randomnumbersgenerated.,程序如下(使用for循环,,,,也可改,用,用while循环):DNA_anova.R注:R控,制,制面板中,显,显示符号>和+,,而,而源程序,中,中是不需,要,要的!,55,> n= 3044,> a= c(rep(1, 2* n), rep(2, 2* n)),> t= c(rep(1, n), rep(2, n), rep(2,n),rep(1,n)),> g= rep(rep(1:1522, rep(2,1522)),4),> y= rnorm(4 *n, mean= 4.13,sd =0.75),> ybar =da
45、ta.frame(A =factor(a), G= factor(g),,+T= factor(t), Intensity= y),> attach(ybar),> ybar[1:10,]#,查,查看ybar的前10行,> res.mat =matrix(0, 1522,8, byrow= TRUE),> coef.mat =matrix(0, 1522,4,byrow =TRUE),> for(iin 1:1522) {,+ gene.aov= aov(Intensity~ A+ T+ A* T,,+sub= G== i),+res.mat[i, ]= residuals(gene.aov
46、)#,保,保存ANOVA分,析,析的残差,+coef.mat[i,] =coef(gene.aov)# 保存ANOVA分析的,方,方差系数,+ },> res.mat[1:10,] #,查,查看残差,的,的前10,行,行,> coef.mat[1:10,]#查看方,差,差系数的,前,前10行,56,向量化(vectorization),循环(loops)很有用,但如果,能,能将一组,命,命令向量,化,化,则应,尽,尽量避免,循,循环,原,因,因在于,C是一种,编,编译语言,,,,其效率,是,是很高的,;,;R则是,一,一种解释,语,语言。在,计,计算时,,通,通常C要,比,比R快100倍。,
47、在R中充,分,分使用向,量,量化,因,为,为R会立,即,即调用C,进,进行运算,,,,因而大,大,大提高计,算,算的效率,!,!,例子 -,–,–-见Ko-Kang Wang’s “RProgrammingWorkshop”,pp9-11 (Gamma函数作,图,图),Vector_1.R,没,没有使,用,用向量和,循,循环的源,程,程序,Vector_2.R,使,使用for循环,改,改进后的,源,源程序,Vector_3.R,使,使用向,量,量化后源,程,程序,57,函数,函数是一,系,系列语句,的,的组合,,在,在R中可,以,以写出自,己,己的函数,形式:变量名= function(,变,
48、变量列表),函,函数体,函数引用: 变,量,量名(变,量,量的值),函数可以,递,递归引用,,,,但不提,倡,倡!,例子 –,使,使用gamma,函,函数求n!>factorial =function(n){,+ if(n>=0)gamma(n+1),+ else print(“Pleaseinput apositive integer!"),+},>factorial(6),>factorial(-6),58,用于处理,错,错误的函,数,数 –,用,用于处理,用,用户输入,不,不正确的,类,类型而可,能,能出现的,错,错误,warning(),若,若错,误,误不严重,以,以至影响,整,整
49、个计算,stop(),若,若错误,可,可能导致,计,计算中止,print(),显,显示,必,必要的信,息,息,formatC(),数,数值,作,作为字符,串,串输出,cat(),字,字符,串,串联,可,以,以插入\n(换行)及\t(tab,键,键),paste(),字,字符粘贴(非字符,型,型自动转,换,换)例,子,子:,>cat("R", "is","a good","software.\n"),>formatC(1/3, format= "f",digits =4)> formatC(1/3, format ="e",digits= 4)>paste(1:12) #,与,与as.cha
50、racter(1:12),等,等价>paste("A", 1:6,sep= "")>paste("todayis",date()),59,R中的编,程,程,编程的重,要,要性,一个统计,软,软件(包)应该包,罗,罗万象—,所,所有统计,方,方法或技,术,术,可以,完,完成所有,的,的任务?,?,?,这是一种,错,错误的观,点,点!!,太贵!!,费时!!,SAS是,一,一个世界,上,上最为优,秀,秀的统计,分,分析软件,之,之一,但,…,……!!,当,当然SAS具体编,程,程能力,,而,而SPSS更糟!,通过编程,可,可以实现(开发),满,满足自己,需,需要的函,数,数或宏包,,60,好的编
51、程,习,习惯,为了他人,,,,更为你,本,本人!,你,你的程,序,序应该具,有,有,可读性(readability),可理解性(understandability),习惯之一,:,:行前缩,进,进(Indentation),在,此,此推荐使,用,用软件,WinEdt=> 已,开,开发了基,于,于WinEdt的R使用平,台,台,(X)Emacs=>已,开,开发了基,于,于(X)Emacs的R使,用,用平台,UltraEdit,习惯之二,:,:增加注,释,释(Commenting),它是,你,你的帮助,R中使用#作为注,释,释语句的,开,开始.,习惯之三,:,:变量的,命,命名,使,用,用意义明,
52、确,确的名字,,,,切忌使,用,用人或宠,物,物的名字,61,例子 –,缩,缩进,> for(iin 1:1522) {,+gene.aov <- aov(Intensity~ A+ T+ A* T,,+sub =G == i),+res.mat[i,] <- residuals(gene.aov),+coef.mat[i, ]<- coef(gene.aov),+ },或,>for(i in 1:1522),> {,+gene.aov <- aov(Intensity~ A+ T+ A* T,,+sub =G == i),+res.mat[i,] <- residuals(gene.aov
53、),+coef.mat[i, ]<- coef(gene.aov),+ },62,实例演示,1.JulianFaraway,提,提供的一,个,个简短的,入,入门,IntroductiontoR,使用 RGUI,使用 RCommander,使用 R_XEmacs,Furtherreference: Moore's,TheBasic Practice of Statistics,Second Edition,(Freeman, 2000),,2.JohnVerzani,提,提供的,统,统计学入,门,门 SimpleR --- UsingR for IntroductoryStatistics,使用R_WinEdt,63,演讲完毕,,,,谢谢观,看,看!,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。