




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、R語(yǔ)言入門R是開源的統(tǒng)計(jì)繪圖軟件,也是一種腳本語(yǔ)言,有大量的程序包可以利用。R中的向量、列表、數(shù)組、函數(shù)等都是對(duì)象,可以方便的查詢和引用,并進(jìn)行條件篩選。R具有精確控制的繪圖功能,生成的圖可以另存為多種格式。R編寫函數(shù)無(wú)需聲明變量的類型,能利用循環(huán)、條件語(yǔ)句,控制程序的流程。R網(wǎng)絡(luò)資源:R主頁(yè):R資源列表 NCEASR Graphical Manual統(tǒng)計(jì)之都:QuikR丁國(guó)徽的R文檔:R語(yǔ)言中文論壇一、用函數(shù) install.packages(),直接輸入就可以聯(lián)網(wǎng),第一次的話之后選擇鏡像,然后選擇包下載即可如果已經(jīng)連接到互聯(lián)網(wǎng),在括號(hào)中輸入要安裝的程序包名稱,選擇鏡像后,程序?qū)⒆詣?dòng)下載并安
2、裝程序 包。例如:要安裝 picante包,在控制臺(tái)中輸入 install.packages("picante")已經(jīng)安裝了?二.安裝本地zip包路徑:Packages>install packages from local files選擇本地磁盤上存儲(chǔ) zip包的文件夾。(文件,運(yùn)行R的腳本,選擇所在文檔)三.調(diào)用程序包在控制臺(tái)中輸入如下命令library( "picnate)”四.程序包內(nèi)部都有哪些函數(shù)?分別有什么功能? 查詢程序包內(nèi)容最常用的方法:1菜單幫助>Html幫助;2查看pdf幫助文檔工二X rix fuc nx Jis1 n i >
3、; *七叫口 cnfzl'程序包內(nèi)的函數(shù)的用法與R內(nèi)置的基本函數(shù)用法一樣。拄制臺(tái)FAQ手印:PDF文體R能數(shù)幫HhCfc衰U HirnlaHt 理薪 5earchr-prcjM五.查看函數(shù)的幫助文件函數(shù)的默認(rèn)值是什么?怎么使用?使用時(shí)需要注意什么問題?需要查詢函數(shù)的幫助。1 ?t.test直接打開相關(guān)函數(shù)的說明和使用模板。2 RGui>Help>Html help同樣的效果,同上3 apropos("t.test")合理使用T檢驗(yàn),五種模式的 T檢驗(yàn)4 help("t.test")幫助同 1-25 help.search(&
4、quot;t.test")有關(guān)T檢驗(yàn)的一切東西都可以查出來(lái)。6查看R包pdf手冊(cè)六、幫助很強(qiáng)大InRD.uaiEUUFitting1 L±n砧air 麻手斗口工占DescriptionLb it WMd » & Ismt nKlifc. h «eb1n u«*A ii><Arn wn Nflrti4iafi tiidJH «nmin hu1aliii& ec wawi"七 *K丸“w,4rlM鵬 11rl."4爵士 firri llrsc iUsaeAxglznwnt4« n
5、曲司 af-lM-+ 產(chǎn),t<ohcu X n> rhar (ImtT « wnd中居MWtKriid Hu U flfWriL Htai dchdli Mrikmlrl vfKl-ah« Jihc pAita LUvitai ' fidlaiiL'' cpMiv Inat Iivi6 mmw Mrgiwin« e - it,*好加i Vtnw'li中母Hiq rhjM / iiAw- Itrnf 柞th f ilw > ieH小 tie 出情inmwt <1 f*ranlttl4 tMNC9dM 4kSNa
6、mh uiia . dJV#!一H ? p-fcto «UfH.rMi 'BCI braiRrui A -4tK1 時(shí)<<«aWlkni K bt rii,ISFIejk? lmstats#函數(shù)名及所在包?Fitting Linear Models#標(biāo)題?Description#函數(shù)描述?Usage#默認(rèn)選項(xiàng)?Arguments#參數(shù)?Details#詳情?Author#作者?References#-±M?Examples#>例七、R圖形界面:R commander?1 安裝 R commanderinstall.packages(&qu
7、ot;Rcmdr")? 2 R將自動(dòng)下載并安裝 Rcmdr所需的所有程 序包調(diào)用 R Commander圖 12 R commander 界面 library(Rcmdr)八、R的函數(shù)R是一種解釋性語(yǔ)言,輸入后可直接給出結(jié)果。功能靠函數(shù)實(shí)現(xiàn)。函數(shù)形式函數(shù)(輸入數(shù)據(jù),參數(shù)=)如果沒有指定,則參數(shù)的以默認(rèn)值為準(zhǔn)。例如:平均值mean(x, trim = 0, na.rm = FALSE,)線性模型 lm(yx, data=test)每一個(gè)函數(shù)執(zhí)行特定的功能,后面緊跟括號(hào),例如:平均值 mean(); 求和 sum(); 繪圖 plot();排序 sort()。除了基本的運(yùn)算之外,R 的函
8、數(shù)又分為”高級(jí)”和”低級(jí)”函數(shù),高級(jí)函數(shù)可調(diào)用低級(jí)函數(shù) ,這里的”高級(jí)”函數(shù)習(xí)慣上稱為 泛型函數(shù)。如 plot() 就是泛型函數(shù),可以根據(jù)數(shù)據(jù)的類型,調(diào)用底層的函數(shù),應(yīng)用相應(yīng)的方法繪制相應(yīng)的圖形。這就是面向?qū)ο缶幊痰乃枷搿2樵兊姆椒ǎ篐elp>Html help>packageslog()tan()chisq.test()log10()asin()friedman.test()exp()acos()mean()sin()binom.test()sd()cos()fisher.test()var()glm(yx1+x2+x3, binomial)九、賦值與注釋與對(duì)象起名<- 右
9、邊的值賦值給左邊的變量或者對(duì)象;# 注釋注釋部分不會(huì)編譯R 處理的所有數(shù)據(jù)、變量、函數(shù)和結(jié)果都以對(duì)象的形式保存。1 . 區(qū)分大小寫,注意China 和 china 的不同。2 .不能用數(shù)字作為變量,對(duì)象也不能用數(shù)字開頭,但是數(shù)字可以放在中間或結(jié)尾,如 2result與result2,后者是合法的。3 .建議不要用過短的名稱??梢杂谩?” 作為間隔,例如anova.result1 。4 .不要使用保留名:NA, NaN, pi, LETTERS, letters, month.abb, 十、元素與對(duì)象的類1 . 對(duì)象 是由各元素組成的。每個(gè)元素,都有自己的數(shù)據(jù)類型。2 .元素
10、種類數(shù)值型Numeric 如100, 0, -4.335因子型Factor表示不同類別字符型Character 如“China”復(fù)數(shù)型Complex如:2 + 3i邏輯型 Logical 如 TRUE, FALSE3 .對(duì)象的類class:因子 (factor) 因子是一個(gè)分類變量c("a","a","b","b","c")向量 (vector) 一系列元素的組合。如c(1,2,3); c("a","a","b","b&quo
11、t;,"c")矩陣 (matrix) 二維的數(shù)據(jù)表,是數(shù)組的一個(gè)特例:x <- 1:12 ; dim(x) <- c(3,4),1 ,2,3 ,41,147102,258113,36912數(shù)組(array)數(shù)組是k維的數(shù)據(jù)表(k in 1:n,n為正整數(shù))。向量(n = 1)矩陣(n = 2)高維數(shù)組(n >= 3)數(shù)據(jù)框(dataframe)是由一個(gè)或幾個(gè)向量和數(shù)據(jù)表的行與列表1豹標(biāo)志,敕擦程與向早列名Column nnmuR物和鼓科效國(guó)散海戰(zhàn)城度類型祥方12260025山項(xiàng)樣方251122635030山陵樣方346112039045LlJ每行作林萬(wàn)43
12、8122426020低地;為一個(gè)Entry江上549102522023偃地ttt行名IHb n也me 每列可行借帶名稱的同字布聿、因f字符串ii:(或)因子構(gòu)成,它們必須是等長(zhǎng)的,但可以是不同的數(shù)據(jù)類型。每個(gè)數(shù)據(jù)表可以看作一個(gè)數(shù)據(jù)框(dataframe)。每一行(row)作為一個(gè)記錄(entry),每一列(column)作為一個(gè)向量(vector)。由很多不同類型的向量組成,如字符型,因子型,數(shù)值型。如何生成數(shù)據(jù)框? 兩種辦法:(1)從外部數(shù)據(jù)讀??;(2)各類型因子組合成數(shù)據(jù)框。列表(list)列表可以包含任何類型的對(duì)象??梢园蛄?、矩陣、高維數(shù)組,也可以包含列表。十一、運(yùn)算符數(shù)學(xué)運(yùn)算運(yùn)算后
13、給出數(shù)值結(jié)果:+,-,*,/,八(哥)比較運(yùn)算運(yùn)算后給出判別結(jié)果:(TRUE FALSE):>, <, <=, >=,=(=是計(jì)算機(jī)編程的二元運(yùn)算符。當(dāng)左邊的內(nèi)容與右邊的內(nèi)容相同時(shí),返回 1。其余時(shí) 候返回0。二=是判斷兩個(gè)值大小是否相同的運(yùn)算符。),!=不等于邏輯運(yùn)算與、或、非:!, &, &&, |, |十二、數(shù)據(jù)的讀取1 .最為常用的數(shù)據(jù)讀取方式是用read.table()函數(shù)或read.csv()函數(shù)讀取外部txt或csv格式的文件。txt文件,制表符間隔;csv文件,逗號(hào)間隔。一些 R 程序包(如 foreign)也提供了直接讀取Exc
14、el, SAS, dbf, Matlab, spss, systat, Minitab 文件的函數(shù)。2 .read.csv()的使用例:test.data<-read.csv("D:/R/test2.csv",header=T)header=T 表示將數(shù)據(jù)的第一行作為標(biāo)題。read.table(),header=T)可以彈出對(duì)話框,選擇文件。3 .數(shù)據(jù)量較大時(shí)用read.table函數(shù)從外部txt文件讀取第1步將Excel中的數(shù)據(jù)另存為.txt格式(制表符間隔)或.csv格式。第2步用read.table()或read.csv()函數(shù)將數(shù)據(jù)讀入 R工作空間,并賦值給一
15、個(gè)對(duì)象。4 .例子:mydataframe<-read.csv("F:/KAGGLE1/train.csv",header=F)命名讀取函數(shù)數(shù)據(jù)位置文件夾名稱是否讀取頭( T/F)十三、向量、矩陣和數(shù)據(jù)框的創(chuàng)建有時(shí)需要對(duì)讀入的數(shù)據(jù)進(jìn)行操作,將某一向量轉(zhuǎn)換成矩陣,如條件篩選,此時(shí)將遇到向量、矩陣和數(shù)據(jù)框 的生成、條件篩選等。1.1 四種類型的向量:字符型 character<-c("China", "Korea", "Japan", "UK", "USA", &qu
16、ot;France", "India", "Russia") ; 數(shù)值型 numeric<-c(1, 3, 6, 7, 3, 8, 6, 4) ; 邏輯型 logical<-c(T, F, T, F, T, F, F, T) ;復(fù)數(shù)型略。1.2 創(chuàng)建向量用 X<-c() 函數(shù)或者c() , rep() , seq() , ” : ”c(2,5,6,9)seq(from=3, to=21, by=3 )rep(2,times=4)1 3 6 9 12 15 18 21“:”1:15 #意思是11 2 3 4 5 6 7 8 9
17、10 11 12 13 14 15通過與向量的組合,產(chǎn)生更為復(fù)雜的向量。rep(1:2,c(10,15)1.3 向量創(chuàng)建 產(chǎn)生隨機(jī)數(shù)runif(10, min = 0, max= 1) rnorm(10, mean = 0, sd = 1)1.4 幾個(gè)隨機(jī)數(shù)的相關(guān)函數(shù)概率密度dunif(x, min=0, max=1, log = FALSE)累積函數(shù)punif(q, min=0, max=1,)分位數(shù)qunif(p, min=0, max=1,)隨機(jī)均勻分布runif(n, min=0, max=1)2 .矩陣的創(chuàng)建生成矩陣的函數(shù)dim() 和 matrix()dim() 定義矩陣的行列數(shù),
18、例如:x <- 1:12dim(x) <- c(3,4),1,2 ,3,41,147102,258113,36912matrix.x <- matrix(1:12,nrow=3,byrow=T)t(x)#轉(zhuǎn)置為行或列添加名稱:s() s()3 .數(shù)據(jù)框的創(chuàng)建創(chuàng)建數(shù)據(jù)框的函數(shù):data.frame(), as.data.frame(), cbind(), rbind()cbind()rbind()# 按列組合成數(shù)據(jù)框# 按行組合成數(shù)據(jù)框data.frame() #生成數(shù)據(jù)框head()#默認(rèn)訪問數(shù)據(jù)的前6 行4.列表的創(chuàng)建列表可以是不同類型甚至不
19、同長(zhǎng)度的向量(數(shù)值型,邏輯型,字符型等等)、數(shù)據(jù)框甚至是列表的組合。list() 例如 list(character,numeric,logical,matrix.x)十四、對(duì)象類的判斷與轉(zhuǎn)換對(duì)象類型判斷:mode() 判斷存儲(chǔ)的類型class() 判斷數(shù)據(jù)的類根據(jù)數(shù)據(jù)的類,采用相應(yīng)的處理方法。類的轉(zhuǎn)換as.numeric() #轉(zhuǎn)換為數(shù)值型 as.logical() #轉(zhuǎn)換為邏輯型 as.charactor() #轉(zhuǎn)換為字符串 as.matrix() #轉(zhuǎn)換為矩陣 as.data.frame() #轉(zhuǎn)換為數(shù)據(jù)框as.factor() #轉(zhuǎn)換為因子以下函數(shù),主要用在函數(shù)處理異常時(shí)使用,目的是增
20、強(qiáng)程序的穩(wěn)健性。類型判斷is.numeric()#返回值為TRUE 或 FALSEis.logical()#是否為邏輯值is.charactor() #是否為字符串is.null()#是否為空is.na()#是否為na卜五、元素引用與訪問1 .向量?jī)?nèi)的元素引用# Dalgaard 書中的例子intake.pre <- c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770)intake.post <- c(3910, 4220, 3885, 5160, 5645, 4680, 5265, 5975, 67
21、90, 6900, 7335)intake.pre5;#引用第5 個(gè)元素intake.prec(3,5,7)#引用第3,5,7個(gè)元素v <- c(3,5,7); intake.prev;intake.pre1:5;#引用第1 到5個(gè)元素intake.pre-c(3,5,7)#去除第3,5,7 元素2 .數(shù)據(jù)框內(nèi)元素的引用intake <- data.frame(intake.pre, intake.post) 引用數(shù)據(jù)框中的元素(1) $ 引用列,后面為列的名稱例如 intake$intake.pre(2) , 方括號(hào)引用,逗號(hào)前為行,逗號(hào)后為列intake,1;引用第1列inta
22、ke5,;引用第5行intake5,1;引用第1列,第 5行引用1到5行i = 1:5; intakei,3 .列表內(nèi)元素的引用列表內(nèi)元素的引用可以用" "如list1c(1,2,3)上述放于“ 口”內(nèi)的數(shù)字,稱為下標(biāo)。通過下標(biāo)的變化,可以方便的訪問向量、數(shù)據(jù)框、矩陣、列表內(nèi)的各元素。熟悉下標(biāo)的用法對(duì)掌握循環(huán)結(jié)構(gòu)是非常重要的。4 .訪問數(shù)據(jù)框內(nèi)的元素直接調(diào)用數(shù)據(jù)框內(nèi)的列,以列的名稱作為向量的名稱attatch()detatch()在函數(shù)內(nèi)部,對(duì)數(shù)據(jù)進(jìn)行相應(yīng)調(diào)整with() #with函數(shù)內(nèi)部形成一個(gè)空間,在這個(gè)空間中,函數(shù)可以對(duì)列訪問。within()transform。#
23、數(shù)據(jù)的轉(zhuǎn)換,如取logsubset()#取數(shù)據(jù)的子集apply()#對(duì)數(shù)據(jù)表或矩陣應(yīng)用某個(gè)函數(shù),可減少循環(huán)十六、條件篩選與排序1 .條件篩選條件篩選是先對(duì)變量否滿足條件進(jìn)行判斷,滿足為TRUE,不滿足為FALSE。之后再用邏輯值對(duì)向量?jī)?nèi)的元素進(jìn)行篩選。intake.pre > 70001 FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUEintake.preintake.pre > 7000intake.pre > 7000 & intake.pre <= 80002 FALSE FALSE
24、 FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSEintake.postintake.pre > 7000 & intake.pre <= 8000 2排序sort()按數(shù)值大小排序sink()#將運(yùn)行結(jié)果保存到指定文件中g(shù)etwd()#顯示當(dāng)前工作文件夾setwd() |#設(shè)定工作文件夾將向量中的元素按照一定順序排列。舉例:intake$intake.presort(intake$intake.pre)order()默認(rèn)給出從小到大的出現(xiàn)序號(hào)。order(intake$post)o <- intakeorder(
25、intake$intake.pre),十七、工作路徑(工作空間、歷史)1 .工作空間P10R的所有對(duì)象都在計(jì)算機(jī)內(nèi)存的工作空間中。is()M#列出工作空間中的對(duì)象rm()刪除工作空間中的對(duì)象rm(list=ls() #刪除空間中所有對(duì)象save.image() #保存工作鏡像2 .輸入歷史History? 輸入的命令,在 R中作為歷史history保存,可輸入函數(shù)?history。#查看輸入歷史?history(Inf)#查看打開R之后所有的輸入?可用向上或向下的箭頭切換輸入的行。十八、腳本編程 Scripting1 .腳本語(yǔ)言腳本語(yǔ)言(scripting language)又稱動(dòng)態(tài)語(yǔ)言,是依
26、靠解釋器完成相應(yīng)的功能的一類計(jì)算機(jī)語(yǔ)言,通 常以ASCII碼的文本格式保存源程序。1.1 特點(diǎn)腳本語(yǔ)言語(yǔ)法和結(jié)構(gòu)通常比較簡(jiǎn)單,不需要編譯,通過解釋器對(duì)腳本進(jìn)行解釋,從而給出結(jié)果,能用簡(jiǎn)單的代碼完成復(fù)雜的功能,但是速度較慢。1.2 常見的腳本語(yǔ)言Windows 批處理程序,PHP, Perl, Python, Ruby, JavaScript 等。2 .集成開發(fā)環(huán)境很多計(jì)算機(jī)語(yǔ)言都有 IDE (integrated development environment),即集成開發(fā)環(huán)境,如 Windows的 VisualStudio, Visual Basic 等等。但是R通常無(wú)需集成開發(fā)環(huán)境,腳本在
27、一般的文本編輯器里即可編輯。如 Windows 自帶的記事本,Notepad+, UltraEdit Linux 下的 Vi, Vim, Emacs 等等。在代碼較多的情況下,常需要對(duì)行數(shù)、函數(shù)、括號(hào)、 色,以減少錯(cuò)誤的發(fā)生。3.編輯器R自帶的腳本編輯器Editplus ()TinnR ()Ultraedit (),TinnR。函數(shù)選項(xiàng)等進(jìn)行高亮顯示,設(shè)置成不同的顏Emacs ()Notepad+ 與 NpptoR 組合()記事本或?qū)懽职宓鹊仁?、R繪圖R具備卓越的繪圖功能,通過參數(shù)設(shè)置對(duì)圖形進(jìn)行精確控制。繪制的圖形能滿足出版印刷的要求,可 以輸出 Jpg、tiff、eps、emf、pdf、p
28、ng 等各種格式。通過與GhostScript軟件的結(jié)合,可以生成 600dpi, 1200dpi的等各種分辨率和尺寸的圖形。繪圖是通過 繪圖函數(shù) 結(jié)合相應(yīng)的選項(xiàng)完成的。繪圖函數(shù)包括 高級(jí)繪圖函數(shù) 和低級(jí)繪圖函數(shù)。1 .高級(jí)繪圖函數(shù):plot()繪制散點(diǎn)圖等多種圖形,根據(jù)數(shù)據(jù)的類,調(diào)用相應(yīng)的函數(shù)繪圖hist()頻率直力圖boxplot()箱線圖stripchart()點(diǎn)圖barplot()柱狀圖dotplot()點(diǎn)圖piechart()餅圖matplot()數(shù)學(xué)圖形2 .低級(jí)繪圖函數(shù):lines()添加線curve()添加曲線abline()添加給定斜率的線points。添加點(diǎn)segments
29、。折線arrows()箭頭3.繪圖參數(shù)參數(shù)用在函數(shù)內(nèi)部,在沒有設(shè)定值時(shí)使用默認(rèn)值。axis()坐標(biāo)軸box()外框title()標(biāo)題text()文子mtext()圖邊文字font 二字體,lty =線類型,lwd =線寬度,pch =點(diǎn)的類型,xlab =橫坐標(biāo),ylab =縱坐標(biāo),xlim = 橫坐標(biāo)范圍,ylim = 縱坐標(biāo)范圍也可以對(duì)整個(gè)要繪制圖形的各種參數(shù)進(jìn)行設(shè)定,參見 par()4 .分步繪圖1 .打開繪圖窗口,不繪制任何對(duì)象plot(x, y, type="n", xlab="", ylab="", axes=F)2 .添
30、加坐標(biāo)點(diǎn)points(x,y)3 .添加坐標(biāo)軸axis(1); axis(at=seq(0.2,1.8,0.2), side=2)4 .補(bǔ)齊散點(diǎn)圖的邊框 box()5 .添加標(biāo)題、副標(biāo)題、橫軸說明、縱軸說明title(main="Main title", sub="subtitle", xlab="x-label", ylab="y-label")M9>n tttJv6沌5 .在原有圖形上添加元素 舉例:x <-rnorm(100)#生成隨機(jī)數(shù)hist(x,freq=F)#繪制直方圖curve(dnor
31、m(x),add=T)# 添加曲線h <- hist(x, plot=F)# 繪制直方圖ylim <- range(0, h$density, dnorm(0)# 設(shè)定縱軸的取值范圍hist(x, freq=F, ylim=ylim)# 繪制直方圖curve(dnorm(x),add=T,col="red")#添加曲線 二十、編寫函數(shù)1 .編程基礎(chǔ)C,C+R可以靈活的編寫程序,用戶自己編寫的程序可以直接調(diào)用。編程時(shí)無(wú)需聲明變量的類型,這與 等語(yǔ)言不同?;靖袷剑汉瘮?shù)名-function(數(shù)據(jù),參數(shù)1=默認(rèn)值,)異常處理;表達(dá)式(循環(huán)/判別);return(返回值
32、);函數(shù)內(nèi)部也可用#添加注釋2 .函數(shù)實(shí)例:data2mat()<function Jat a = Lia tri) (if (Tany (colnamea (data) - j. ; ")stop("A column named "abundancemust be specieflediif (1 r,y (is, ,ip I -rreb (仁一 $ abundance)st ->>,":: i:r i: :.i . : ii.a 1 a must 七2 1 nteqer!*) col <- which (colnamef (d
33、ata) “壯 1 )datal <- dal a,-colabundance <- as . numeric (dat a , .:c 1)resultl <- data.frame(repsum(abundance)1Jcolnames(result 1) <- *, 1 一 s" for (i in 1:(nccl(data)- <resultl i ERf (as , Ghauactei: (diat ai >, abundnce> result <- title(rssuitl)turn(result)3 .程序流程控制p =
34、 0.03 if(p<=0.05) print("p <= 0.05!”) else print("p > 0.05!") 3.1 條件ifif(條件)表達(dá)式if(條件)表達(dá)式1 else表達(dá)式2舉例:3.2 循環(huán) for, whilefor( 變量 in 向量 ) 表達(dá)式while( 條件 ) 表達(dá)式 用法 :用法:i <- 1for(i in 1:10) print(i)while(i<10) print(i); i <- i + 13.3 返回值? 返回值表示函數(shù)輸出的結(jié)果。? 返回值必須是一個(gè)對(duì)象。? R 默認(rèn)將最后一行
35、作為返回值。? 如果函數(shù)的結(jié)果需要有多個(gè)返回值,可以創(chuàng)建一個(gè)list() ,并返回該對(duì)象。? 也可以用return() 函數(shù),設(shè)定返回值。? 但是一個(gè)函數(shù)的返回的對(duì)象只有一個(gè)。3.4 異常處理? 如數(shù)據(jù)輸入不能滿足要求,或者參數(shù)設(shè)定錯(cuò)誤等等,可能造成函數(shù)給出錯(cuò)誤的結(jié)果,則需要對(duì)函數(shù)的運(yùn)行過程發(fā)出警告或終止,以提高程序的穩(wěn)健性。? 警告的寫法if(any(is.na(inputdata)inputdata <- na.omit(inputdata)cat( “ NAasre found in the input data, and has been removed.n")?終止的
36、寫法if(any(is.na(xx) stop("NAs are not allowed!n")3.5 函數(shù)舉例:?jiǎn)栴}:輸入直角三角形的兩個(gè)邊長(zhǎng),求其斜邊長(zhǎng)。定義函數(shù):rcal <- function(x,y)z <- xA2 + yA2result <- sqrt(z)return(result)調(diào)用函數(shù):rcal(3,4)二十一、數(shù)據(jù)保存write.table()write.csv()save.image()sink()unlink()若有 LaTeX 基礎(chǔ),可以用: Sweave() 函數(shù)該函數(shù)能將腳本、程序說明和運(yùn)算結(jié)果直接保存成.tex 文件,用
37、LaTeX 編譯成 pdf 文件。代碼與實(shí)際操作1 .() examplean <- ("arrg")武值(an) # TRUE判斷是否是name格式屬性?mode(an) # name an 的模式是什么?typeof(an) # symbolan 的數(shù)據(jù)類型是什么? symbol2 .現(xiàn)有6名患者的身高和體重,檢驗(yàn)體重除以身高的平方是否等于22.5。(從數(shù)據(jù)輸入到t檢驗(yàn))代碼:height<-c(1.75,1.80,1.65,1.90,1.74,1.91)weight<-c(60,72,57,90,95,72)number_
38、1<-1:6X<-(weight/heightA2)t.test(X,mu=22.5)#結(jié)果顯不One Sample t-test data: Xt = 0.34488, df = 5, p-value = 0.7442alternative hypothesis: true mean is not equal to 22.595 percent confidence interval:18.41734 27.84791sample estimates: mean of x23.13262weight<-c(60, 72, 57, 90, 95, 72)sq.height&l
39、t;-heightA2ratio<-weight/sq.heightt.test(ratio, mu=22.5)#結(jié)果顯不One Sample t-testdata: ratiot = 0.34488, df = 5, p-value = 0.7442alternative hypothesis: true mean is not equal to 22.595 percent confidence interval:18.41734 27.84791sample estimates: mean of x23高m1.751.801.651.901.741.91體
40、重kg607257909572height<-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)T檢驗(yàn)的原假設(shè)是 UW0或者U1WU2, a =0.0水平的話, U2統(tǒng)計(jì)學(xué)上是支持的。P>0.05,不能拒絕原假設(shè),也就是說U1不等于T檢驗(yàn)單側(cè)與雙側(cè)的關(guān)系, 雙側(cè)要求嚴(yán)格,其結(jié)果相對(duì)比較穩(wěn)?。?確定分布的話選擇(沒有負(fù)數(shù))單側(cè)檢驗(yàn), 不確定的話建議選擇反側(cè)檢驗(yàn)。統(tǒng)計(jì)書(P104)3 .讀取文件并進(jìn)行T 檢驗(yàn)>read.table("C:/Users/Administrator/Desktop/t.test.data.txt",head
41、er=T)>BMI<-c(weight/heightA2)>t.test(BMI,mu=22.5)height weight11.756021.807231.655741.909051.749561.9172或者> t.test.data<-read.table("C:/Users/Administrator/Desktop/t.test.data.txt",header=T)> attach(t.test.data)#意義是讓函數(shù)能夠直接進(jìn)行運(yùn)算,而不需要賦值。The following objects are masked _by_
42、.GlobalEnv:height, weight>ratio<-weight/heightA2>t.test(ratio)One Sample t-testdata: ratiot = 12.611, df = 5, p-value = 5.569e-05alternative hypothesis: true mean is not equal to 095 percent confidence interval:18.41734 27.84791sample estimates:mean of x23.132624.單因素方差分析將三種不同菌型的傷寒病毒a,b,c 分別
43、接種于10, 9, 和 11 只小白鼠上,觀察其存活天數(shù),問三種菌型下小白鼠的平均存活天數(shù)是否有顯著差異。a 菌株:2, 4, 3, 2, 4, 7, 7, 2, 5, 4b 菌株:5, 6, 8, 5, 10, 7, 12, 6, 6c 菌株:7,11,6, 6, 7, 9, 5,10, 6, 3,10#數(shù)據(jù)讀取,將test1.txt中的內(nèi)容保存到 bac中,header=T表示保留標(biāo)題行。bac<-read.table("d:/anova.data.txt",header=T)#將bac數(shù)據(jù)框中的type轉(zhuǎn)換為因子(factor)bac$type<-as.f
44、actor(bac$type)ba.an<-aov(lm(daytype, data=bac)summary(ba.an)5.下標(biāo)和條件篩選vector1<-seq(from=2, to=50, by=2) vector120vector1c(10,15,20)vector110:20vector1vector>40boxplot(daytype,data=bac,col="red")施ij建一個(gè) 2 至ij 50 的向量 vectorl 2, 4, 6, 8,48, 50 #然取vector1中的第20個(gè)元素#選取vector1中的第10, 15, 20
45、個(gè)元素#選取vector1中的第10至ij 20個(gè)元素#選取vector1中值大于40的元素6. 了解工作路徑6.1 查看當(dāng)前R工作的空間目錄getwd()6.2 將R工作的路徑設(shè)置為d:/data/setwd("d:/data")save.image("example.Rdata") load("example.Rdata")6.3 歷史history(Inf)7.例-線性回歸對(duì)一批涂料進(jìn)行研究,確定攪拌速度對(duì)雜質(zhì)含量的影響,數(shù)據(jù)如下,試進(jìn)行回歸分析 表3攪拌速度對(duì)涂料中雜質(zhì)的影響轉(zhuǎn)速rpm202224262830323436384
46、042雜質(zhì)率8.49.511.810.413.314.813.214.716.416.518.918.5腳本舉例#1.編輯腳本并保存:將以下代碼粘貼到編輯器中,另存為 regression1文件。rate<-c(20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42)impurity <-c(8.4, 9.5, 11.8, 10.4, 13.3, 14.8, 13.2, 14.7, 16.4, 16.5, 18.9, 18.5) plot(impurityrate) reg<-lm(impurityrate) abline(reg,col
47、="red") summary(reg)rpm<-seq(from=20,to=42,by=2) # 生成一個(gè)從 20開始,間隔 2,至U 42 的向量 mean(rpm)軸是rpm , X軸是rate。Y軸是rate, X軸是rpm。rate<-c(8.4, 9.5, 11.8, 10.4, 13.3, 14.8, 13.2, 14.7, 16.4, 16.5, 18.9, 18.5) mean(rate) plot(rate,rpm) # 一般線性回歸都要先畫散點(diǎn)圖觀察。Yplot(raterpm)#一般線性回歸都要先畫散點(diǎn)圖觀察。reg<-lm(raterpm) print(lm(raterpm) cor(rate,rpm)#計(jì)算二者的相關(guān)系數(shù) print(reg) abli
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省昆明市黃岡實(shí)驗(yàn)校2025年初三第一次聯(lián)考試題英語(yǔ)試題試卷含答案
- 貴州護(hù)理職業(yè)技術(shù)學(xué)院《園藝學(xué)通論》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西金融職業(yè)學(xué)院《應(yīng)用統(tǒng)計(jì)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 撫州職業(yè)技術(shù)學(xué)院《媒體寫作B》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西省贛州市紅旗實(shí)驗(yàn)中學(xué)2024-2025學(xué)年高三1月月考數(shù)學(xué)試題試卷含解析
- 吉林城市職業(yè)技術(shù)學(xué)院《植物保護(hù)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海健康醫(yī)學(xué)院《數(shù)據(jù)科學(xué)與工程算法》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇省徐州市樹恩中學(xué)2024-2025學(xué)年高一下學(xué)期第一次月考地理試題(含答案)
- 帆布戶外裝備的多功能性與智能化發(fā)展趨勢(shì)考核試卷
- 有機(jī)原料的化學(xué)合成途徑考核試卷
- GB/T 4857.2-2005包裝運(yùn)輸包裝件基本試驗(yàn)第2部分:溫濕度調(diào)節(jié)處理
- 醫(yī)護(hù)服務(wù)禮儀培訓(xùn)
- GB 1886.239-2016食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑瓊脂
- 復(fù)雜肘關(guān)節(jié)骨折脫位的診治課件
- 2023全球宏觀展望(英文)-高盛
- 5w2H分析法培訓(xùn)教材課件
- 七大浪費(fèi)培訓(xùn)資料課件
- JJF1637-2017 廉金屬熱電偶校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 簡(jiǎn)約復(fù)古風(fēng)夏洛蒂勃朗特《簡(jiǎn)愛》作品簡(jiǎn)介名著讀后感PPT課件
- DGTJ08-2128-2021 軌道交通及隧道工程混凝土結(jié)構(gòu)耐久性設(shè)計(jì)施工技術(shù)標(biāo)準(zhǔn)
- 中水、純水系統(tǒng)簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論