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

下載本文檔

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

文檔簡介

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

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

9CRANTheComprehensiveRArchiveNetwork簡稱CRAN,由世界幾十個鏡像網(wǎng)站組成網(wǎng)絡(luò),提供下載安裝程序和相應軟件包。各鏡像更新頻率一般為1-2天推薦鏡像:中國的鏡像:數(shù)學所/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)到結(jié)束R系統(tǒng)之間的時間段對象(Object):

由R產(chǎn)生或處理的實體,包括變量、向量、矩陣、組合、函數(shù)等歷史(Histroy):R使用期間所應用的歷史記錄(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ò)R代碼管理R文件(對象)管理工作空間載入和存儲歷史記錄管理路徑管理文件管理R文件(對象)管理工作路徑:getwd()setwd(“aa:/bb/…”)導入Rcode:source(“aa:/bb/…/XXX.rorXXX.txt”)如果已設(shè)定是工作路徑則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界面調(diào)整R工作空間內(nèi)對象和軟件包顯示顯示工作空間中的對象刪除工作空間中的所有對象顯示置入R工作空間的所有Packagels()rm(list=ls())search()R的Package管理將R的library的package載入R工作空間library(“packagename”)從網(wǎng)絡(luò)將外置的package載入R的library從計算機硬盤其它文件夾的package載入R的library18二對象、函數(shù)和程序包對象(Object):

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

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

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

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

不能用數(shù)字作為變量,對象也不能用數(shù)字開頭,但是數(shù)字可以放在中間或結(jié)尾,如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)

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

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

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

列表可以包含任何類型的對象,也就是數(shù)據(jù)集??梢园蛄?、矩陣、高維數(shù)組,也可以包含列表25R的函數(shù)R是一種解釋性語言,輸入后可直接給出結(jié)果。功能靠函數(shù)實現(xiàn)。函數(shù)形式:

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

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

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

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

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

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

install.packages("vegan")36程序包使用程序包的中函數(shù),都要先導入,再使用,因此導入程序包是第一步。在控制臺中輸入如下命令:library(vegan)程序包內(nèi)的函數(shù)的用法與R內(nèi)置的基本函數(shù)用法一樣。library(vegan)Thisisvegan1.17-237查看程序包幫助文件vegan程序包內(nèi)部都有哪些函數(shù)?分別有什么功能?查詢程序包內(nèi)容最常用的方法:1菜單幫助>Html幫助2查看pdf幫助文檔3引用citation(package='vegan')38常用R程序包(I)ade4利用歐幾里得方法進行生態(tài)學數(shù)據(jù)分析adephylo系統(tǒng)進化數(shù)據(jù)挖掘與比較方法ape系統(tǒng)發(fā)育與進化分析apTreeshape進化樹分析bootBootstrap檢驗cluster聚類分析ecodist生態(tài)學數(shù)據(jù)相異性分析FD功能多樣性分析geiger物種形成速率與進化分析39常用R程序包(II)Graphics繪圖lattice柵格圖maptools空間對象的讀取和處理mefa生態(tài)學和生物地理學多元數(shù)據(jù)處理mgcv廣義加性模型相關(guān)mvpart多變量分解nlme線性及非線性混合效應模型ouch系統(tǒng)發(fā)育比較pgirmess生態(tài)學數(shù)據(jù)分析phangorn系統(tǒng)發(fā)育分析40常用R程序包(III)picante群落系統(tǒng)發(fā)育多樣性分析raster柵格數(shù)據(jù)分析與處理seqinrDNA序列分析sp空間數(shù)據(jù)處理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)

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

45數(shù)據(jù)讀取

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

函數(shù)或read.csv()函數(shù)讀取外部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文件的函數(shù)。46數(shù)據(jù)保存write.table(x,file=“*.txt”)write.csv(x,file=“*.csv”)sink(“*.txt”)……sink()##sink開頭,sink()結(jié)束save.image(file="test.RData")edit(x)fix(x)47運算符數(shù)學運算運算后給出數(shù)值結(jié)果+,-,*,/,^#不僅是運算符,也是函數(shù),"^"(x,1/3)比較運算運算后給出判別結(jié)果(TRUEFALSE)>,<,<=,>=,==,!=三角函數(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)=factorial(m)/factorial(m-n)48向量的創(chuàng)建生成向量的函數(shù)

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通過與向量的組合,產(chǎn)生更為復雜的向量。rep(1:2,c(10,15))49向量運算指令最大值max(x)最小值min(x)中值median(x)分位數(shù)quantile(x,probs=0.25)平均值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)50向量運算指令rev(x)#倒置sort(x)

#升序rev(sort(x))

#降序unique(x)

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

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

#放回隨機抽樣scale(x,scale=F,center=F)#標準化,默認是Tappend(x,values,after=length(x))#往向量內(nèi)插值table(x)#頻率分布表match(x,y)#返回x長度的向量,y等取,不等NAcor(x,y)相關(guān)系數(shù)51向量內(nèi)的元素引用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)建生成矩陣的函數(shù)

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

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)#矩陣的維數(shù)t(x)#轉(zhuǎn)置矩陣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()#相同行數(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")x[order(±x[,1]),]#矩陣排序55數(shù)據(jù)表的行與列低地33220251049樣方5低地20260241238樣方4山坡45390201146樣方3山坡30350261251樣方2山頂25600221540樣方1類型坡度海拔屬數(shù)科數(shù)物種數(shù)行名Rownames字符串列名

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

判斷存儲的類型class()

判斷數(shù)據(jù)的類is.numeric()

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

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

#是否為字符串is.null()#是否為空is.na()#是否為na59類的轉(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)換為因子60簡單繪圖函數(shù)plot(x)繪制散點圖等多種圖形,根據(jù)數(shù)據(jù)的類,調(diào)用相應的函數(shù)繪圖hist()頻率直方圖boxplot()箱線圖stripchart()點圖barplot()柱狀圖dotplot()點圖piechart()餅圖matplot()數(shù)學圖形61繪圖函數(shù)lines()添加線curve()添加曲線abline()添加給定斜率的線points()添加點segments()折線arrows()箭頭axis()坐標軸box()外框title()標題text()文字mtext()圖邊文字62繪圖參數(shù)參數(shù)用在函數(shù)內(nèi)部,在沒有設(shè)定值時使用默認值。font=

字體lty=

線類型lwd=

線寬度pch=

點的類型,xlab=

橫坐標ylab=

縱坐標xlim=

橫坐標范圍ylim=

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

六名患者的身高和體重現(xiàn)有6名患者的身高和體重,檢驗體重除以身高的平方是否等于22.5。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<-height^2ratio<-weight/sq.heightt.test(ratio,mu=22.5)65第二種方式從外部讀取數(shù)據(jù)數(shù)據(jù)量較大時用read.table函數(shù)從外部txt文件讀取第1步將Excel中的數(shù)據(jù)另存為.txt格式(制表符間隔)或.csv格式。第2步用read.table()或read.csv()函數(shù)將數(shù)據(jù)讀入R工作空間,并賦值給一個對象。66圖14在Excel中將數(shù)據(jù)存為txt文件67例:t檢驗(續(xù))一般從txt文檔讀取數(shù)據(jù)。每一行作為一個觀測值。每一行的變量用制表符,空格或逗號間隔開。read.table(”位置”,header=T)read.csv(”位置”,header=T)#從外部讀取數(shù)據(jù)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只小白鼠上,觀察其存活天數(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

69準備數(shù)據(jù)表圖15數(shù)據(jù)表的準備day和type各為一列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(day~type,data=bac))summary(ba.an)boxplot(day~type,data=bac,col="red")71圖16三種菌型對小白鼠影響的箱線圖72例3-線性回歸轉(zhuǎn)速rpm202224262830323436384042雜質(zhì)率%8.49.511.810.413.314.813.214.716.416.518.918.5對一批涂料進行研究,確定攪拌速度對雜質(zhì)含量的影響,數(shù)據(jù)如下,試進行回歸分析表3攪拌速度對涂料中雜質(zhì)的影響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編程基礎(chǔ)R可以靈活的編寫程序,用戶自己編寫的程序可以直接調(diào)用?;靖袷胶瘮?shù)名<-function(數(shù)據(jù),參數(shù)1=默認值,…){

表達式(循環(huán)/判別);return(返回值);}函數(shù)內(nèi)部也可用#添加注釋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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論