版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,R語(yǔ)言—介紹,數(shù)理信息學(xué)院湯銀才,2,R介紹,為什么要學(xué)習(xí)R語(yǔ)言R的資源 資料與文獻(xiàn) 網(wǎng)站 統(tǒng)計(jì)分析軟件包R的運(yùn)行平臺(tái) R_GUI R_Commander R_WinEdt R_ESS+XEmacs,3,,語(yǔ)言/軟件使用示例John Verzani, Simple R – Using R for Introductory Statistics, 2002 http://www.math.csi.cuny.ed
2、u/Statistics/R/simpleR/index.htmlJ.H. Maindonald, Using R for Data Analysis and Graphics – An Introduction, 2001Julian J. Faraway, Practical Regression and ANOVA Uing R, 2002http://www.stat.lsa.umich.edu/~faraway/快速入
3、門:http://www.stat.lsa.umich.edu/~faraway/ stat500/introR.html S. Chatterjee, A.S. Hadi & B. Price, Regression Analysis by Example, 3rd Ed., John Wiley & Sons, 2000http://www.ilr.cornell.edu/~hadi/RABE/ (印影版,
4、中國(guó)統(tǒng)計(jì)出版社,2003),4,R的無(wú)私奉獻(xiàn)者,Bill Venables,Robert Gentleman,Ross Ihaka,5,為什么要學(xué)習(xí)R語(yǔ)言,R是一個(gè)開放(GPL)的統(tǒng)計(jì)編程環(huán)境一種語(yǔ)言,是S語(yǔ)言(由AT&T Bell實(shí)驗(yàn)室的Rick Becker, John Chambers,Allan Wilks開發(fā))的一種方言(dialect) 之一,另一則為S-plus.一種軟件,是集統(tǒng)計(jì)分析與圖形直觀顯示于一體的統(tǒng)
5、計(jì)分析R作為一個(gè)計(jì)劃(project),最早(1995年)是由Auckland大學(xué)統(tǒng)計(jì)系的Robert Gentleman和Ross Ihaka開始編制,目前由R核心開發(fā)小組(R Development Core Team – 以后用R DCT表示)維護(hù),他們完全自愿、工作努力負(fù)責(zé),并將全球優(yōu)秀的統(tǒng)計(jì)應(yīng)用軟件打包提供給我們。我們可以通過(guò)R計(jì)劃的網(wǎng)站(http://www.r-project.org)了解有關(guān)R的最新信息和使用說(shuō)明,得到
6、最新版本的R軟件和基于R的應(yīng)用統(tǒng)計(jì)軟件包.,6,,R是完全免費(fèi)的??! 而S-Plus盡管是非常優(yōu)秀的統(tǒng)計(jì)分析軟件,可是你需要支付一筆$US .R可以在運(yùn)行于UNIX, Windows和Macintosh的操作系統(tǒng)上 .R嵌入了一個(gè)非常實(shí)用的幫助系統(tǒng).R具有很強(qiáng)的作圖能力.我們將R程序容易地移植到S-Plus程序中,反之S的許多過(guò)程直接或稍作修改用于R.通過(guò)R語(yǔ)言的許多內(nèi)嵌統(tǒng)計(jì)函數(shù),很容易學(xué)習(xí)和掌握R語(yǔ)言的語(yǔ)法.我們可以編制自
7、己的函數(shù)來(lái)擴(kuò)展現(xiàn)有的R語(yǔ)言(這就是為什么它在不斷等級(jí)完善!!)…....,7,網(wǎng)站—R的資源,R主頁(yè): http://www.r-project.orgCRAN (Comprehensive R Archive Network), http://cran.r-project.orgCRAN的鏡像站點(diǎn) http://cran.r-project.org/mirrors.htmlUCLA提供的關(guān)于R與S-Plus的聯(lián)接
8、,具有搜索功能 http://statcomp.ats.ucla.edu/splus/default.htm李東風(fēng)主頁(yè)提供了R的Windows版本 http://cn.math.pku.edu.cn/teachers/lidf/index.html如果使用FTP軟件(如Cuteftp)則推薦使用(匿名訪問(wèn))ftp.u-aizu.ac.jp,8,統(tǒng)計(jì)分析軟件包,CRAN提供了許多便于統(tǒng)計(jì)分析的宏包:http://cra
9、n.r-project.org/src/contrib/PACKAGES.htmlstable -- 穩(wěn)妥(分布)廣義回歸分析tseries – 時(shí)間序列分析 VaR – 風(fēng)險(xiǎn)值分析matrix – 矩陣運(yùn)算cinterface – C與R的接口foreign – 讀寫由S, Minitab, SAS, SPSS, Stata等軟件的數(shù)據(jù)normix – 混合正態(tài)分布分析nortest – 正態(tài)分布的Anderson-
10、Darling檢驗(yàn)MCMCpack – 基于Gibbs抽樣的MCMC抽樣方法 fracdiff – 分?jǐn)?shù)差分模型的極大似然估計(jì) 還有很多……,9,,參考資料 隨軟件所附pdf文檔(help->manuals),隨版本更新:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environmen
11、t for Data Analysis and Graphics, 2003.http://bayes.math.montana.edu/Rweb/Rnotes/R.htmlR DCT, The R Environment for Statistical Computing and Graphics -- Reference Index,2003.R DCT, R Data Import/Export, 2003.R DCT,
12、R Language Definition,2003R DCT, Writing R Extensions,2003,10,,Kurt Hornik, R FAQ, Version 1.8-1, 2003-10-07 B. D. Ripley, R for Windows FAQ, Version for rw1080R Html Help, Statistical Data Analysis 其它PDF/HTML文件:
13、Kickstarting R, http://cran.r-project.org/doc/contrib/ Lemon-kickstart/R examples, Alison Gibbs, http://www.utstat.toronto.edu/alisong/Teaching/ Winter04/Sta248/Rex.html,11,,*Ko-Kang Wang, Introduction to R for Statis
14、ticians,2004J.H. Maindonald, Using R for Data Analysis and Graphics – An Introduction, 2001J.H. Maindonald, Using S-PLUS for Data Analysis and Graphics, 2001Emmanuel Paradis, R for beginners Jonathan Baron, R referen
15、ce card Bret Larget, R for Introductory Statistics, 2002W. N. Venables and B. D. Ripley,Modern Applied Statistics with S,4th Ed., 2002 http://www.stats.ox.ac.uk/pub/MASS4/,12,,近期暢銷書:Peter Dalgaard, Introductory St
16、atistics with R, Springer, 2002John Maindonald, John Braun, Data Analysis and Graphics Using R -- An Example-based Approach, Cambridge University Press,2003John Fox, An R and S-Plus Companion to Applied Regression, Sag
17、e Publications, Inc., 2002,13,R的運(yùn)行平臺(tái)-1,R_GUI啟動(dòng)R,我們看到R GUI (graphic user’s interface)的主窗口, 它由三部分組成主菜單工具條R console (R的運(yùn)行窗口)R console你的主要工作是在這里通過(guò)發(fā)布命令來(lái)完成的,包括數(shù)據(jù)集的建立,數(shù)據(jù)的分析,作圖等.在這里你可以得到在線幫助help.start() HTML格式的關(guān)于R的幫助文
18、件help() 得到相應(yīng)函數(shù)的幫助,例如help(plot)demo() 得到R提供的幾個(gè)示例q() 退出R 同Matlab類似,用右shift鍵可以重現(xiàn)以前的命令,14,,工具條介紹,Source R code,Load image,Save image,Copy and Paste,Stop current computation,,,,,,,S
19、ource R code 執(zhí)行R文件(*.R或*.r)Save image 保存工作空間,文件名為*.RDataLoad image 打開已有的工作空間Stop current computation中止當(dāng)前計(jì)算(由于超時(shí)等原因),15,,主菜單介紹,,,,,,,16,R的運(yùn)行平臺(tái)-2,R_Commander (幫助文件) 作者: John Fox (j
20、fox@mcmaster.ca)版本:Rcmdr Version 0.9-0 安裝Rcmdr是R的一個(gè)宏包,它還需要宏包c(diǎn)ar的支持在加載Rcmdr宏包之前,需要先安裝宏包c(diǎn)arRcmdr僅在單文件RGui (SDI)下工作,這可通過(guò)RGui的Edit=>GUI preferences…進(jìn)行設(shè)置(注:好象均可?)運(yùn)行安裝宏包c(diǎn)ar在RGui下通過(guò)Packages=>Load packages…加載Rcmdr
21、宏包,17,,18,,功能R Commander是一個(gè)交互式菜單/對(duì)話框系統(tǒng)(menu/dialog-box interfaces),用于進(jìn)行數(shù)據(jù)的讀、寫、轉(zhuǎn)換及常用的統(tǒng)計(jì)分析.作者還添加了線性與廣義線性模型等統(tǒng)計(jì)分析工具. 結(jié)構(gòu)與使用(具體見Rcmdr的Getting Started部分)R Commander窗口由一些菜單及按鈕組成.菜單的下方是一個(gè)log/script窗口通過(guò)菜單的對(duì)話框?qū)⒚畎l(fā)送到RGUI中,以完成某一
22、項(xiàng)統(tǒng)計(jì)分析.這些命令同時(shí)在log窗口中顯示出來(lái).它們可以被重新編輯修改,并可通過(guò)Rcmdr窗口右下角的Submit按鈕再一次發(fā)送給R執(zhí)行命令指向一個(gè)當(dāng)前的或者活動(dòng)的數(shù)據(jù)集.一旦讀入一個(gè)新的數(shù)據(jù)集,它就是活動(dòng)的.注:通過(guò)Data=>Import data加載數(shù)據(jù)集,其名字及路徑不能含有中文,而中R GUI中是允許的!!,19,,R Commander的菜單,R Commander 菜單樹(Menu Tree) (點(diǎn)擊),R Com
23、mander的信息反饋(information field),20,R的運(yùn)行平臺(tái)-3,R_WinEdt – 安裝與使用作者: Uwe Ligges (ligges@statistik.uni-dortmund.de) 版本:RWinEdt Version 1.6.0必備軟件R: http://cran.r-project.org/WinEdt5.x: http://www.winedt.com/ (或CTeX2.3.x)
24、R-WinEdt: http://cran.r-project.org/contrib/extra/winedt/R_WinEdt的安裝將R_WinEdt壓縮軟件釋放到WinEdt的plugins\R-WinEdt目錄下雙擊install.exe文件進(jìn)行進(jìn)行安裝,由此會(huì)在WinEdt目錄下自動(dòng)生成R.ini(此目錄還有winedt.exe!)在此我們假定大家已安裝了CTeX2.3.x,并進(jìn)行缺省安裝,也即WinEdt在 C:\C
25、TeX\WinEdt 目錄下,21,,R_WinEdt的設(shè)置設(shè)置桌面快擊鍵: 為了同時(shí)可以使用LaTeX/CTeX和R_WinEdt,在桌面上復(fù)制一個(gè)WinEdt快擊鍵,并命名為R_WinEdt;右擊R_WinEdt快擊鍵,選擇屬性,然后在“目標(biāo)(T)”中輸入 C:\CTeX\WinEdt\WinEdt -C="R-WinEdt" -e=r.ini(并不必須)如果每次運(yùn)行R都想加載某個(gè)/些軟件包或
26、函數(shù),則可對(duì)R主目錄下etc下的.Rprofile進(jìn)行修改,如每次加載simple宏包就可使用下面的設(shè)置library(simple)options(editor="\"c:/program files/winedt/winedt\"-c=\"R-WinEdt-edit\" -e=r.ini -V"),22,,R_WinEdt 界面,23,,R_WinEdt
27、菜單,24,,R_WinEdt的特點(diǎn)- 與RGui共同運(yùn)行- 具有WinEdt的強(qiáng)大功能 (如Delimiter檢查, 高級(jí)搜索, 書簽,宏, 縮進(jìn)與注釋的對(duì)齊等) - 語(yǔ)法高亮顯示(Syntax-Highlighting) - 同時(shí)可以編輯多個(gè)R程序- 設(shè)置簡(jiǎn)單快速的按鈕與快擊鍵- 將窗口中的代碼(script)發(fā)送到R中運(yùn)行- WinEdt中選中的代碼(code)發(fā)送到R中運(yùn)行- 單行代碼(script)發(fā)送到R中
28、運(yùn)行- 及時(shí)更新歷史命令記錄文件 .Rhistory,以便重復(fù)使用舊的命令- 提供衫的模塊,如: for(_ in _){_},25,,R_WinEdt – 菜單與熱鍵# Command Hot Key Menu Icon 說(shuō)明#----------------------------------------------------
29、--------------------------------------------------# Brackets Check Ctrl+F12 {} 括號(hào)配對(duì)檢查# R History ALT+H R HIST. 保存歷史記錄# R-l
30、ine - and go ALT+L 單行發(fā)送# R-line Ctrl+ALT+L 單行發(fā)送并返回# R<- R-paste - and go ALT+P R<-PASTE 選中后發(fā)送# R<- R
31、-paste Ctrl+ALT+P 選中后發(fā)送并返回# R<- R-source - and go ALT+S R<-SOURCE R文件發(fā)送(先打開)# R<- R-script Ctrl+ALT+S R SCRIPT R文件發(fā)送并返回# function
32、 Ctrl+Alt+F 生成函數(shù)框架# for Ctrl+Alt+O 生成for循環(huán)框架# if Ctrl+Alt+I
33、 生成if框架# ifelse Ctrl+Alt+E 生成ifesle框架# <- Ctrl+- 生成賦值符號(hào),26,R的運(yùn)行平臺(tái)-4,R_
34、ESS+XEmacs – 安裝與使用 (作者: John Fox)關(guān)于ESS與XEmacsEmacs是一個(gè)功能強(qiáng)大廣為使用的編程器,可以進(jìn)行配對(duì)檢查,語(yǔ)法高亮顯示,查錯(cuò)(debugging)等. For some Unix/Linux users, Emacs is more a way of life than an editor.ESS(Emacs Speaks Statistics)可以為許多統(tǒng)計(jì)軟件定制相應(yīng)的編程
35、環(huán)境,包括R, S-Pplus, SAS, Stata, Lisp-Stat等.Emacs主要有二個(gè)版本: GNU Emacs 和 XEmacs.由于使用了ESS,因此多個(gè)統(tǒng)計(jì)分析軟件可并存于同一平臺(tái).John Fox的ESS設(shè)置提供了一個(gè)主窗口,上下二個(gè)子窗口: 上面的用于輸入R的源文件/代碼,下面的用于顯示這些R程序/代碼在XEmacs運(yùn)行后的輸入與輸出結(jié)果.(點(diǎn)擊此處查看)XEmacs和ESS均是免費(fèi)的!,27,,28,必
36、備軟件與安裝R: http://cran.r-project.org/Xmacs with Ess: http://www.xemacs.org/Download/win32/先下載Xemacs的安裝器(installer) setup.exe并運(yùn)行,接著進(jìn)行net安裝或下載Xemacs及必要的宏包。必要的宏包包括ess mail-libdired pc
37、ediff speedbar edit-utils vc efs xemacs-basefsf-compat xemacs-i586-pcwin32若你已下載了上述宏包,則可以選擇本地安裝(local directory),,29,XEmacs Netinstaller --- Install from the InternetPlease note that these screensh
38、ots do not contain the latest version numbers for XEmacs, its packages and the installer itself. They are meant to give you a general idea of what the download/installation process will look like.An overview of existing
39、 packages and their purpose may be found at http://www.xemacs.org/Develop/packages.htmland under the XEmacs source tree in etc/ PACKAGES.,,注:請(qǐng)選擇Native類型(這是Windows版的Xemacs),各站點(diǎn)的安裝或下載速度以及版本號(hào)有所不同.,去掉宏包, 點(diǎn)一下New一欄下對(duì)應(yīng)的版本號(hào)
40、; 此版本號(hào)即被Skip所代替.,30,,R_ESS+XEmacs的設(shè)置我們假定R與XEmacs的目錄分別為R: C:\Program Files\R\rwxxxx\ (xxxx為版本號(hào))Xemacs: C:\Program Files\Xemacs檢查系統(tǒng)的home目錄(WinXP/2000/NT下可在DOS方式下用命令 set HOME 檢查. 在此假定為c:\在home目錄下建立子目錄(用DOS命令mkdir) .x
41、emacs從John Fox的主頁(yè)下載設(shè)置文件fox-ess-config.zip , 地址為:http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/ESS/index.html將解壓文件init.el改名為Rinit.el并復(fù)制到 .xemacs下,31,,將解壓文件function.xpm, line.xpm, para.xpm, region.xpm, sour
42、ce.xpm和stop.xpm復(fù)制到目錄 c:\Program Files\Xemacs\XEmacs-xx.y.z\etc\toolbar\ (xx.y.z為Xemacs的版本號(hào)),由此在Xemacs中建立R的工具條.(若沒(méi)有)添加系統(tǒng)搜索路徑: c:\Program Files\R\rwxxxx\bin (在WinXP/2000/NT中可由控制面板=>系統(tǒng)=>高級(jí)=>環(huán)境變量 中新建/添加
43、). 另一方法: 用純文本修改文件Rini.el中的關(guān)于R的搜索,即 (setq-default inferior-R-program-name “c:/Program Files/ rwxxxx/bin/rterm.exe”) ----也即只要去掉之前的分號(hào)(;).修改桌面圖標(biāo)XEmacs的屬性: 在快捷方式的”目標(biāo)”下添加 -q -l “c:\.xemacs\Rinit.el“, 在”起始位置”添加存放文件的目錄.,3
44、2,,ESS+XEmacs下R的使用 ---了解XEmacs視窗不是問(wèn)題的問(wèn)題:每次打開R_XEmacs可能會(huì)彈出信息“Initialization complete”,只要點(diǎn)擊OK鍵就行了.安裝后初次使用會(huì)在屏幕的底部(“minibuffer”中)出現(xiàn)當(dāng)前窗口無(wú)法打開 .Rhistory 的信息. 此記錄歷史命令的文件會(huì)在正常退出R與ESS時(shí)建立(但只在下面窗口>提示符后直接輸入一個(gè)或多個(gè)命令后!),33,34,,視窗介紹
45、John Fox將Xemacs主窗口(實(shí)際上稱為frame)分為二個(gè)子窗口,上下分開(見上圖所示).在Xemacs主窗口的上方還有一個(gè)菜單條(menu bar)和一個(gè)工具條(toolbar),其內(nèi)容會(huì)隨緩沖區(qū)(buffer)主模式(major mode)而變化.你可以通過(guò)光標(biāo)在上下子窗口中轉(zhuǎn)換觀察菜單與工具條的變化.J. Fox為R提供了專門的工具條與菜單,非常便于使用(后面介紹).上面的子窗口顯示*scratch*緩沖區(qū),其中
46、你可以輸入R命令.顧名思義, *scratch*緩沖并非永久性的,當(dāng)然你可以將其內(nèi)容保存在文件中.下面的子窗口顯示R經(jīng)Emacs運(yùn)行的結(jié)果,在此緩沖區(qū)中你也可以直接輸入R命令.,35,,每一子窗口下均有一個(gè)模式行(mode line),顯示的緩沖的狀態(tài),其中包括:1)緩沖的名字 2)緩沖的主模式(或次模式) 3)窗口在緩沖中的位置.上面的子窗口包含*scratch* buffer,處于ESS[S]主模式(主模式由文件的擴(kuò)展名所決定.
47、 S指S語(yǔ)言,當(dāng)打開擴(kuò)展名 為 .r, .R, .s, .S, .q的S語(yǔ)言源代碼時(shí),均處于ESS[S]主模式中),顯示所有(ALL)緩沖內(nèi)容—現(xiàn)在是空的.下面的子窗口包含*R* buffer, 處在iESS (inferior ESS – 之所以你它是inferior,因?yàn)樗鞘蹺macs控制的!), 目前處在緩沖的底部(Bot). 你可以滑動(dòng)游標(biāo)觀察其位置的變化.指針(point): Emacs的光標(biāo),它與通常的光標(biāo)還是有所差異
48、,不過(guò)John Fox在ESS模式下按Windows的習(xí)慣進(jìn)行了修改.在窗口的下方是一個(gè)單行的小窗口,稱為minibuffer(小緩沖),主要用于信息顯示,其次若你要輸入Emacs命令,它們會(huì)顯示在minibuffer中,最后一命令(如搜索和替換)的響應(yīng)在此完成.,36,,ESS+XEmacs下R的使用 --- R_XEmacs視窗Paste to R(粘貼至R)按鈕 --- 將上面子窗口中的命令送到下
49、面子窗口中執(zhí)行Paste line 執(zhí)行光標(biāo)所在行Paste paragraph 執(zhí)行光標(biāo)所在段落(其中不含空行) Paste function 執(zhí)行已定義的光標(biāo)所在的函數(shù)Paste region 執(zhí)行用鼠標(biāo)標(biāo)記的區(qū)域Source to R 執(zhí)行上面子窗口(緩沖區(qū))中的所有命令對(duì)于R源文件在執(zhí)行之前會(huì)重新保存更新的
50、代碼對(duì)于*scratch* buffer中的代碼保存后才能執(zhí)行(不同于前的幾種方式)R文件中的源代碼的執(zhí)行過(guò)程不在下面的子窗口中顯示出來(lái)! 注意:首次使用會(huì)在minibuffer中出現(xiàn)Process to load into: R,按回車鍵繼續(xù) Stop 中止當(dāng)前計(jì)算(如由于超時(shí)),37,,R子菜單如果光標(biāo)/指針須在R的源文件中,則會(huì)出現(xiàn)ESS菜單,進(jìn)行ESS會(huì)出現(xiàn)Joh
51、n Fox特地為R設(shè)計(jì)的R子菜單.R子菜單本身包括三個(gè)子菜單File 文件Packages 宏包Misc 其它它們的功能與R GUI的類似,38,,ESS=>R=>File菜單,,Source R code… 打開對(duì)話框以選擇源文件Save workspace…
52、 將R的工作空間存入文件Load workspace… 加載保存的工作空間Change R directory… 改變工作空間(指R運(yùn)行過(guò)程空間, 并非指上面子窗口的源文件目錄),39,,ESS=>R=>packages菜單,,Load package…
53、 加載R宏包,納入搜索目錄Install package from CRAN… 從CRAN處選擇.下載.安裝宏包(需要internet連接!)Install package from local zip file… 從本地計(jì)算機(jī)或網(wǎng)絡(luò)宏包(zip壓縮文件) Update packages from CRAN…
54、 從CRAN處更新宏包 – 搜索所有安裝宏包的新版本, 下載并安裝,40,,ESS=>R=>Misc菜單,,Remove all objects… 刪除R工件空間中所有的對(duì)象List objects… 列出R工作空間中的對(duì)象Display path… 列出R的搜索路徑,
55、File=>Exit R/Xemacs菜單Quit saving R workspace 在當(dāng)前的R目錄中保存工作空間Just quit 不保存R工作空間直接退出R,系統(tǒng)會(huì) 提醒你是否真的不保存修改的緩沖,41,R的語(yǔ)法與數(shù)據(jù)結(jié)構(gòu),語(yǔ)法符號(hào)> 命令或運(yùn)算提示符+ 續(xù)行符基本算術(shù)運(yùn)算+加號(hào)
56、 - 減號(hào)* 乘號(hào)/ 除號(hào)^ 乘方賦值符= 或 <-,42,,求助符?help()例子:>3+5>3-5>3/5>3^5>x=5>?plot>help(plot),43,,向量向量是R中最為基本的類型一個(gè)向量中元素的類型必須相同,包括數(shù)值型整型單精度實(shí)型雙精度實(shí)型邏輯型復(fù)值型字符型,44,,建立向量的方法(函數(shù))se
57、q() 或 : 若向量(序列)具有較為簡(jiǎn)單的規(guī)律rep() 若向量(序列)具有較為復(fù)雜的規(guī)律c() 若向量(序列)沒(méi)有什么規(guī)律例子:>1:10>seq(1,10,by=0.5)>seq(1,10,length=21)>rep(2:5,2)>rep(2:5,rep(2,4))>x=c(42,7,64,9)>length
58、(x),45,,向量運(yùn)算中的循環(huán)法則(recycling rule)>1:2+1:4>1:4+1:7,46,,向量的下標(biāo)(index)與向量子集(元素)的提取正的下標(biāo) 提取向量中對(duì)應(yīng)的元素負(fù)的下標(biāo) 去掉向量中對(duì)應(yīng)的元素邏輯運(yùn)算 提出向量中元素的值滿足條件的元素注:R中向量的下標(biāo)從1開始,這與通常的統(tǒng)計(jì)或數(shù)學(xué)軟件 一致而象C語(yǔ)言等計(jì)算機(jī)高級(jí)語(yǔ)言的向量下標(biāo)則從
59、0開始!例子:>x = c(42,7,64,9)>x[1]>x[-2]>x[c(1,4)],47,,>x>10 #值大于10的元素邏輯值 [1] TRUE FALSE TRUE FALSE>x[x>10] #值大于10的元素 [1] 42 64>x[x10]> #產(chǎn)生(0,1)上100個(gè)均勻分布隨機(jī)數(shù)>y
60、= runif(100, min = 0, max = 1)>sum(ysum(y[y<0.5]) # 值小于0.5的元素的值的和 [1] 10.84767,48,,數(shù)據(jù)框架(data frame)許多數(shù)據(jù)集是數(shù)據(jù)框架的形式出現(xiàn)一個(gè)數(shù)據(jù)框架就是將許多向量組合起來(lái)的一個(gè)對(duì)象,它是二維的,通常其列表示變量,其行表示觀測(cè)。建立數(shù)據(jù)框架的方法(函數(shù))若你的數(shù)據(jù)本身保存在一個(gè)文件中,則可以使用read.table(
61、) 僅接受帶有分界符的ASCII數(shù)據(jù) 如果數(shù)據(jù)是電子報(bào)表的形式,則采用下面的兩種變型read.csv() 先將數(shù)據(jù)另存為帶逗號(hào)的數(shù)據(jù)(Comma Seperated values) read.delim() 先將數(shù)據(jù)另存為用tab作為分界符的數(shù)據(jù) 注:若數(shù)據(jù)集很大(如1,000,000觀測(cè)x200變量),則可由
62、 ODBC聯(lián)接由數(shù)據(jù)庫(kù)讀入.,49,,若你在R中建立了一些向量并試圖想由它們生成框架,則可以使用data.frame(),但需要同時(shí)cbind().例子:>x=c(42,7,64,9)>y=1:4>z.df=data.frame(cbind(INDEX = y, VALUE = x))>z.dfINDEX VALUE1 1422
63、 2 73 3644 4 9注 ? .df 只是為了提醒自己z.df是一個(gè)數(shù)據(jù)框架 ? INDEX和VALUE是重新命名的向量名字,50,,數(shù)據(jù)框架子集的提出取格式 foo[row, column]其中 foo 數(shù)據(jù)框架的名稱 row 需要提出取的行號(hào) column
64、 需要提出取的行號(hào)例子(續(xù)上一例),> z.df[1,] # 提取第一個(gè)觀測(cè)(第一行) INDEX VALUE 1 1 42> z.df[,1] #提取第一列(第一個(gè)變量的值)[1] 1 2 3 4> z.df[2,1] #提取第二行第一列的元素[1] 2,51,,列表(list)復(fù)
65、雜的數(shù)據(jù)分析時(shí),僅有向量與數(shù)據(jù)框架還不夠有時(shí)需要生成包含不同類型的對(duì)象R的列表(list)就是包含任何類型的對(duì)象例子:>foo = list(x = 1:6, y = matrix(1:4, nrow = 2))>foo $x [1] 1 2 3 4 5 6 $y [,1] [,2] [1,] 1 3 [2,] 2 4,52,,列表子集的提出取提取一個(gè)子對(duì)象如foo的
66、x,下面三種方式等價(jià)> foo$x>foo[1]>foo[[1]] 例子>foo$y>foo[2]>foo[[2]]>foo[[1]][2]>foo$y[2]>foo$y[4],53,,條件語(yǔ)句 作用: 避免除零或負(fù)數(shù)的對(duì)數(shù)等數(shù)學(xué)問(wèn)題形式1: if (條件) 表達(dá)式1 else 表達(dá)式2形式2 – 常優(yōu)于形式1!ifelse(條件,
67、yes, no)試比較下面的三個(gè)結(jié)果:>x = c(6:-4) > sqrt(ifelse(x >= 0, x, NA)) > ifelse(x >= 0, sqrt(x), NA) >if (x >= 0) sqrt(x) else NA,54,,循環(huán)(loops)for() #若知道終止條件for (變量 in 向量) 表達(dá)式whi
68、le() #若無(wú)法知道運(yùn)行次數(shù)while(條件) 表達(dá)式兩者通常可以轉(zhuǎn)換例1—試比較兩種方法>for (i in 1:5) print (1:i)>i=1>while(i <= 5) { + print(1:i) + i = i+1 + },55,,例2 – 見Ko-Kang Wang’s “R Programming Workshop”, pp6-8Suppose we ge
69、nerate a pseudo DNA microarray and we want to do an ANOVA on it. First we generate some factors for Array (a), Treatments (t) and Genes (g). Then generate some normal random numbers for the logged foreground intensity. T
70、hen we put into an aov() function for each gene – this is where the loop is good for. Note that you will get different answer when you try it, because of the random numbers generated.程序如下(使用for循環(huán),也可改用while循環(huán)):DNA_anova.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- sas軟件介紹 - 數(shù)學(xué)建模學(xué)習(xí)資源站
- 收藏量超100萬(wàn)份的專業(yè)文檔資源站
- 收藏量超100萬(wàn)份的專業(yè)文檔資源站
- r語(yǔ)言學(xué)習(xí)總結(jié)
- 回歸分析方法-數(shù)學(xué)建模學(xué)習(xí)資源網(wǎng)站
- 椅子放平穩(wěn)問(wèn)題-數(shù)學(xué)建模學(xué)習(xí)資源網(wǎng)站
- 銳得ppt模板-數(shù)學(xué)建模學(xué)習(xí)資源網(wǎng)站
- 北京水資源數(shù)學(xué)建模
- 第四講matlab繪圖-數(shù)學(xué)建模學(xué)習(xí)資源網(wǎng)站
- 學(xué)習(xí)數(shù)學(xué)建模的心得
- [學(xué)習(xí)]文化共享工程資源介紹-powerpointpresentation
- r語(yǔ)言學(xué)習(xí)系列27-方差分析
- 利用spss進(jìn)行主成分分析-數(shù)學(xué)建模學(xué)習(xí)資源網(wǎng)站
- 淺談學(xué)習(xí)數(shù)學(xué)建模的感受
- r語(yǔ)言常見命令
- 數(shù)學(xué)建模水資源短缺論文(1)
- 數(shù)學(xué)語(yǔ)言學(xué)習(xí)的研究.pdf
- 業(yè)務(wù)建模工具介紹
- 人力資源分配數(shù)學(xué)建模論文
- r語(yǔ)言練習(xí)題
評(píng)論
0/150
提交評(píng)論