R語言軟件入門指導(dǎo)解析課件_第1頁
R語言軟件入門指導(dǎo)解析課件_第2頁
R語言軟件入門指導(dǎo)解析課件_第3頁
R語言軟件入門指導(dǎo)解析課件_第4頁
R語言軟件入門指導(dǎo)解析課件_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1簡介及基本指令2012年4月25日第1頁,共84頁。2報告內(nèi)容一 R簡介二 對象、函數(shù)和軟件包三 R基本指令四 簡單編程第2頁,共84頁。3一 R 簡介第3頁,共84頁。4什么是R?圖1 R首頁的圖形R是一種統(tǒng)計繪圖語言,也指實現(xiàn)該語言的軟件。The R Project for Statistical Computing 第4頁,共84頁。R 的起源1995年由新西蘭Auckland大學(xué)統(tǒng)計系的Robert Gentleman和Ross Ihaka,基于S語言的源代碼,編寫了一能執(zhí)行S語言的軟件,并將該軟件的源代碼全部公開,這就是R軟件,其命令統(tǒng)稱為R語言。Robert GentlemanR

2、oss Ihaka自1997年以后,有一個核心團隊,這一團隊能對 R 的源代碼進行修改。第5頁,共84頁。6R的優(yōu)點豐富的資源 涵蓋了多種行業(yè)數(shù)據(jù)分析中幾乎所有的方法。良好的擴展性 十分方便得編寫函數(shù)和程序包,跨平臺,可以勝任復(fù)雜的數(shù)據(jù)分析、繪制精美的圖形。完備的幫助系統(tǒng) 每個函數(shù)都有統(tǒng)一格式的幫助,運行實例。Free第6頁,共84頁。7R的缺點用戶需要對命令熟悉 與代碼打交道,需要記住常用命令。幫助系統(tǒng)均為英文占用內(nèi)存 所有的數(shù)據(jù)處理在內(nèi)存中進行,不適于處理超大規(guī)模的數(shù)據(jù)。運行速度稍慢 即時編譯,約相當于C語言的1/20。第7頁,共84頁。8圖2 R軟件首頁 / 第8頁,共84頁。9CRAN

3、The Comprehensive R Archive Network簡稱CRAN,由世界幾十個鏡像網(wǎng)站組成網(wǎng)絡(luò),提供下載安裝程序和相應(yīng)軟件包。各鏡像更新頻率一般為1-2天推薦鏡像:中國的鏡像:數(shù)學(xué)所/mirrors/CRAN/及時更新的CRAN源/第9頁,共84頁。10Windows下載和安裝RCRAN: BinariesWindowsbase 下載完成后,雙擊R-2.11.0-win32.exe 開始安裝。一直點擊下一步,各選項默認,語言建議選英文。圖3 R2.11.0下載頁面第10頁,共84頁。R 的Windows圖形用戶界面 (RGUI)菜 單按鈕命令行繪 圖 區(qū)第11頁,共84頁。R

4、 管理的幾個概念使用期 (Session): 啟動R系統(tǒng)到結(jié)束R系統(tǒng)之間的時間段對 象 (Object): 由R產(chǎn)生或處理的實體,包括變量、向量、矩陣、組合、函數(shù)等歷 史 (Histroy): R使用期間所應(yīng)用的歷史記錄(XXX.Rhistroy)工作空間 (Workspace): 當前被存儲對象的集合(XXX.Rdata)不但對象而且包含了對象的系統(tǒng)環(huán)境;當一次使用完畢要關(guān)閉R時,R會詢問是否保存工作空間軟件包 (Package): 執(zhí)行一定功能的函數(shù)、數(shù)據(jù)等的集合,一些內(nèi)置于R系統(tǒng)內(nèi),大部分外置于網(wǎng)絡(luò)第12頁,共84頁。R代碼管理R 文件(對象)管理工作空間載入和存儲歷史記錄管理路徑管理文

5、件管理第13頁,共84頁。R 文件(對象)管理工作路徑: getwd() setwd(“aa:/bb/”)導(dǎo)入 R code: source(“aa:/bb/XXX.r or XXX.txt”) 如果已設(shè)定是工作路徑則source(“XXX.r or XXX.txt”) 存儲工作空間: save.image(“XXX.Rdata”); 導(dǎo)入工作空間 load(“XXX.Rdata”), 或者直接雙擊XXX.Rdata打開R界面,此時工作空間自動導(dǎo)入,工作路徑默認為XXX.Rdata存儲時的工作路徑存儲、導(dǎo)入命令行歷史記 savehistory(file=“XXX.Rhistory”) load

6、history(file=“XXX.Rhistory”)第14頁,共84頁。R 界面調(diào)整第15頁,共84頁。R 工作空間內(nèi)對象和軟件包顯示顯示工作空間中的對象刪除工作空間中的所有對象顯示置入R工作空間的所有 Packagels()rm(list=ls()search()第16頁,共84頁。R 的 Package 管理將 R 的library的package載入R工作空間library(“packagename”)從網(wǎng)絡(luò)將外置的package載入R 的library從計算機硬盤其它文件夾的package載入R 的library第17頁,共84頁。18二 對象、函數(shù)和程序包第18頁,共84頁。對

7、象 (Object): 由R產(chǎn)生或處理的實體,包括變量、向量、矩陣、組合等函 數(shù) (Function): 執(zhí)行R 任務(wù)的一個完整的程序。程序包(Package): 執(zhí)行一定功能的函數(shù)的集合,一些內(nèi)置于R系統(tǒng)內(nèi),大部分外置于網(wǎng)絡(luò)第19頁,共84頁。20對象賦值與注釋在控制臺中鍵入如下命令2 + 2a - 2代替b - 2c install packages from local files選擇本地磁盤上存儲zip包的文件夾。2 用函數(shù) install.packages()如果已經(jīng)連接到互聯(lián)網(wǎng),在括號中輸入要安裝的程序包名稱,選擇鏡像后,程序?qū)⒆詣酉螺d并安裝程序包。例如: 要安裝vegan包,在控

8、制臺中輸入 install.packages(vegan)第35頁,共84頁。36程序包使用程序包的中函數(shù),都要先導(dǎo)入,再使用,因此導(dǎo)入程序包是第一步。在控制臺中輸入如下命令:library(vegan)程序包內(nèi)的函數(shù)的用法與R內(nèi)置的基本函數(shù)用法一樣。library(vegan)This is vegan 1.17-2第36頁,共84頁。37查看程序包幫助文件vegan 程序包內(nèi)部都有哪些函數(shù)?分別有什么功能?查詢程序包內(nèi)容最常用的方法:1 菜單 幫助Html幫助2 查看pdf幫助文檔3 引用 citation(package = vegan)第37頁,共84頁。38常用R程序包(I)ade4

9、利用歐幾里得方法進行生態(tài)學(xué)數(shù)據(jù)分析adephylo系統(tǒng)進化數(shù)據(jù)挖掘與比較方法ape系統(tǒng)發(fā)育與進化分析apTreeshape進化樹分析bootBootstrap檢驗cluster聚類分析ecodist生態(tài)學(xué)數(shù)據(jù)相異性分析FD功能多樣性分析geiger物種形成速率與進化分析第38頁,共84頁。39常用R程序包(II)Graphics繪圖lattice柵格圖maptools空間對象的讀取和處理mefa生態(tài)學(xué)和生物地理學(xué)多元數(shù)據(jù)處理mgcv廣義加性模型相關(guān)mvpart多變量分解nlme線性及非線性混合效應(yīng)模型ouch系統(tǒng)發(fā)育比較pgirmess生態(tài)學(xué)數(shù)據(jù)分析phangorn系統(tǒng)發(fā)育分析第39頁,共84

10、頁。40常用R程序包(III)picante群落系統(tǒng)發(fā)育多樣性分析raster柵格數(shù)據(jù)分析與處理seqinrDNA序列分析sp空間數(shù)據(jù)處理spatstat空間點格局分析,模型擬合與檢驗splancs空間與時空點格局分析statsR統(tǒng)計學(xué)包SDMTools物種分布模型工具vegan植物與植物群落的排序,生物多樣性計算第40頁,共84頁。41圖 9 CRAN Task Views: 對程序包的分類介紹/web/views/CRAN Task Views第41頁,共84頁。42R圖形界面:R commanderR commander是R的圖形界面之一,是John Fox教授編寫的,適用于不希望R編程

11、的用戶。隨著用戶的操作,其窗口還可以顯示出相應(yīng)操作的R程序,對于初學(xué)者可能會有幫助,但不推薦使用!安裝R commanderinstall.packages(Rcmdr)R將自動下載并安裝Rcmdr所需的所有程序包第42頁,共84頁。43圖形界面之一:R Commander圖 12 R commander 界面 library(Rcmdr) 界面操作代碼結(jié)果輸出第43頁,共84頁。44三 R基本指令第44頁,共84頁。45數(shù)據(jù)讀取 最為常用的數(shù)據(jù)讀取方式是用read.table() 函數(shù)或read.csv()函數(shù)讀取外部txt或csv格式的文件。 txt文件,制表符間隔 read.table(

12、“*.txt”,head=T) csv文件,逗號間隔 read.csv(“*.csv”,head=T)read.table(file=file.choose(),header=T)read.csv(file=file.choose(),header=T)read.table(clipboard)可以彈出對話框,選擇文件。 一些R程序包(如foreign)也提供了直接讀取Excel, SAS, dbf, Matlab, spss, systat, Minitab文件的函數(shù)。第45頁,共84頁。46 數(shù)據(jù)保存write.table(x,file=“*.txt”)write.csv(x,file=“

13、*.csv”)sink(“*.txt”) sink() #sink開頭,sink()結(jié)束save.image(file=test.RData)edit(x)fix(x)第46頁,共84頁。47運算符數(shù)學(xué)運算 運算后給出數(shù)值結(jié)果+, -, *, /, #不僅是運算符,也是函數(shù),(x,1/3)比較運算 運算后給出判別結(jié)果(TRUE FALSE), , =, =, !=三角函數(shù) sin,cos,tan,asin,acos,atan對數(shù) log,exp,log10,log(x,base) abs()#絕對值組合數(shù) choose(4,2) 組合combn(1:4,2)排列P(m,n)= factoria

14、l(m)/factorial(m-n) 第47頁,共84頁。48向量的創(chuàng)建生成向量的函數(shù) c(),rep(),seq(),”:”c(2,5,6,9) rep(2,times=4) seq(from=3, to=21, by=3 ) 1 3 6 9 12 15 18 21“:” 1:15 (15:1) 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15通過與向量的組合,產(chǎn)生更為復(fù)雜的向量。rep(1:2,c(10,15)第48頁,共84頁。49向量運算指令最大值 max(x) 最小值 min(x) 中值 median(x) 分位數(shù) quantile(x,probs=0.2

15、5)平均值 mean(x) 范圍 range(x) 和 sum(x) 差分diff(x) 連乘 prod(x)weighted.mean(x,w)加權(quán)平均,rank(x)秩, var(x)方差 sd(x)標準差 length(x)長度summary(x) which.min(x) which.max(x) 第49頁,共84頁。50向量運算指令rev(x) #倒置sort(x) #升序rev(sort(x) #降序unique(x) #去掉重復(fù)元素sample(x,n) #從向量內(nèi)隨機抽取n個,不放回sample(x,n,replace=T) #放回隨機抽樣scale(x,scale=F,cen

16、ter=F)#標準化,默認是Tappend(x, values, after = length(x) # 往向量內(nèi)插值table(x) #頻率分布表match(x,y) #返回x長度的向量,y等取,不等NAcor(x,y)相關(guān)系數(shù)第50頁,共84頁。51向量內(nèi)的元素引用x - c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770)x5; #引用第5個元素xc(3,5,7) #引用第3,5,7個元素v 6000 #大于6000的元素xx6000&x8000#大于6000的元素且小于8000的元素第51頁,共84頁。5

17、2矩陣的創(chuàng)建生成矩陣的函數(shù) dim()和matrix()dim() 定義矩陣的行列數(shù),例如: x - 1:12 dim(x) - c(3,4) ,1 ,2 ,3 ,4 1, 1 4 7 10 2, 2 5 8 11 3, 3 6 9 12x - matrix(1:12,nrow=3,byrow=T)rownames(x)=c(“row1”,“row1”,“row1”)colnames(x)=paste(col, 1:4, sep = )第52頁,共84頁。53矩陣的運算dim(x) # 矩陣的維數(shù)t(x) #轉(zhuǎn)置矩陣rowsum(x) #行的和rowMeans(x)#行的平均值colsum(x

18、) #列的和colMeans(x)#行的平均值xi,j #第i行,第j個元素xi,x,j,x1:5,2:4x$colname #引用列,后面為列的名稱第53頁,共84頁。54矩陣的運算cbind () # 相同行數(shù)的矩陣組合rbind() # 相同列數(shù)的矩陣組合head() #默認訪問矩陣的前6行tail()#默認訪問矩陣的最后6行attach() #直接調(diào)用數(shù)據(jù)框內(nèi)的列,以列的名稱作為向量的名稱detach()subset() #條件調(diào)用subset (iris, select= c(Sepal.Length, Petal.Length), Species = setosa)xorder(x

19、,1), #矩陣排序第54頁,共84頁。55數(shù)據(jù)表的行與列低地33220251049樣方5低地20260241238樣方4山坡45390201146樣方3山坡30350261251樣方2山頂25600221540樣方1類型坡度海拔屬數(shù)科數(shù)物種數(shù)行名Row names字符串列名 Column names每列可看做帶名稱的向量表1 數(shù)據(jù)表、數(shù)據(jù)框與向量字符串、因子每行作為一個Entry第55頁,共84頁。56數(shù)據(jù)框的創(chuàng)建創(chuàng)建數(shù)據(jù)框的函數(shù):data.frame(x,y,z), as.data.frame(x,rownames=NUll) cbind() rbind()edit()和fix() #修改

20、數(shù)據(jù)礦矩陣的命令基本上也適用于數(shù)據(jù)框第56頁,共84頁。57曲線積分integrate(dnorm,-1.96,1.96)integrand = function(x) 1/(x+1)* sqrt(x)integrate(integrand, lower = 0, upper=Inf )求(偏)導(dǎo)數(shù)?integrand = expression(1/(x+1)* sqrt(x)D(integrand,x)第57頁,共84頁。58類的判斷對象類型判斷mode() 判斷存儲的類型class() 判斷數(shù)據(jù)的類is.numeric() #返回值為TRUE或FALSEis.logical() #是否為邏

21、輯值is.charactor() #是否為字符串is.null() #是否為空is.na() #是否為na第58頁,共84頁。59類的轉(zhuǎn)換as.numeric() #轉(zhuǎn)換為數(shù)值型as.logical() #轉(zhuǎn)換為邏輯型as.charactor() #轉(zhuǎn)換為字符串a(chǎn)s.matrix() #轉(zhuǎn)換為矩陣as.data.frame() #轉(zhuǎn)換為數(shù)據(jù)框as.factor() #轉(zhuǎn)換為因子第59頁,共84頁。60簡單繪圖函數(shù)plot(x) 繪制散點圖等多種圖形,根據(jù)數(shù)據(jù)的類,調(diào)用相應(yīng)的函數(shù)繪圖hist() 頻率直方圖boxplot() 箱線圖stripchart() 點圖barplot() 柱狀圖dotp

22、lot() 點圖piechart() 餅圖matplot()數(shù)學(xué)圖形第60頁,共84頁。61繪圖函數(shù)lines()添加線curve()添加曲線abline()添加給定斜率的線points()添加點segments()折線arrows()箭頭axis()坐標軸box()外框title()標題text()文字mtext()圖邊文字第61頁,共84頁。62繪圖參數(shù)參數(shù)用在函數(shù)內(nèi)部,在沒有設(shè)定值時使用默認值。font = 字體lty = 線類型lwd = 線寬度pch = 點的類型,xlab = 橫坐標ylab = 縱坐標xlim = 橫坐標范圍ylim = 縱坐標范圍也可以對整個要繪制圖形的各種參數(shù)

23、進行設(shè)定參見 par()第62頁,共84頁。63例1:從數(shù)據(jù)輸入到t檢驗編號123456身高 m1.751.801.651.901.741.91體重kg607257909572 六名患者的身高和體重現(xiàn)有6名患者的身高和體重,檢驗體重除以身高的平方是否等于22.5。第63頁,共84頁。64第一種方式:從控制臺輸入數(shù)據(jù)數(shù)據(jù)量較少時可以從控制臺直接輸入: height-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91) weight-c(60, 72, 57, 90, 95, 72) sq.height-height2 ratio-weight/sq.height t.tes

24、t(ratio, mu=22.5) 第64頁,共84頁。65第二種方式 從外部讀取數(shù)據(jù)數(shù)據(jù)量較大時用read.table函數(shù)從外部txt文件讀取第1步 將Excel中的數(shù)據(jù)另存為.txt格式(制表符間隔)或.csv格式。第2步 用read.table()或read.csv()函數(shù)將數(shù)據(jù)讀入R工作空間,并賦值給一個對象。第65頁,共84頁。66圖14 在Excel中將數(shù)據(jù)存為txt文件第66頁,共84頁。67例:t檢驗(續(xù))一般從txt文檔讀取數(shù)據(jù)。每一行作為一個觀測值。每一行的變量用制表符,空格或逗號間隔開。read.table(”位置”, header=T)read.csv(”位置”,hea

25、der=T)#從外部讀取數(shù)據(jù)data1-read.table(d:/t.test.data.txt,header=T)bmi- data1$weight/data1$height2t.test(bmi, mu=22.5) #t檢驗第67頁,共84頁。68例2:單因素方差分析 將三種不同菌型的傷寒病毒a,b,c分別接種于10,9,和11只小白鼠上,觀察其存活天數(shù),問三種菌型下小白鼠的平均存活天數(shù)是否有顯著差異。 a菌株:2, 4, 3, 2, 4, 7, 7, 2, 5, 4 b菌株:5, 6, 8, 5, 10, 7, 12, 6, 6 c菌株:7,11,6, 6, 7, 9, 5, 10,

26、6, 3, 10 第68頁,共84頁。69準備數(shù)據(jù)表圖15 數(shù)據(jù)表的準備day和type 各為一列第69頁,共84頁。70例2:方差分析(續(xù))#數(shù)據(jù)讀取,將test1.txt中的內(nèi)容保存到bac中, header=T表示保留標題行。bac-read.table(d:/trees.txt,header=T) #將ba數(shù)據(jù)框中的type轉(zhuǎn)換為因子(factor)bac$type-as.factor(bac$type) ba.an-aov(lm(daytype, data=bac) summary(ba.an) boxplot(daytype,data=bac,col=red)第70頁,共84頁。7

27、1圖16 三種菌型對小白鼠影響的箱線圖第71頁,共84頁。72例3-線性回歸轉(zhuǎn)速rpm 202224262830323436384042雜質(zhì)率%8.49.511.810.413.314.813.214.716.416.518.918.5對一批涂料進行研究,確定攪拌速度對雜質(zhì)含量的影響,數(shù)據(jù)如下,試進行回歸分析表3 攪拌速度對涂料中雜質(zhì)的影響第72頁,共84頁。73rate-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,

28、 16.5, 18.9, 18.5)plot(impurityrate)reg-lm(impurityrate)abline(reg,col=red)summary(reg)第73頁,共84頁。74四 簡單編程第74頁,共84頁。75編程基礎(chǔ) R可以靈活的編寫程序,用戶自己編寫的程序可以直接調(diào)用。基本格式 函數(shù)名 - function(數(shù)據(jù),參數(shù)1= 默認值,) 表達式(循環(huán)/判別); return(返回值); 函數(shù)內(nèi)部也可用#添加注釋第75頁,共84頁。76程序流程控制 ifif(條件) 表達式 if(條件) 表達式1 else 表達式2 舉例if(p=0.05) print(p 0.05!)第76頁,共84頁。77循環(huán) for, whilefor(變量 in 向量) 表達式用法: for(i in 1:10) print(i)while(條件) 表達式 用法:i - 1while(i10) print(i) i - i + 1第77頁,共84頁。78返回值返回值表示函數(shù)輸出的結(jié)果。返回值必須是一個對象。R默認將最后一行作為返回值。如果函數(shù)的結(jié)果需要有多個返回值,可以創(chuàng)建一個list(),并返回該對象。也可以用return()函數(shù),設(shè)定返回值。但是一個函數(shù)的返回的對象只有一個。第78頁,共84頁。79簡單函數(shù)舉例問題:輸入直角三角形的兩個邊長,求其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論