


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、R語(yǔ)言編程指南與使用手冊(cè)開(kāi)源中國(guó)社區(qū)2016-03-18R語(yǔ)言編程指南與使用手冊(cè)在R的官方教程里是這么給 R下注解的:一個(gè)數(shù)據(jù)分析和圖形顯示的程序設(shè)計(jì)環(huán)境(A systemfordata an alysis and visualizati on which is built based on S Ian guage.)。R的源起R是S語(yǔ)言的一種實(shí)現(xiàn)。S語(yǔ)言是由AT&T貝爾實(shí)驗(yàn)室開(kāi)發(fā)的一種用來(lái)進(jìn)行數(shù)據(jù)探索、統(tǒng)計(jì) 分析、作圖的解釋型語(yǔ)言。最初S語(yǔ)言的實(shí)現(xiàn)版本主要是 S-PLUSS-PLUS是一個(gè)商業(yè)軟件, 它基于S語(yǔ)言,并由MathSoft公司的統(tǒng)計(jì)科學(xué)部進(jìn)一步完善。后來(lái)Auckland大學(xué)的Ro
2、bertGentleman和Ross Ihaka 及其他志愿人員開(kāi)發(fā)了一個(gè)R系統(tǒng)。R的使用與S-PLUS有很多類(lèi)似之處,兩個(gè)軟件有一定的兼容性。R is freeR是用于統(tǒng)計(jì)分析、繪圖的語(yǔ)言和操作環(huán)境。R是屬于GNU系統(tǒng)的一個(gè)自由、免費(fèi)、源代碼開(kāi)放的軟件,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。R是一套完整的數(shù)據(jù)處理、計(jì)算和制圖軟件系統(tǒng)。其功能包括:數(shù)據(jù)存儲(chǔ)和處理系統(tǒng);數(shù)組 運(yùn)算工具(其向量、矩陣運(yùn)算方面功能尤其強(qiáng)大);完整連貫的統(tǒng)計(jì)分析工具;優(yōu)秀的統(tǒng)計(jì) 制圖功能;簡(jiǎn)便而強(qiáng)大的編程語(yǔ)言:可操縱數(shù)據(jù)的輸入和輸入,可實(shí)現(xiàn)分支、循環(huán),用戶(hù)可 自定義功能。R是一個(gè)免費(fèi)的自由軟件,它有 UNIX、LI
3、NUX、MacOS和WINDOW版本,都是可以免費(fèi)下載 和使用的,在那兒可以下載到 R的安裝程序、各種外掛程序和文檔。在R的安裝程序中只包含了 8個(gè)基礎(chǔ)模塊,其他外在模塊可以通過(guò) CRAN獲得。R的特點(diǎn)(1) 有效的數(shù)據(jù)處理和保存機(jī)制。(2) 擁有一整套數(shù)組和矩陣的操作運(yùn)算符。(3) 一系列連貫而又完整的數(shù)據(jù)分析中間工具。(4) 圖形統(tǒng)計(jì)可以對(duì)數(shù)據(jù)直接進(jìn)行分析和顯示,可用于多種圖形設(shè)備。(5) 一種相當(dāng)完善、簡(jiǎn)潔和高效的程序設(shè)計(jì)語(yǔ)言。它包括條件語(yǔ)句、循環(huán)語(yǔ)句、用戶(hù)自定義的遞歸函數(shù)以及輸入輸出接口。(6) R語(yǔ)言是徹底面向?qū)ο蟮慕y(tǒng)計(jì)編程語(yǔ)言。(7) R語(yǔ)言和其它編程語(yǔ)言、數(shù)據(jù)庫(kù)之間有很好的接口。
4、(8) R語(yǔ)言是自由軟件,可以放心大膽地使用,但其功能卻不比任何其它同類(lèi)軟件差。(9) R語(yǔ)言具有豐富的網(wǎng)上資源一 入門(mén)訓(xùn)練1. 獲取幫助 help.start()開(kāi)啟幫助文檔 help(solve)顯示某命令的幫助信息,或者 ?solve對(duì)于由特殊字符指定的功能,這些參數(shù)必須用單引號(hào)或雙引號(hào)括起來(lái),使之成為一一 個(gè)“字符串”,如 help()與某個(gè)主題相關(guān)的例子通??梢杂孟旅娴拿畹玫?example (topic)2. 命令簡(jiǎn)介R對(duì)大小寫(xiě)是敏感的;名稱(chēng)不能以數(shù)字開(kāi)始;基本的命令由表達(dá)式或者賦值語(yǔ)句組成。如果一個(gè)表達(dá)式被作為一條命令給出,它將被求值、打印而表達(dá)式的值并不被保存。一個(gè)賦值語(yǔ)句同
5、樣對(duì)表達(dá)式求值之后把表達(dá)式的值 傳給一個(gè)變量,不過(guò)并不會(huì)自動(dòng)的被打印出來(lái);命令由分號(hào)(;)來(lái)分隔,或者另起新行;基本命令可以由花括號(hào)(f和g)合并為一組復(fù)合表達(dá)式;注釋幾乎可以被放在任何地方,只要是以井號(hào)(# )開(kāi)始,到行末結(jié)束;如果一個(gè)命令在行莫仍沒(méi)有結(jié)束,R將會(huì)給出一個(gè)不同的提示符,默認(rèn)的是+。3. 命令文件的執(zhí)行和輸出轉(zhuǎn)向到文件如果命令存儲(chǔ)于一個(gè)外部文件中,比如工作目錄 work中的commands.R,他們可以隨時(shí)在 R 的任務(wù)中被執(zhí)行 source (commands.R)在 Windows中 Source 也可以由 File 菜單執(zhí)行。 函數(shù)sink, sink (record.l
6、is)將把所有后續(xù)的輸出由終端轉(zhuǎn)向一個(gè)外部文件,record.lis 。命令 sin k()將把信息重新恢復(fù)到終端上。4. 數(shù)據(jù)的保持與對(duì)象的清除R所創(chuàng)建、操作的實(shí)體是對(duì)象。對(duì)象可以是變量、數(shù)組、字符串、函數(shù)以及由這些元素組成 的其它結(jié)構(gòu); objects ()用來(lái)顯示目前存儲(chǔ)在R中的對(duì)象的名字。而當(dāng)前存儲(chǔ)的所有對(duì)象的組合被稱(chēng)為 workspace ;清除對(duì)象可以使用rm命令: rm(x, y, z, in k, j unk, temp, foo, bar)所有在一個(gè)R任務(wù)中被創(chuàng)建的對(duì)象都可以在文件中被永久保存,并在其它的R任務(wù)中被使用。在每個(gè)R任務(wù)結(jié)束時(shí)用戶(hù)都有機(jī)會(huì)保存當(dāng)前有效的所有對(duì)象。如
7、果用戶(hù)這樣做的話(huà), 對(duì)象將被寫(xiě)入當(dāng)前目錄一個(gè)名為.RData。當(dāng)R被再次啟動(dòng)時(shí)R會(huì)從這個(gè)文件中再載入 workspace。 同時(shí)相關(guān)的命令記錄也被載入。所以,推薦大家在用 R進(jìn)行不同的分析時(shí)分別使用不同的工作目錄。5. 基本數(shù)據(jù)結(jié)構(gòu)6.基本數(shù)據(jù)對(duì)象向量(vector),見(jiàn)下節(jié)矩陣(matrix):更一般的說(shuō)數(shù)組是向量在多維情況下的一般形式。事實(shí)上它們是可以被兩個(gè)或更多的指標(biāo)索引的向量,并且以特定的方式被打印出來(lái)。因子(factors)提供了一種處理分類(lèi)數(shù)據(jù)的更簡(jiǎn)介的方式。列表(list):是向量的一種一般形式,并不需要保證其中的元素都是相同的類(lèi)型,而且其中的元素經(jīng)常是向量和列表本身。數(shù)據(jù)框(d
8、ata frame):是一種與矩陣相似的結(jié)構(gòu),其中的列可以是不同的數(shù)據(jù)類(lèi)型??梢园褦?shù)據(jù)框看作一種數(shù)據(jù)矩陣”,它的每行是一個(gè)觀測(cè)單位,而且(可能)同時(shí)包含數(shù)值型和分類(lèi)的變量。函數(shù)(function):能夠在R的workspace中存儲(chǔ)的對(duì)象。我們可以通過(guò)函數(shù)來(lái)擴(kuò)展R的功能。二 簡(jiǎn)單操作,數(shù)值與向量R對(duì)命名了的數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作。最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)是數(shù)字向量;如, x - c(10.4, 5.6, 3.1,6.4, 21.7)c()是創(chuàng)建函數(shù),賦值運(yùn)算符是 assign (x, c(10.4, 5.6, 3.1,6.4, 21.7)也可以寫(xiě)成: c(10.4, 5.6, 3.1,6.4, 21.7)
9、- x如果一個(gè)表達(dá)式被當(dāng)作一個(gè)完整的命令,它的值將被打印到終端但不被儲(chǔ)存。單獨(dú)輸入x則會(huì)將值打印出來(lái)。也可以打印倒數(shù): 1/x y v s5 temp 13邏輯操作符 包括 , , =, 完全相等=和不等于!=,與或非分別為&, |, !。在普通運(yùn)算中,F(xiàn)ALSE當(dāng)做0而TRUE當(dāng)做1。2.5缺失值NA(not available):一般來(lái)講一個(gè)NA的任何操作都將返回NAis.na(x)返回一個(gè)與x等長(zhǎng)的邏輯向量,并且由相應(yīng)位置的元素是否是NA來(lái)決定這個(gè)邏輯向量相應(yīng)位置的元素是TRUE還是FALSEx=NA是一個(gè)與x具有相同長(zhǎng)度而其所有元素都是NA的向量。NaNNot a Number):由數(shù)
10、值運(yùn)算產(chǎn)生,如 0/0,1 nf-l nf.is.na(x) 對(duì)于NA和NaN值都返回TRUEis.nan(x)只對(duì) NaN值返回 TRUE字符串在輸入時(shí)可以使用單引號(hào)()或雙以號(hào)(); 在打印時(shí)用雙引號(hào)(有時(shí)不用引號(hào))。R使用與C語(yǔ)言風(fēng)格基本相同的轉(zhuǎn)義符,所以輸入 打印的也是,輸入打印引號(hào),n:換行,t: tab, b:回格。字符向量可以通過(guò)函數(shù)c()連接;paste()可以接受任意個(gè)參數(shù),并從它們中逐個(gè)取出字符并連成字符串,形成的字符串的個(gè)數(shù)與參數(shù)中最長(zhǎng)字符串的長(zhǎng)度相同。如果參數(shù)中包含數(shù)字的話(huà),數(shù)字將被強(qiáng)制轉(zhuǎn)化為字符串。在默認(rèn)情況下,參數(shù)中的各字符串是被一個(gè)空格分隔的,不過(guò)通過(guò)參數(shù)sep=
11、stri ng用戶(hù)可以把它更改為其他字符串,包括空字符串。例如: labs y (x+1)(!is. na(x) & x0 - z表示創(chuàng)建一個(gè)對(duì)象 z,其中的元素由向量 x+1中與x中的非缺失值和正數(shù)對(duì)應(yīng)的向量組成。2. 正整數(shù)的向量 x6是x的第六個(gè)元素 x1:10選取了 x的前10個(gè)元素(假設(shè)x的長(zhǎng)度不小于10)。 c(x,y)rep(c(1,2,2,1), times=4)產(chǎn)生了一個(gè)字符向量,長(zhǎng)度為16,由x, y, y, x重復(fù)4次而組成。3. 負(fù)整數(shù)的向量 y fruit n ames(fruit) lunch xis.na(x) yy 0 - -yy y - abs(y)三 對(duì)象,
12、模式和屬性3.1固有屬性:模式和長(zhǎng)度對(duì)象是R所進(jìn)行操作的實(shí)體,對(duì)象可以是向量、列表等,詳見(jiàn) 1.6.對(duì)象的模式包括 numeri, ccomplex, character , logical , list , function ,expression 等??梢杂胢ode(object)查看。對(duì)象的長(zhǎng)度是對(duì)象的另一固有屬性??梢杂?length(object) 查看。attribute(object)可以查看更深入的屬性。模式的轉(zhuǎn)換在允許的情況下(大多數(shù)情況都是允許的),R可以完成各種模式的轉(zhuǎn)換。例如: dv-as.character(z) ,將數(shù)值向量 z e e3 alpha attr(z,
13、dim) - c(10,10)另 R將 z 作為一個(gè) 10X10 的矩陣看待。3.4對(duì)象的類(lèi)別對(duì)象的一個(gè)特別屬性,類(lèi)別,被用來(lái)指定對(duì)象在R編程中的風(fēng)格。比如:如果對(duì)象類(lèi)別data.frame 則會(huì)以特定方式處理。unclass()可以去除對(duì)象的類(lèi)別。summary。可以查看對(duì)象的基本信息( min, max, mean, etc. )四 有序因子和無(wú)序因子因子是一種向量對(duì)象,它給自己的組件指定了一個(gè)離散的分類(lèi)(分組),它的組件由其他等長(zhǎng)的向量組成。R提供了有序因子和無(wú)序因子。通俗點(diǎn)說(shuō),因子就是將對(duì)象的值分成不同的組(levels )。用函數(shù)factor。創(chuàng)建一個(gè)因子,levels按序排列(字母
14、序或數(shù)值序)。例如 province pf pf打印出來(lái)1Levels:函數(shù)levels()可以用來(lái)觀察因子中有多少不同的levels 。假如我們擁有這些省份考生的分?jǐn)?shù): score smea ns smea ns85.66667 91.00000 87.50000再例如,下面命令會(huì)給出各組的len gth tapply(score,pf,le ngth)函數(shù)ordered??梢詣?chuàng)建有序因子 ordered(prov in ce)1Levels: dim(z) array(1:20, dim=c(4,5) matrix(1:24, 3,4)數(shù)據(jù)向量中的值被賦給數(shù)組中的值時(shí),將遵循與FORTRA
15、相同的原則主列順序”,即第一個(gè)下標(biāo)變化的最快,最后的下標(biāo)變化最慢。數(shù)組的運(yùn)算數(shù)組可以在算數(shù)表達(dá)式中使用,結(jié)果也是一個(gè)數(shù)組,這個(gè)數(shù)組由數(shù)據(jù)向量逐個(gè)元素的運(yùn)算后組成,通常參與運(yùn)算的對(duì)象應(yīng)當(dāng)具有相同的dim屬性。5.2數(shù)組的索引和數(shù)組的子塊數(shù)組中的單個(gè)元素可以通過(guò)下標(biāo)來(lái)指定,下標(biāo)由逗號(hào)分隔,寫(xiě)在括號(hào)。我們可以通過(guò)在下標(biāo)的位置給出一個(gè)索引向量來(lái)指定一個(gè)數(shù)組的 子塊,不過(guò)如果在任何一個(gè)索引位置上給出空的索引向量,貝肪目當(dāng)于選取了這個(gè)下標(biāo)的全部圍。如 a2, a,3,等5.3索引數(shù)組除了索引向量,還可以使用索引數(shù)組來(lái)指定數(shù)組的某些元素。例如:有4X5的數(shù)組a,若要得到a中的a1,3,a2,2和a3,1這三
16、個(gè)元素,可以生成索引向量i,然后用ai得到它們。 a i i,1 ,21, 1 32, 2 23, 3 1 ai1 9 6 3 ai ab ab - outer(a, b, *)其中的乘法操作可以由任意一個(gè)雙變量的函數(shù)替代。廣義轉(zhuǎn)置: 函數(shù) t(A),或 aperm(A, c(2,1);獲取行數(shù)/列數(shù):nrow(A)和ncol (A)分別返回矩陣 A的行數(shù)和列數(shù)。矩陣乘法:操作符為%*% 交叉乘積(cross product ): crossprod (X, Y)等同于 t(X) %*% y , crossprod(X)等價(jià)于 crossprod(X, X) ;diag(v):如果v是向量,d
17、iag(v)返回一個(gè)由v的元素為對(duì)角元素的對(duì)角矩陣。如果v為矩陣,diag(v)返回一個(gè)由v主對(duì)角元素組成的向量。 如果v只是一個(gè)數(shù)值,那么 diag(v)是一個(gè)vXv的單位矩陣。特征值和特征向量:eigen (Sm)。這個(gè)函數(shù)的結(jié)果是由名為values和vectors的兩部分組成的列表。如果只是需要特征值:eige n(Sm)$values最小二乘擬合即 QR分解:lsfit(), qr() 。強(qiáng)制轉(zhuǎn)換為向量:as.vector(),或者直接c().解線(xiàn)性方程 和求矩陣的 逆,奇異值分解 與行列式見(jiàn);六列表和數(shù)據(jù)幀6.1列表列表是由稱(chēng)作組件的有序?qū)ο蠹蠘?gòu)成的對(duì)象。組件的模式或類(lèi)型不一定相同
18、。形如 Lst Lst Lst5 list.ABC t attach(t)這樣可以直接引用數(shù)據(jù)幀的元素,而無(wú)需 $,前提是數(shù)據(jù)幀外沒(méi)有同名的變量(如name)。掛接后若要對(duì)數(shù)據(jù)幀元素進(jìn)行賦值操作,仍需用 $,否則視為賦值給數(shù)據(jù)幀外的元素。賦值后必須要先卸載(detach)再重新掛接后,新值才可見(jiàn)。 detach(t)attach()是具有一般性的函數(shù),即它不僅能夠?qū)⒛夸浐蛿?shù)據(jù)幀掛接在搜索路徑 上,還能掛接其他類(lèi)別的對(duì)象。特別是模式為list的對(duì)象可以通過(guò)相同的方式掛接: attach(a ny. old .li st)任何被掛接的對(duì)象都可以用detach來(lái)卸載,通過(guò)指定位置編號(hào)或者指定名稱(chēng)這樣
19、的方式.搜索路徑函數(shù)search()將顯示目前的搜索路徑,可以用來(lái)查看數(shù)據(jù)幀/列表的掛接狀態(tài)。ls()(或objects。)命令可以用來(lái)檢查搜索路徑任意位置上的容。如如: ls(),ls(2), ls(t)R可以在搜索路徑中包含至多20個(gè)項(xiàng)目,列表和數(shù)據(jù)幀只能在位置2或更靠后的位置上掛接。數(shù)據(jù)幀使用慣例1將每個(gè)獨(dú)立的,適當(dāng)定義的問(wèn)題所包含的所有變量收入同一個(gè)數(shù)據(jù)幀中,并賦予合適的、 易理解、易辨識(shí)的名稱(chēng);2處理問(wèn)題時(shí),當(dāng)相應(yīng)的數(shù)據(jù)幀掛接于位置2,同時(shí)在第1層工作目錄下存放操作的數(shù)值和臨時(shí)變量;3在結(jié)束一次工作之前,將你認(rèn)為對(duì)將來(lái)有參考價(jià)值的變量通過(guò)$標(biāo)記的形式添加到數(shù)據(jù)幀里面,然后detach
20、();4最后,將工作目錄下所有不需要的變量剔除,并且盡量將剩下多余的臨時(shí)變量都清除干凈。這樣我們可以很簡(jiǎn)單的在同一個(gè)目錄下處理多個(gè)問(wèn)題,而且對(duì)每個(gè)問(wèn)題都可以使用x,y,z這樣的變量名。七從文件中讀取數(shù)據(jù)7.1 函數(shù) read.table()該函數(shù)可以直接將文件中完整的數(shù)據(jù)幀讀入。此時(shí)文件要符合特定的格式:1第一行應(yīng)當(dāng)提供數(shù)據(jù)幀中每個(gè)變量的名稱(chēng);2每一行(除變量名稱(chēng)行)應(yīng)包含一個(gè)行標(biāo)號(hào)和各變量的值。3若沒(méi)有表頭(變量名稱(chēng)行),也沒(méi)有行標(biāo)號(hào),只有變量值,則默認(rèn)變量名稱(chēng)為v1,v2.4若有表頭,但沒(méi)有行標(biāo)號(hào),則可以指定參數(shù)header=TRUE.7.2 函數(shù) scan()該函數(shù)從鍵盤(pán)或文件中讀取數(shù)據(jù)
21、,并存入向量或列表中。 inp data()#獲得基本系統(tǒng)提供的數(shù)據(jù)集列表,然后通過(guò)形如 data(infert)#來(lái)載入名為infert的數(shù)據(jù)集從其他package中載入數(shù)據(jù)集data(package=nls)#查看 nls 中數(shù)據(jù)集data(Puromycin, package=nls)# 讀取 nls 中 Puromycin 數(shù)據(jù)集。用library() 掛接package后,它的數(shù)據(jù)集也自動(dòng)包含到搜索路徑中了。library(nls)#載入 package nlsdata()#查看數(shù)據(jù)集date(Puromycin)#載入 Puromycin 數(shù)據(jù)集7.4編輯數(shù)據(jù)在使用一個(gè)數(shù)據(jù)幀或矩陣
22、時(shí),edit提供一個(gè)獨(dú)立的工作表式編輯環(huán)境。 xnew xn ew - edit(data.frame()#可以通過(guò)工作表界面錄入新數(shù)據(jù)。fix()函數(shù)用于直接修改已有的對(duì)象,等價(jià)于xJionnalnorm實(shí)用文檔Pt iLSSnllpoisluuil h laR提供了一套完整的統(tǒng)計(jì)表集合。函數(shù)可以對(duì)累積分布函數(shù)P(X=x),概率密度函數(shù),分位uinfoniiunifmin, 】nax函數(shù)(對(duì)給定的q,求滿(mǎn)足iP(X # 2-tailed p-value for t distributi on 2*pt(-2.43, df = 13) # upper 1% poi nt for an F(2,
23、 7) distribution qf(0.99, 2, 7) 8.2檢測(cè)數(shù)據(jù)集的分布函數(shù)summary和fivenum這兩個(gè)函數(shù)可以給出摘要,后者只給出數(shù)值;函數(shù)stem可以將數(shù)值統(tǒng)計(jì)結(jié)果以類(lèi)似直方圖的方式顯示出來(lái);函數(shù)hist ()可以繪制直方圖;函數(shù)density和line可以獲得更漂亮的密度圖;功能包fun中的ecdf函數(shù)能繪制經(jīng)驗(yàn)累積分布函數(shù);還可以進(jìn)行擬合正態(tài)分布,覆蓋擬合CDF還可以繪制Quantile-quantile(Q-Q)圖有助于我們更細(xì)致的檢測(cè)其分布形態(tài);九語(yǔ)句組、循環(huán)和條件操作R是一種表達(dá)式語(yǔ)言,也就是說(shuō)其命令類(lèi)型只有函數(shù)或表達(dá)式,并由它們返回一個(gè)結(jié)果。語(yǔ)句組由花括號(hào)
24、 確定,此時(shí)結(jié)果是該組中最后一個(gè)能返回值的語(yǔ)句的結(jié)果。條件語(yǔ)句 if (expr_1) expr_2 else expr_3其中條件表達(dá)式exprl必須返回一個(gè)邏輯值,操作符&和|經(jīng)常被用于條件部分。&和|與& |的區(qū)別在于,&和|按照逐個(gè)元素的方式進(jìn)行計(jì)算,&和|對(duì)向量的第一個(gè)元素進(jìn)行運(yùn)算,只有在必需的時(shí)候才對(duì)第二個(gè)參數(shù)求值。if/else 結(jié)構(gòu)的向量版本是函數(shù)ifelse ,其形式為ifelse (condition,a,b),產(chǎn)生函數(shù)結(jié)果的規(guī)則是:如果 conditioni 為真,對(duì)應(yīng)ai元素;反之對(duì)應(yīng)的是 bi元素。根據(jù)這個(gè) 原則函數(shù)返回一個(gè)由 a,b中相應(yīng)元素組成的向量,向量長(zhǎng)度與其
25、最長(zhǎng)的參數(shù)等長(zhǎng)。循環(huán)語(yǔ)句 for (n ame in expr_1) expr_2其中name是循環(huán)變量,expr1是一個(gè)向量表達(dá)式(通常是1:20這樣的序列),而 expr2經(jīng)常是一個(gè)表達(dá)式語(yǔ)句組,expr2隨著name依次取expr1結(jié)果向量的值而被多次重復(fù)運(yùn)行。 repeat (expr) while (condition) exprbreak語(yǔ)句可以用來(lái)中斷任何循環(huán),可能是非正常的中斷。而且這是中止repeat循環(huán)的唯一方式。next語(yǔ)句可以中止一個(gè)特定的循環(huán),跳至下一個(gè)十編寫(xiě)自己的函數(shù)10.1函數(shù)的定義 n ame %!% fun1 ans ans ans fun1 ans ans
26、- fun 1(d, df, limit=10)此時(shí)改變了一個(gè)默認(rèn)值。NOTE參數(shù)可以是任意表達(dá)式,甚至可以是包含其他參數(shù)的表達(dá)式;10.4額外參數(shù)“.”實(shí)現(xiàn)。當(dāng)需要將一個(gè)函數(shù)的參數(shù)傳遞給另一個(gè)函數(shù)時(shí),可以通過(guò)包含一個(gè)額外的參數(shù).fun1 - function( data, data.frame, graph=TRUE, limit=20, .) omitted stateme ntsif (graph)par(pch=*, .)more omissi ons10.5全局變量和局部變量函數(shù)的賦值都是局部變量,退出函數(shù)就丟失了。如果要在函數(shù)進(jìn)行永久賦值(定義全局變量),需要用到“超賦值”操作符,
27、-或者函數(shù)assig n()。10.6 一些高級(jí)示例區(qū)組設(shè)計(jì)的效率因子(E ciency factors)刪除打印數(shù)組中的所有名稱(chēng)遞歸的數(shù)值積分10.7 疇(Scope)函數(shù)主體出現(xiàn)的標(biāo)識(shí)(symbol)可以被分為3類(lèi);正式參數(shù)、局部變量和自由變量。正式參數(shù) 就是出現(xiàn)在函數(shù)參數(shù)列表中的參數(shù),他們的值由實(shí)際的函數(shù)參數(shù)與正式參數(shù)的綁定(binding )過(guò)程決定。局部變量是在參數(shù)主體中,由表達(dá)式求值過(guò)程決定的變量。自由變量 為既不是正式參數(shù)又不是局部變量的變量。賦值之后自由變量成為局部變量。在R中,自由變量的值由函數(shù)被創(chuàng)建的環(huán)境中與其同名的第一個(gè)變量值決定(我理解為最近的同名變量),這種方式被稱(chēng)為
28、 詞匯式疇(lexical scope) 。而在S中,該值由同名的全局變量決定。例如下面的函數(shù) cube,在R中cube (2)=8,在S中報(bào)錯(cuò)為sq()找不到n。cube - fun cti on(n) sq pairs (X)生成一個(gè)配對(duì)的散點(diǎn)圖矩陣,矩陣由X中的每列的列變量對(duì)其他各列列變量的散點(diǎn)圖組成,得到的矩陣中每個(gè)散點(diǎn)圖行、列長(zhǎng)度都是固定的。當(dāng)問(wèn)題涉及到三、四個(gè)變量時(shí),使用coplot更好些。如果a和b是數(shù)值向量,c是數(shù)值向量或因子對(duì)象(全都是相同長(zhǎng)度的),下面的命令 coplot (a b | c)對(duì)應(yīng)c的某些給定值生成數(shù)個(gè)a對(duì)b的散點(diǎn)圖。當(dāng)c是一個(gè)因子時(shí),這個(gè)命令也就是對(duì)c的每個(gè)
29、水平生成a對(duì)b的散點(diǎn)圖。當(dāng)c是數(shù)值向量的時(shí)候,這個(gè)數(shù)值向量被分為一系列的條 件區(qū)間(conditioningintervals),對(duì)應(yīng)c的每個(gè)區(qū)間生成一個(gè) a對(duì)b的散點(diǎn)圖。區(qū)間的數(shù)量和位置可以通過(guò) coplot()的參數(shù)given.values來(lái)控制,函數(shù) ervals() 也可以用來(lái)選擇區(qū)間。我們也可以使用兩個(gè)給定變量通過(guò)命令coplot(a b | c+d)對(duì)c和d的每個(gè)聯(lián)合條件區(qū)間生成 a對(duì)b的散點(diǎn)圖。函數(shù)coplot()和pairs()都可以使用參數(shù) panel=,這個(gè)參數(shù)可以用來(lái)定制我們得到的圖形 類(lèi)型。默認(rèn)的是 poin ts()函數(shù),生成一個(gè)散點(diǎn)圖,不過(guò)通過(guò)在參數(shù)pa
30、n el=中提供某些其它的低級(jí)圖形函數(shù),我們可以生成需要的各種圖形。一個(gè)很有用的函數(shù)例子是 pan el.smooth() 。3顯示圖形qqnorm(x)qqline (x)qqplot (x,y)分布比較圖。第一種形式生成向量 x對(duì)期望正態(tài)分?jǐn)?shù)(一個(gè)正態(tài)記分圖),第二個(gè)在上面的圖上添加一條穿過(guò)分布分位點(diǎn)和數(shù)據(jù)分位點(diǎn)的直線(xiàn)。第三個(gè)命令生成x的分位點(diǎn)對(duì)y分位點(diǎn)圖,用于分別比較它們的分布。hist (x)hist(x ,n class=n)hist(x,breaks=b,.)image(x,y,z,.)con tour (x,y,z,.)persp (x,y,z,.)n class=參數(shù)生成數(shù)值變
31、量x的直方圖。通常會(huì)自動(dòng)選定一個(gè)合理的類(lèi)別數(shù),不過(guò)可以通過(guò)來(lái)指定一個(gè)推薦值?;蛘咄ㄟ^(guò)參數(shù)breaks=來(lái)指定分界點(diǎn)。如果給定了 probability=TRUE參數(shù),那么條形圖代表相對(duì)頻數(shù)而不是累計(jì)數(shù)。dotchart (x,.)創(chuàng)建一個(gè)x中數(shù)據(jù)的點(diǎn)圖(dotchart)。點(diǎn)圖中y軸給出x中數(shù)據(jù)的標(biāo)簽,x軸給出它們的值。它允許對(duì)落入某一特定區(qū)間的所有數(shù)據(jù)項(xiàng)方便的進(jìn)行可視化選擇。z的值,函數(shù)生成三個(gè)變量的圖。函數(shù)image是用不同的顏色繪制一些矩形方格來(lái)展示 con tour通過(guò)繪制等高線(xiàn)來(lái)展示 z的值,函數(shù)persp繪制一個(gè)3D面。4參數(shù)配置add=TRUE強(qiáng)制函數(shù)按照低級(jí)圖形函數(shù)的方式操作,
32、將圖形置于當(dāng)前圖形上(僅對(duì)某些函數(shù)有效)。axes=FALSE暫時(shí)禁止坐標(biāo)軸的生成|以便使用axis()函數(shù)添加你自己定制的坐xlab =stri ngylab =stri ngx軸或y軸的標(biāo)簽。使用這些參數(shù)來(lái)改變log =xlog=ylog=xy令x,y或者兩者全都對(duì)數(shù)化。這個(gè)參數(shù)對(duì)許多函數(shù)都有效,不過(guò)不是:全部。type =參數(shù)type=控制所生成圖形的類(lèi)型:type=p繪制單獨(dú)的點(diǎn)(默認(rèn)值)type=l繪制線(xiàn)type=b繪制由線(xiàn)連接的點(diǎn)(both)type=o將點(diǎn)繪在線(xiàn)上type=h繪制從點(diǎn)到零軸的垂線(xiàn)(high-de nsity )type=s階梯式圖。第一種形式中,點(diǎn)由垂線(xiàn)的頂部定義
33、;第二種形式里用底部定義。type= n不繪制。不過(guò)坐標(biāo)軸是繪出的 (默認(rèn)情況)而且要根據(jù)數(shù)據(jù)繪出坐標(biāo)軸。默認(rèn)情況是axes=TRUE即包含坐標(biāo)軸。標(biāo)系統(tǒng)。用來(lái)給后續(xù)的低級(jí)圖形函數(shù)創(chuàng)建圖形作基礎(chǔ)。默認(rèn)的標(biāo)簽,通常的默認(rèn)值是調(diào)用高級(jí)繪圖函數(shù)時(shí)所使用對(duì)象的名稱(chēng)。main= stri ng圖表標(biāo)題,位于圖形的頂部,大字體顯示。12.2 低級(jí)繪圖命令有些時(shí)候高級(jí)繪圖函數(shù)并不能很精確的生成我們想要的圖形。這種情況下,我們可以通過(guò)低級(jí)繪圖命令在當(dāng)前圖形上添加信息(例如,點(diǎn)、線(xiàn)或文本)。points (x,y)lines (x,y)在當(dāng)前圖形上添加點(diǎn)或線(xiàn)。函數(shù)plot()的參數(shù)type=也可以用于這些函數(shù)(默認(rèn)的是 p代表 points()和 T 代表 lines()。text (x,y,labels,.)給定點(diǎn)坐標(biāo)x,y,在該點(diǎn)添加文本。通常labels是一個(gè)整數(shù)或字符向量,其中l(wèi)abelsi出現(xiàn)在點(diǎn)(xi,yi)。默認(rèn)值是1:l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《收玉米》(教案)2024-2025學(xué)年數(shù)學(xué)一年級(jí)下冊(cè)
- 2025年股權(quán)投資協(xié)議業(yè)績(jī)對(duì)賭
- 2025年收購(gòu)公司合同模板
- 三年級(jí)上冊(cè)數(shù)學(xué)教案-第3單元 長(zhǎng)方形和正方形 1 長(zhǎng)方形和正方形 第1課時(shí)(蘇教版)
- 2025年美發(fā)店合伙經(jīng)營(yíng)合同
- 2025年公司銷(xiāo)售員合同模板
- (高清版)DB45∕T 560-2021 甘蔗中耕施肥培土機(jī)作業(yè)質(zhì)量
- Unit 2 An Accident Lesson 2 Let's practice(教學(xué)設(shè)計(jì))-2024-2025學(xué)年北師大版(三起)英語(yǔ)六年級(jí)上冊(cè)
- 統(tǒng)編版四年級(jí)上冊(cè)語(yǔ)文第五單元習(xí)作 《生活萬(wàn)花筒》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 期中重難點(diǎn)檢測(cè)卷(試題)-小學(xué)數(shù)學(xué)三年級(jí)上冊(cè)人教版(含解析)
- 中國(guó)傳統(tǒng)成語(yǔ)故事(英文版)
- 鑄造廠總降壓變電所及廠區(qū)配電系統(tǒng)設(shè)計(jì)
- 點(diǎn)心主管工作職責(zé)
- 航拍中國(guó)優(yōu)秀課件
- 《做自己的心理醫(yī)生 現(xiàn)代人的心理困惑和自我療愈策略》讀書(shū)筆記思維導(dǎo)圖PPT模板下載
- 小學(xué)音樂(lè)組集體備課計(jì)劃
- 稿件修改說(shuō)明(模板)
- 血液透析安全注射臨床實(shí)踐專(zhuān)家共識(shí)解讀
- GB/T 41873-2022塑料聚醚醚酮(PEEK)樹(shù)脂
- SB/T 10940-2012商用制冰機(jī)
- GB/T 25945-2010鋁土礦取樣程序
評(píng)論
0/150
提交評(píng)論