[贊]R語言教程筆記-入門級2--知其然_第1頁
[贊]R語言教程筆記-入門級2--知其然_第2頁
[贊]R語言教程筆記-入門級2--知其然_第3頁
[贊]R語言教程筆記-入門級2--知其然_第4頁
[贊]R語言教程筆記-入門級2--知其然_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、R編程筆記2一、 簡介1. 突出特點:【多領(lǐng)域的統(tǒng)計資源】目前在R網(wǎng)站上約有2400個程序包,涵蓋了基礎(chǔ)統(tǒng)計學、社會學、經(jīng)濟學、生態(tài)學、空間分析、系統(tǒng)發(fā)育分析、生物信息學等諸多方面?!久赓M】2. 缺點:【占用內(nèi)存】所有的數(shù)據(jù)處理在內(nèi)存中進行,不適于處理超大規(guī)模的數(shù)據(jù)。【運行速度稍慢】即時編譯,約相當于C語言的1/20。3. CRAN :全稱The Comprehensive R Archive Network。由世界幾十個鏡像網(wǎng)站組成網(wǎng)絡,提供下載安裝程序和相應軟件包。各鏡像更新頻率一般為1-2天。推薦鏡像: 中國的鏡像:數(shù)學所:/mirrors/CRAN/

2、即時更新的CRAN源:/界面下如下(版本 R2.11.1)4. R程序包 (R packages)4.1 什么是R程序包R程序包是多個函數(shù)的集合,具有詳細的說明和示例。每個程序包包含R函數(shù)、數(shù)據(jù)、幫助文件、描述文件等,window下是zip形式,安裝時不要解壓縮。R程序包是R功能擴展,特定的分析功能,需要用相應的程序包實現(xiàn)。例如:系統(tǒng)發(fā)育分析,常用到ape程序包,群落生態(tài)學vegan包等。4.2 常用R程序包ade4 利用歐幾里得方法進行生態(tài)學數(shù)據(jù)分析adephylo系統(tǒng)進化數(shù)據(jù)挖掘與比較方法ape 系統(tǒng)發(fā)育與進化分析apTreeshape進化樹

3、分析boot Bootstrap檢驗cluster聚類分析ecodist生態(tài)學數(shù)據(jù)相異性分析FD 功能多樣性分析geiger物種形成速率與進化分析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ā)育分析picante群落系統(tǒng)發(fā)育多樣性分析raster柵格數(shù)據(jù)分析與處理seqinrDNA序列分析sp 空間數(shù)據(jù)處理spatstat空間點格局分析,模型擬合與檢驗splancs空間與

4、時空點格局分析stats R統(tǒng)計學包SDMTools物種分布模型工具vegan 植物與植物群落的排序,生物多樣性計算CRAN Task Views 中有對程序包的分類介紹 4.3 R程序包安裝1 用函數(shù) install.packages(),如果已經(jīng)連接到互聯(lián)網(wǎng),在括號中輸入要安裝的程序包名稱,選擇鏡像后,程序?qū)⒆詣酉螺d并安裝程序包。例如: 要安裝picante包,在控制臺中輸入 install.packages("picante")2 安裝本地zip包路徑:Packages>install packages from local files選擇本地磁盤上存儲zip包

5、的文件夾。4.4 程序包導入及使用程序包的中函數(shù),都要先導入,再使用導入:library(vegan) 包中函數(shù)使用方法同R自帶的函數(shù)使用方法一樣。4.5 查看幫助文件1>查詢程序包內(nèi)容:1 菜單 幫助>Html幫助2 查看pdf幫助文檔2>查詢函數(shù)使用介紹:1 ?t.test 2 RGui>Help>Html help3 apropos("t.test") 4 help("t.test")5 help.search("t.test") 6 查看R包pdf手冊3>解讀幫助文件:lmstats #函數(shù)

6、名及所在包 Fitting Linear Models #標題Description #函數(shù)描述Usage #默認選項Arguments #參數(shù)Details #詳情Author(s) #作者References #參考文獻Examples #舉例例:幫助>R函數(shù)幫助(文本)>彈出>點“確定”后彈出下面網(wǎng)頁或錄入 二、 函數(shù)與對象1. R函數(shù)1.1 函數(shù)形式 R是一種解釋性語言,輸入后可直接給出結(jié)果。功能靠函數(shù)實現(xiàn)。函數(shù)名(輸入數(shù)據(jù),參數(shù)= )例:平均值 mean(x, trim = 0, na.rm = FALSE, .) 線性模型 lm(yx, data=test)1.2

7、 函數(shù)種類低級 VS 高級(泛函) Help>Html help>packageslog() log10() exp() sin() cos() tan() asin() acos()binom.test()fisher.test()chisq.test()glm(y x1+x2+x3, binomial)friedman.test()常用統(tǒng)計函數(shù)如下:返回值返回序號舉例:箱線圖繪制函數(shù)的調(diào)用boxplot(daytype, data=bac, col="red", xlab="Virus", ylab="days")da

8、ytype, 以type為橫軸,day為縱軸繪制箱線圖。(type,day都是向量對象(后面會介紹)data=bac 數(shù)據(jù)來源bac (bac 為數(shù)據(jù)框?qū)ο螅ヽol=“red” 箱線圖為紅色xlab=“Virus” 橫軸名稱為Virusylab=“days” 縱軸名稱為days2. 對象R處理的所有數(shù)據(jù)、變量、函數(shù)和結(jié)果都以對象的形式保存2.1 命名規(guī)則1. 區(qū)分大小寫,注意China和china的不同。2. 不能用數(shù)字作為變量,對象也不能用數(shù)字開頭,但是數(shù)字可以放在中間或結(jié)尾,如2result與result2,后者是合法的。3. 建議不要用過短的名稱??梢杂谩?”作為間隔,例如 anova.

9、result1。4. 不要使用保留名:NA, NaN, pi, LETTERS, letters, month.abb, 2.2 元素類型(存儲類型)對象是由各元素組成的。每個元素,都有自己的數(shù)據(jù)類型數(shù)值型 Numeric 如 100, 0, -4.335字符型 Character 如 “China”邏輯型 Logical 如TRUE, FALSE因子型 Factor 表示不同類別復數(shù)型 Complex 如:2 + 3i2.3 對象類型(結(jié)構(gòu)化數(shù)據(jù))向量(vector) 一系列元素的組合。如 c(1,2,3); c("a","a",&

10、quot;b","b","c")因子(factor) 因子是一個分類變量c("a","a","b","b","c")矩陣(matrix) 二維的數(shù)據(jù)表,是數(shù)組的一個特例x <- 1:12 ; dim(x) <- c(3,4) ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12數(shù)組(array) 數(shù)組是k維的數(shù)據(jù)表(k in 1:n, n 為正整數(shù))。向量(n = 1) 矩陣(n = 2) 高維數(shù)組

11、(n >= 3) 數(shù)據(jù)框(dataframe) 是由一個或幾個向量和(或)因子構(gòu)成,它們必須是等長的,但可以是不同的數(shù)據(jù)類型。列表(list) 列表可以包含任何類型的對象。 可以包含向量、矩陣、高維數(shù)組,也可以包含列表2.4 運算符數(shù)學運算 運算后給出數(shù)值結(jié)果+, -, *, /, (冪)比較運算 運算后給出判別結(jié)果(TRUE FALSE)>, <, <=, >=, =, !=邏輯運算 與、或、非!, &, &&, |, |2.5 數(shù)據(jù)表每個數(shù)據(jù)表可以看作一個數(shù)據(jù)框(dataframe),由很多不同類型的向量組成,如字符型,因子型,數(shù)值型,

12、每一列(column)作為一個向量(vector),每一行(row)作為一個記錄(entry)。如何生成數(shù)據(jù)框?(1) 從外部數(shù)據(jù)讀取test.data <- read.csv("D:/R/test2.csv",header=T) header=T 表示用第一行為列標題read.table(file=file.choose(),header=T) 可以彈出對話框,選擇文件。數(shù)據(jù)量較大時用read.table函數(shù)從外部txt文件讀?。篸ata1<-read.table("d:/t.test.data.txt",header=T)(2) 各類型因

13、子組合成數(shù)據(jù)框見后2.6.3,數(shù)據(jù)框創(chuàng)建舉例: 外部讀入數(shù)據(jù)后進行方差分析bac<-read.table("d:/anova.data.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")2.6 對象的創(chuàng)建2.6.1 向量(1)生成向量的函數(shù) c() , rep() ,

14、seq() , “:”c(2,5,6,9) #自定義的向量rep(2,times=4) # 重復型向量seq(from=3, to=21, by=3 ) #等距數(shù)值型向量 1 3 6 9 12 15 18 211:15 #連續(xù)型數(shù)值向量 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15通過與向量的組合,產(chǎn)生更為復雜的向量。rep(1:2,c(10,15) #數(shù)值1重復10次,數(shù)值2重復15次rep(1:5,1:5) #數(shù)值1至5按順序分別重復1:5次注意:除了生成數(shù)值型向量,還可以生成字符型(abc),邏輯型(T,F)和復數(shù)型(a+bi)向量。(2)隨機數(shù)向量 run

15、if(10, min = 0, max= 1) #均勻分布隨機數(shù)rnorm(10, mean = 0, sd = 1)# 正太分布隨機數(shù)幾個隨機數(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, ) 隨機均勻分布 runif(n, min=0, max=1)2.6.2 矩陣dim() 和matrix() 為生成矩陣的函數(shù),其中dim() 定義矩陣的行列數(shù),舉例:(1)x <- 1:12dim(x) <- c(3,4) ,1 ,2

16、,3 ,4 1, 1 4 7 10 2, 2 5 8 11 3, 3 6 9 12(2)matrix.x <- matrix(1:12,nrow=3,byrow=T)t(x) #轉(zhuǎn)置 s() s #為行或列添加名稱2.6.3 數(shù)據(jù)框cbind() # 按列組合成數(shù)據(jù)框rbind() # 按行組合成數(shù)據(jù)框data.frame() #生成數(shù)據(jù)框head() #默認訪問數(shù)據(jù)的前6行例子:2.6.4 列表列表可以是不同類型甚至不同長度的向量(數(shù)值型,邏輯型,字符型等等)、數(shù)據(jù)框甚至列表的組合。list()例如:list(character,numeric,logi

17、cal,matrix.x)2.7 類的判斷和轉(zhuǎn)換2.7.1 判斷 (is)對象類型判斷mode() 判斷存儲的類型class() 判斷數(shù)據(jù)的類根據(jù)數(shù)據(jù)的類,采用相應的處理方法。以下函數(shù),主要用在函數(shù)處理異常時使用,目的是增強程序的穩(wěn)健性。is.numeric() #返回值為TRUE或FALSEis.logical() #是否為邏輯值is.charactor() #是否為字符串is.null() #是否為空is.na() #是否為na2.7.2 轉(zhuǎn)換(as)as.numeric() #轉(zhuǎn)換為數(shù)值型as.logical() #轉(zhuǎn)換為邏輯型as.charactor() #轉(zhuǎn)換為字符串a(chǎn)s.matri

18、x() #轉(zhuǎn)換為矩陣as.data.frame() #轉(zhuǎn)換為數(shù)據(jù)框as.factor() #轉(zhuǎn)換為因子2.8 元素引用2.8.1 向量內(nèi)其中 x2 - c(1,3,5)表示去除向量中第1,3,5個元素以一個向量作為元素引用的參數(shù)2.8.2 矩陣/數(shù)據(jù)框內(nèi)矩陣和數(shù)據(jù)庫都是二維的,元素引用方式類似分別對矩陣提取第一列元素、第二列元素、第2行第1列的元素 注意 數(shù)據(jù)框的不同列有列名稱的 對整列的引用使用“$”可表示為intake <- data.frame(intake.pre, intake.post) #組合生成一個數(shù)據(jù)框intake$intake.pre #引用名為intake.pre的

19、列2.8.3 列表內(nèi)列表內(nèi)元素的引用可以用”如 list1c(1,2,3)2.9 數(shù)據(jù)框內(nèi)部元素訪問attach(datafram) #綁定當前區(qū)域為數(shù)據(jù)框datafram內(nèi),則無需使用$符號,即可直接引用框內(nèi)的列名x=colum1 y=colum2z=colum3 .n=column. #在需要大量訪問調(diào)用的情況下可用明顯提高效率detach(datafram) #解除綁定 在函數(shù)內(nèi)部,對數(shù)據(jù)進行相應調(diào)整 with() #with函數(shù)內(nèi)部形成一個空間,在這個空間中,函數(shù)可以對列訪問。within()transform() # 數(shù)據(jù)的轉(zhuǎn)換,如取logsubset() #取數(shù)據(jù)的子集apply(

20、) #對數(shù)據(jù)表或矩陣應用某個函數(shù),可減少循環(huán)2.10 條件篩選原理:條件篩選是先對變量否滿足條件進行判斷,滿足為TRUE,不滿足為FALSE。之后再用邏輯值對向量內(nèi)的元素進行篩選。2.11 其他(1)工作空間 imageR的所有對象都在計算機內(nèi)存的工作空間中。ls() 列出工作空間中的對象rm() 刪除工作空間中的對象rm(list=ls() 刪除空間中所有對象save.image(“weizhi”) 保存工作鏡像load(“weizhi”) 提取sink() 將運行結(jié)果保存到指定文件中g(shù)etwd() 顯示當前工作文件夾/工作目錄setwd() 設定工作文件夾/工作目錄可將結(jié)果保存在image

21、中,形式為.Rdata文件,里面保存了R當前工作空間中的各種對象,包括函數(shù)。舉例 設置工作目錄、保存工作空間、查看工作目錄/(2)歷史數(shù)據(jù) history輸入的命令,在R中作為歷史history保存,可輸入函數(shù)history() # 查看輸入歷史history(Inf) # 查看打開R之后所有的輸入可用向上或向下的箭頭切換輸入的行。三、 腳本編輯 scripting3.1定義:腳本語言(scripting language)又稱動態(tài)語言,是依靠解釋器完成相應的功能的一類計算機語言,通常以ASCII碼的文本格式保存源程序3.2 特點腳本語言語法和結(jié)構(gòu)通常比較簡單,不需要編譯,通過解釋器對腳本進行

22、解釋,從而給出結(jié)果,能用簡單的代碼完成復雜的功能,但是速度較慢。3.3比較很多計算機語言都有IDE (integrated development environment),即集成開發(fā)環(huán)境。但是R通常無需集成開發(fā)環(huán)境,腳本在一般的文本編輯器里即可編輯。在代碼較多的情況下,常需要對行數(shù)、函數(shù)、括號、函數(shù)選項等進行高亮顯示,設置成不同的顏色,以減少錯誤的發(fā)生。3.4 編輯器種類R自帶的腳本編輯器 Editplus ( ) TinnR (/Tinn-R/ ) Ultraedit ( ) Emacs (/software/emacs/ ) Notepad+ 與NpptoR組合(http:/notepad- ) 記事本或?qū)懽职?等等3.5運行腳本1 通過source()函數(shù)運行source("d:/regression.r") =source(“文件位置”)2 通過R腳本編輯器運行路徑:RGui>File>Open Script #Ctrl+R運行3 直接粘貼到R控制臺ctrl+c, ctrl+v第三種最為簡單直接務必要加后綴名啊!四、 繪圖4.1功

溫馨提示

  • 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

提交評論