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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1簡介及基本指令2012年4月25日2報告內容一R簡介二對象、函數和軟件包三R基本指令四簡單編程3一R簡介4什么是R?圖1R首頁的圖形R是一種統(tǒng)計繪圖語言,也指實現該語言的軟件。TheRProjectforStatisticalComputing

R的起源1995年由新西蘭Auckland大學統(tǒng)計系的RobertGentleman和RossIhaka,基于S語言的源代碼,編寫了一能執(zhí)行S語言的軟件,并將該軟件的源代碼全部公開,這就是R軟件,其命令統(tǒng)稱為R語言。RobertGentlemanRossIhaka自1997年以后,有一個核心團隊,這一團隊能對R的源代碼進行修改。6R的優(yōu)點豐富的資源涵蓋了多種行業(yè)數據分析中幾乎所有的方法。良好的擴展性十分方便得編寫函數和程序包,跨平臺,可以勝任復雜的數據分析、繪制精美的圖形。完備的幫助系統(tǒng)每個函數都有統(tǒng)一格式的幫助,運行實例。Free7R的缺點用戶需要對命令熟悉與代碼打交道,需要記住常用命令。幫助系統(tǒng)均為英文占用內存所有的數據處理在內存中進行,不適于處理超大規(guī)模的數據。運行速度稍慢即時編譯,約相當于C語言的1/20。8圖2R軟件首頁/

9CRANTheComprehensiveRArchiveNetwork簡稱CRAN,由世界幾十個鏡像網站組成網絡,提供下載安裝程序和相應軟件包。各鏡像更新頻率一般為1-2天推薦鏡像:中國的鏡像:數學所/mirrors/CRAN/及時更新的CRAN源/10Windows下載和安裝RCRAN:Binaries>Windows>base下載完成后,雙擊R-2.11.0-win32.exe

開始安裝。一直點擊下一步,各選項默認,語言建議選英文。圖3R2.11.0下載頁面R的Windows圖形用戶界面(RGUI)菜單按鈕命令行繪圖區(qū)R管理的幾個概念使用期(Session):

啟動R系統(tǒng)到結束R系統(tǒng)之間的時間段對象(Object):

由R產生或處理的實體,包括變量、向量、矩陣、組合、函數等歷史(Histroy):R使用期間所應用的歷史記錄(XXX.Rhistroy)工作空間(Workspace):

當前被存儲對象的集合(XXX.Rdata)不但對象而且包含了對象的系統(tǒng)環(huán)境;當一次使用完畢要關閉R時,R會詢問是否保存工作空間軟件包(Package):

執(zhí)行一定功能的函數、數據等的集合,一些內置于R系統(tǒng)內,大部分外置于網絡R代碼管理R文件(對象)管理工作空間載入和存儲歷史記錄管理路徑管理文件管理R文件(對象)管理工作路徑:getwd()setwd(“aa:/bb/…”)導入Rcode:source(“aa:/bb/…/XXX.rorXXX.txt”)如果已設定是工作路徑則source(“XXX.rorXXX.txt”)存儲工作空間:save.image(“XXX.Rdata”);導入工作空間load(“XXX.Rdata”),或者直接雙擊XXX.Rdata打開R界面,此時工作空間自動導入,工作路徑默認為XXX.Rdata存儲時的工作路徑存儲、導入命令行歷史記savehistory(file=“XXX.Rhistory”)loadhistory(file=“XXX.Rhistory”)R界面調整R工作空間內對象和軟件包顯示顯示工作空間中的對象刪除工作空間中的所有對象顯示置入R工作空間的所有Packagels()rm(list=ls())search()R的Package管理將R的library的package載入R工作空間library(“packagename”)從網絡將外置的package載入R的library從計算機硬盤其它文件夾的package載入R的library18二對象、函數和程序包對象(Object):

由R產生或處理的實體,包括變量、向量、矩陣、組合等函數(Function):執(zhí)行R任務的一個完整的程序。程序包(Package):

執(zhí)行一定功能的函數的集合,一些內置于R系統(tǒng)內,大部分外置于網絡20對象賦值與注釋在控制臺中鍵入如下命令2+2a<-2<-也可用=,甚至->代替b<-2c<-a+bc#注釋賦值符號21元素的類型對象是由各元素組成的。每個元素,都有自己的數據類型數值型Numeric如

100,0,-4.335字符型Character如“China”邏輯型Logical如TRUE,FALSE因子型Factor

表示不同類別復數型Complex如:2+3i22如何為對象起名?R處理的所有數據、變量、函數和結果都以對象的形式保存。1.區(qū)分大小寫,注意China和china的不同。2.

不能用數字作為變量,對象也不能用數字開頭,但是數字可以放在中間或結尾,如2result與result2,后者是合法的。3.

建議不要用過短的名稱??梢杂谩?”作為間隔,例如anova.result1。4.

不要使用保留名:NA,NaN,pi,LETTERS,letters,month.abb,23對象的類(class)向量(vector)

一系列元素的組合。如c(1,2,3);c("a","a","b","b","c")矩陣(matrix)

二維的數據表,是數組的一個特例matrix(1:12,3,4)

[,1][,2][,3][,4][1,]14710[2,]25811[3,]3691224對象的類數據框(dataframe)

是由一個或幾個向量和(或)因子構成,它們必須是等長的,但可以是不同的數據類型。X=1:26y=lettersdata.frame(x,y)列表(list)

列表可以包含任何類型的對象,也就是數據集。可以包含向量、矩陣、高維數組,也可以包含列表25R的函數R是一種解釋性語言,輸入后可直接給出結果。功能靠函數實現。函數形式:

函數(輸入數據,參數=)如果沒有指定,則參數的以默認值為準。例如:線性模型

lm(y~x,data=test)26圖11R幫助文件的內容與格式apropos("tab")27幫助文件的內容lm{stats}#函數名及所在包

FittingLinearModels#標題Description#函數描述Usage#函數用法及默認選項Arguments#參數Details#詳情Values#計算結果解釋Author(s)#作者References#參考文獻Examples#舉例28R程序包(RPackages)程序包是什么?

R程序包是多個函數的集合,具有詳細的說明和示例。

Window下的R程序包是經過編譯的zip包。每個程序包包含R函數、數據、幫助文件、描述文件等。為什么要安裝程序包?

R程序包是R功能擴展,特定的分析功能,需要用相應的程序包實現。例如:群落生態(tài)學vegan包,系統(tǒng)發(fā)育分析ape程序包。如何尋找包?29如何尋找包?30如何尋找包?31如何尋找包?32如何尋找包?33如何尋找包?3435安裝程序包的方法1安裝本地zip包路徑:Packages>installpackagesfromlocalfiles選擇本地磁盤上存儲zip包的文件夾。2用函數install.packages()如果已經連接到互聯網,在括號中輸入要安裝的程序包名稱,選擇鏡像后,程序將自動下載并安裝程序包。例如:要安裝vegan包,在控制臺中輸入

install.packages("vegan")36程序包使用程序包的中函數,都要先導入,再使用,因此導入程序包是第一步。在控制臺中輸入如下命令:library(vegan)程序包內的函數的用法與R內置的基本函數用法一樣。library(vegan)Thisisvegan1.17-237查看程序包幫助文件vegan程序包內部都有哪些函數?分別有什么功能?查詢程序包內容最常用的方法:1菜單幫助>Html幫助2查看pdf幫助文檔3引用citation(package='vegan')38常用R程序包(I)ade4利用歐幾里得方法進行生態(tài)學數據分析adephylo系統(tǒng)進化數據挖掘與比較方法ape系統(tǒng)發(fā)育與進化分析apTreeshape進化樹分析bootBootstrap檢驗cluster聚類分析ecodist生態(tài)學數據相異性分析FD功能多樣性分析geiger物種形成速率與進化分析39常用R程序包(II)Graphics繪圖lattice柵格圖maptools空間對象的讀取和處理mefa生態(tài)學和生物地理學多元數據處理mgcv廣義加性模型相關mvpart多變量分解nlme線性及非線性混合效應模型ouch系統(tǒng)發(fā)育比較pgirmess生態(tài)學數據分析phangorn系統(tǒng)發(fā)育分析40常用R程序包(III)picante群落系統(tǒng)發(fā)育多樣性分析raster柵格數據分析與處理seqinrDNA序列分析sp空間數據處理spatstat空間點格局分析,模型擬合與檢驗splancs空間與時空點格局分析statsR統(tǒng)計學包SDMTools物種分布模型工具vegan植物與植物群落的排序,生物多樣性計算41圖9CRANTaskViews:對程序包的分類介紹/web/views/CRANTaskViews42R圖形界面:RcommanderRcommander是R的圖形界面之一,是JohnFox教授編寫的,適用于不希望R編程的用戶。隨著用戶的操作,其窗口還可以顯示出相應操作的R程序,對于初學者可能會有幫助,但不推薦使用!安裝Rcommanderinstall.packages("Rcmdr")R將自動下載并安裝Rcmdr所需的所有程序包43圖形界面之一:RCommander圖12Rcommander界面

library(Rcmdr)

界面操作代碼結果輸出44三R基本指令

45數據讀取

最為常用的數據讀取方式是用read.table()

函數或read.csv()函數讀取外部txt或csv格式的文件。

txt文件,制表符間隔read.table(“*.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文件的函數。46數據保存write.table(x,file=“*.txt”)write.csv(x,file=“*.csv”)sink(“*.txt”)……sink()##sink開頭,sink()結束save.image(file="test.RData")edit(x)fix(x)47運算符數學運算運算后給出數值結果+,-,*,/,^#不僅是運算符,也是函數,"^"(x,1/3)比較運算運算后給出判別結果(TRUEFALSE)>,<,<=,>=,==,!=三角函數

sin,cos,tan,asin,acos,atan對數log,exp,log10,log(x,base)abs()#絕對值組合數choose(4,2)組合combn(1:4,2)排列P(m,n)=factorial(m)/factorial(m-n)48向量的創(chuàng)建生成向量的函數

c(),rep(),seq(),”:”c(2,5,6,9)rep(2,times=4)seq(from=3,to=21,by=3)[1]36912151821“:”1:15(15:1)[1]123456789101112131415通過與向量的組合,產生更為復雜的向量。rep(1:2,c(10,15))49向量運算指令最大值max(x)最小值min(x)中值median(x)分位數quantile(x,probs=0.25)平均值mean(x)范圍range(x)和sum(x)差分diff(x)連乘prod(x)weighted.mean(x,w)加權平均,rank(x)秩,var(x)方差sd(x)標準差length(x)長度summary(x)which.min(x)which.max(x)50向量運算指令rev(x)#倒置sort(x)

#升序rev(sort(x))

#降序unique(x)

#去掉重復元素sample(x,n)

#從向量內隨機抽取n個,不放回sample(x,n,replace=T)

#放回隨機抽樣scale(x,scale=F,center=F)#標準化,默認是Tappend(x,values,after=length(x))#往向量內插值table(x)#頻率分布表match(x,y)#返回x長度的向量,y等取,不等NAcor(x,y)相關系數51向量內的元素引用x<-c(5260,5470,5640,6180,6390,6515,6805,7515,7515,8230,8770)x[5];

#引用第5個元素x[c(3,5,7)]

#引用第3,5,7個元素v<-c(3,5,7);x[v];

x[1:5];

#引用第1到5個元素x[-c(3,5,7)]

#去除第3,5,7元素x[x>6000]#大于6000的元素x[x>6000&x<8000]#大于6000的元素且小于8000的元素52矩陣的創(chuàng)建生成矩陣的函數

dim()和matrix()dim()定義矩陣的行列數,例如:

x<-1:12dim(x)<-c(3,4)[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912x<-matrix(1:12,nrow=3,byrow=T)rownames(x)=c(“row1”,“row1”,“row1”)colnames(x)=paste("col",1:4,sep="")53矩陣的運算dim(x)#矩陣的維數t(x)#轉置矩陣rowsum(x)#行的和rowMeans(x)#行的平均值colsum(x)#列的和colMeans(x)#行的平均值x[i,j]#第i行,第j個元素x[i,],x[,j],x[1:5,2:4]x$colname#引用列,后面為列的名稱54矩陣的運算cbind()#相同行數的矩陣組合rbind()

#相同列數的矩陣組合head()#默認訪問矩陣的前6行tail()#默認訪問矩陣的最后6行attach()#直接調用數據框內的列,以列的名稱作為向量的名稱detach()subset()#條件調用subset(iris,select=c(Sepal.Length,Petal.Length),Species=="setosa")x[order(±x[,1]),]#矩陣排序55數據表的行與列低地33220251049樣方5低地20260241238樣方4山坡45390201146樣方3山坡30350261251樣方2山頂25600221540樣方1類型坡度海拔屬數科數物種數行名Rownames字符串列名

Columnnames每列可看做帶名稱的向量表1數據表、數據框與向量字符串、因子每行作為一個Entry56數據框的創(chuàng)建創(chuàng)建數據框的函數:data.frame(x,y,z……),as.data.frame(x,rownames=NUll)cbind()rbind()edit()和fix()#修改數據礦矩陣的命令基本上也適用于數據框57曲線積分integrate(dnorm,-1.96,1.96)integrand=function(x){1/((x+1)*sqrt(x))}integrate(integrand,lower=0,upper=Inf))求(偏)導數?integrand=expression(1/((x+1)*sqrt(x))D(integrand,"x")58類的判斷對象類型判斷mode()

判斷存儲的類型class()

判斷數據的類is.numeric()

#返回值為TRUE或FALSEis.logical()

#是否為邏輯值is.charactor()

#是否為字符串is.null()#是否為空is.na()#是否為na59類的轉換as.numeric()#轉換為數值型as.logical()#轉換為邏輯型as.charactor()#轉換為字符串as.matrix()#轉換為矩陣as.data.frame()#轉換為數據框as.factor()#轉換為因子60簡單繪圖函數plot(x)繪制散點圖等多種圖形,根據數據的類,調用相應的函數繪圖hist()頻率直方圖boxplot()箱線圖stripchart()點圖barplot()柱狀圖dotplot()點圖piechart()餅圖matplot()數學圖形61繪圖函數lines()添加線curve()添加曲線abline()添加給定斜率的線points()添加點segments()折線arrows()箭頭axis()坐標軸box()外框title()標題text()文字mtext()圖邊文字62繪圖參數參數用在函數內部,在沒有設定值時使用默認值。font=

字體lty=

線類型lwd=

線寬度pch=

點的類型,xlab=

橫坐標ylab=

縱坐標xlim=

橫坐標范圍ylim=

縱坐標范圍也可以對整個要繪制圖形的各種參數進行設定參見par()63例1:從數據輸入到t檢驗編號123456身高m1.751.801.651.901.741.91體重kg607257909572

六名患者的身高和體重現有6名患者的身高和體重,檢驗體重除以身高的平方是否等于22.5。64第一種方式:從控制臺輸入數據數據量較少時可以從控制臺直接輸入:

height<-c(1.75,1.80,1.65,1.90,1.74,1.91)weight<-c(60,72,57,90,95,72)sq.height<-height^2ratio<-weight/sq.heightt.test(ratio,mu=22.5)65第二種方式從外部讀取數據數據量較大時用read.table函數從外部txt文件讀取第1步將Excel中的數據另存為.txt格式(制表符間隔)或.csv格式。第2步用read.table()或read.csv()函數將數據讀入R工作空間,并賦值給一個對象。66圖14在Excel中將數據存為txt文件67例:t檢驗(續(xù))一般從txt文檔讀取數據。每一行作為一個觀測值。每一行的變量用制表符,空格或逗號間隔開。read.table(”位置”,header=T)read.csv(”位置”,header=T)#從外部讀取數據data1<-read.table("d:/t.test.data.txt",header=T)bmi<-data1$weight/data1$height^2t.test(bmi,mu=22.5)#t檢驗68例2:單因素方差分析

將三種不同菌型的傷寒病毒a,b,c分別接種于10,9,和11只小白鼠上,觀察其存活天數,問三種菌型下小白鼠的平均存活天數是否有顯著差異。

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

69準備數據表圖15數據表的準備day和type各為一列70例2:方差分析(續(xù))#數據讀取,將test1.txt中的內容保存到bac中,header=T表示保留標題行。bac<-read.table("d:/trees.txt",header=T)#將ba數據框中的type轉換為因子(factor)bac$type<-as.factor(bac$type)ba.an<-aov(lm(day~type,data=bac))summary(ba.an)boxplot(day~type,data=bac,col="red")71圖16三種菌型對小白鼠影響的箱線圖72例3-線性回歸轉速rpm202224262830323436384042雜質率%8.49.511.810.413.314.813.214.716.416.518.918.5對一批涂料進行研究,確定攪拌速度對雜質含量的影響,數據如下,試進行回歸分析表3攪拌速度對涂料中雜質的影響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,16.5,18.9,18.5)plot(impurity~rate)reg<-lm(impurity~rate)abline(reg,col="red")summary(reg)74四簡單編程75編程基礎R可以靈活的編寫程序,用戶自己編寫的程序可以直接調用。基本格式函數名<-function(數據,參數1=默認值,…){

表達式(循環(huán)/判別);return(返回值);}函數內部也可用#添加注釋76程序流程控制ifif(條件)表達式if(條件)表達式1else

表達式2舉例{if(p<=0.05)print("p<=0.05!")elseprint("p>0.05!")}77循環(huán)for,whilefor(變量

in向量)表達式用法:

for(iin1:10)print(i)while(條件)表達式

溫馨提示

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

評論

0/150

提交評論