R語(yǔ)言基礎(chǔ)-(1)_第1頁(yè)
R語(yǔ)言基礎(chǔ)-(1)_第2頁(yè)
R語(yǔ)言基礎(chǔ)-(1)_第3頁(yè)
R語(yǔ)言基礎(chǔ)-(1)_第4頁(yè)
R語(yǔ)言基礎(chǔ)-(1)_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、特別致謝華南農(nóng)業(yè)大學(xué)林學(xué)院特別致謝華南農(nóng)業(yè)大學(xué)林學(xué)院林元震博士!林元震博士!3什么是R?R是一種統(tǒng)計(jì)繪圖語(yǔ)言,也指實(shí)現(xiàn)該語(yǔ)言的軟件。The R Project for Statistical Computing 6一一 R簡(jiǎn)介簡(jiǎn)介二二 R數(shù)據(jù)集創(chuàng)建數(shù)據(jù)集創(chuàng)建三三 R數(shù)據(jù)操作數(shù)據(jù)操作71.1 R1.1 R簡(jiǎn)簡(jiǎn) 史史 R語(yǔ)言是從語(yǔ)言是從S統(tǒng)計(jì)繪圖語(yǔ)言演變而來(lái),可看作統(tǒng)計(jì)繪圖語(yǔ)言演變而來(lái),可看作S的的“方言方言”。 S語(yǔ)言上世紀(jì)語(yǔ)言上世紀(jì)70年代誕生于貝爾實(shí)驗(yàn)室,由年代誕生于貝爾實(shí)驗(yàn)室,由Rick Becker, John Chambers, Allan Wilks開(kāi)發(fā)。開(kāi)發(fā)。 基于基于S語(yǔ)言開(kāi)發(fā)的

2、商業(yè)軟件語(yǔ)言開(kāi)發(fā)的商業(yè)軟件Splus,可以方便的編寫(xiě)函數(shù)、建立模型,可以方便的編寫(xiě)函數(shù)、建立模型,具有良好的擴(kuò)展性,在國(guó)外學(xué)術(shù)界應(yīng)用很廣。具有良好的擴(kuò)展性,在國(guó)外學(xué)術(shù)界應(yīng)用很廣。 1995年由新西蘭年由新西蘭Auckland大學(xué)統(tǒng)計(jì)系的大學(xué)統(tǒng)計(jì)系的Robert Gentleman和和Ross Ihaka,基于,基于S語(yǔ)言的源代碼,編寫(xiě)了一能執(zhí)行語(yǔ)言的源代碼,編寫(xiě)了一能執(zhí)行S語(yǔ)言的軟件,并將該軟語(yǔ)言的軟件,并將該軟件的源代碼全部公開(kāi),這就是件的源代碼全部公開(kāi),這就是R軟件,其命令統(tǒng)稱(chēng)為軟件,其命令統(tǒng)稱(chēng)為R語(yǔ)言。語(yǔ)言。R 的起源的起源Robert GentlemanRoss Ihaka自自1997

3、年以后,有一個(gè)核心團(tuán)隊(duì),這一團(tuán)隊(duì)能對(duì)年以后,有一個(gè)核心團(tuán)隊(duì),這一團(tuán)隊(duì)能對(duì) R 的源代碼進(jìn)行修改。的源代碼進(jìn)行修改。9多領(lǐng)域的統(tǒng)計(jì)資源多領(lǐng)域的統(tǒng)計(jì)資源 目前在目前在R網(wǎng)站上約有網(wǎng)站上約有5400個(gè)程序包,涵蓋了基礎(chǔ)統(tǒng)計(jì)學(xué)、社會(huì)學(xué)、個(gè)程序包,涵蓋了基礎(chǔ)統(tǒng)計(jì)學(xué)、社會(huì)學(xué)、經(jīng)濟(jì)學(xué)、生態(tài)學(xué)、空間分析、系統(tǒng)發(fā)育分析、生物信息學(xué)等諸多方面。經(jīng)濟(jì)學(xué)、生態(tài)學(xué)、空間分析、系統(tǒng)發(fā)育分析、生物信息學(xué)等諸多方面??缙脚_(tái)跨平臺(tái)免費(fèi)開(kāi)源免費(fèi)開(kāi)源統(tǒng)計(jì)分析能力突出統(tǒng)計(jì)分析能力突出作圖功能強(qiáng)大作圖功能強(qiáng)大拓展與開(kāi)發(fā)能力強(qiáng)拓展與開(kāi)發(fā)能力強(qiáng)如何學(xué)習(xí)如何學(xué)習(xí)R?R? 熟悉語(yǔ)法熟悉語(yǔ)法 訓(xùn)練思維訓(xùn)練思維 善于求助善于求助 熟能生巧熟能生巧

4、 保持興趣保持興趣11R軟件首頁(yè) / 12WindowsWindows下載和安裝下載和安裝R RCRAN: BinariesWindowsbase 下載完成后,雙擊下載完成后,雙擊R-3.0.2-win.exe 開(kāi)始安裝。開(kāi)始安裝。一直點(diǎn)擊下一步,各選項(xiàng)默認(rèn),語(yǔ)言建議選英文。一直點(diǎn)擊下一步,各選項(xiàng)默認(rèn),語(yǔ)言建議選英文。圖圖3 R2.11.0下載頁(yè)面下載頁(yè)面13圖 4 R登陸界面(Windows版)路徑: 開(kāi)始所有程序R 2.11.0菜單欄菜單欄快捷按鈕快捷按鈕控制臺(tái)控制臺(tái)光標(biāo)光標(biāo):等待輸入等待輸入14R R程序包(程序包(R PackagesR P

5、ackages)程序包是什么?程序包是什么? R程序包是多個(gè)函數(shù)的集合,具有詳細(xì)的說(shuō)明和示例。程序包是多個(gè)函數(shù)的集合,具有詳細(xì)的說(shuō)明和示例。 Window下的下的R程序包是經(jīng)過(guò)編譯的程序包是經(jīng)過(guò)編譯的zip包。包。每個(gè)程序包包含每個(gè)程序包包含R函數(shù)、數(shù)據(jù)、幫助文件、描述文件等。函數(shù)、數(shù)據(jù)、幫助文件、描述文件等。為什么要安裝程序包?為什么要安裝程序包? R程序包是程序包是R功能擴(kuò)展,特定的分析功能,需要用相應(yīng)的程序包實(shí)現(xiàn)。功能擴(kuò)展,特定的分析功能,需要用相應(yīng)的程序包實(shí)現(xiàn)。 例如:系統(tǒng)發(fā)育分析,常用到例如:系統(tǒng)發(fā)育分析,常用到ape程序包,群落生態(tài)學(xué)程序包,群落生態(tài)學(xué)vegan包等。包等。15常用

6、常用R程序包程序包(I)ade4利用歐幾里得方法進(jìn)行生態(tài)學(xué)數(shù)據(jù)分析利用歐幾里得方法進(jìn)行生態(tài)學(xué)數(shù)據(jù)分析adephylo系統(tǒng)進(jìn)化數(shù)據(jù)挖掘與比較方法系統(tǒng)進(jìn)化數(shù)據(jù)挖掘與比較方法ape系統(tǒng)發(fā)育與進(jìn)化分析系統(tǒng)發(fā)育與進(jìn)化分析apTreeshape進(jìn)化樹(shù)分析進(jìn)化樹(shù)分析bootBootstrap檢驗(yàn)檢驗(yàn)cluster聚類(lèi)分析聚類(lèi)分析ecodist生態(tài)學(xué)數(shù)據(jù)相異性分析生態(tài)學(xué)數(shù)據(jù)相異性分析FD功能多樣性分析功能多樣性分析geiger物種形成速率與進(jìn)化分析物種形成速率與進(jìn)化分析16常用常用R程序包程序包(II)Graphics繪圖繪圖lattice柵格圖柵格圖maptools空間對(duì)象的讀取和處理空間對(duì)象的讀取和處理m

7、efa生態(tài)學(xué)和生物地理學(xué)多元數(shù)據(jù)處理生態(tài)學(xué)和生物地理學(xué)多元數(shù)據(jù)處理mgcv廣義加性模型相關(guān)廣義加性模型相關(guān)mvpart多變量分解多變量分解nlme線性及非線性混合效應(yīng)模型線性及非線性混合效應(yīng)模型ouch系統(tǒng)發(fā)育比較系統(tǒng)發(fā)育比較pgirmess生態(tài)學(xué)數(shù)據(jù)分析生態(tài)學(xué)數(shù)據(jù)分析phangorn系統(tǒng)發(fā)育分析系統(tǒng)發(fā)育分析17常用常用R程序包程序包(III)picante群落系統(tǒng)發(fā)育多樣性分析群落系統(tǒng)發(fā)育多樣性分析raster柵格數(shù)據(jù)分析與處理柵格數(shù)據(jù)分析與處理seqinrDNA序列分析序列分析sp空間數(shù)據(jù)處理空間數(shù)據(jù)處理spatstat空間點(diǎn)格局分析,模型擬合與檢驗(yàn)空間點(diǎn)格局分析,模型擬合與檢驗(yàn)splan

8、cs空間與時(shí)空點(diǎn)格局分析空間與時(shí)空點(diǎn)格局分析statsR統(tǒng)計(jì)學(xué)包統(tǒng)計(jì)學(xué)包SDMTools物種分布模型工具物種分布模型工具vegan植物與植物群落的排序,生物多樣性計(jì)算植物與植物群落的排序,生物多樣性計(jì)算1819圖 10 vegan包頁(yè)面三種平臺(tái)上的三種平臺(tái)上的程序包程序包20R R程序包程序包在在CRAN 提供了每個(gè)包的源代碼和編譯好的程序包提供了每個(gè)包的源代碼和編譯好的程序包以以vegan包為例,包為例,CRAN提供了:提供了:Package source: vegan_1.17-2.tar.gz MacOS X binary: vegan_1.17-2.tgz Windows binary

9、: vegan_1.17-2.zip Reference manual: vegan.pdf Window下程序包為下程序包為zip文件,安裝時(shí)不要解壓縮。文件,安裝時(shí)不要解壓縮。211 菜單安裝菜單安裝在聯(lián)網(wǎng)的條件下,按菜單欄在聯(lián)網(wǎng)的條件下,按菜單欄【程序包程序包】下拉選擇下拉選擇【安裝程序包安裝程序包】 ,選,選擇所需的程序包進(jìn)行實(shí)時(shí)安裝;擇所需的程序包進(jìn)行實(shí)時(shí)安裝;2 聯(lián)網(wǎng)命令安裝聯(lián)網(wǎng)命令安裝例如:例如: 要安裝要安裝vegan包包,在控制臺(tái)中輸入在控制臺(tái)中輸入 install.packages(vegan)3 本地安裝本地安裝路徑:路徑:Packagesinstall packages

10、 from local files選擇本地磁盤(pán)上存儲(chǔ)選擇本地磁盤(pán)上存儲(chǔ)zip包的文件夾。包的文件夾。4 腳本安裝腳本安裝在聯(lián)網(wǎng)的條件下,請(qǐng)運(yùn)行在聯(lián)網(wǎng)的條件下,請(qǐng)運(yùn)行Rpackages.install.R程序,即可完成本培程序,即可完成本培訓(xùn)所需的程序包安裝。訓(xùn)所需的程序包安裝。22程序包使用與更新程序包使用與更新程序包的中函數(shù),都要先導(dǎo)入,再使用,因此導(dǎo)入程序包是第一步。程序包的中函數(shù),都要先導(dǎo)入,再使用,因此導(dǎo)入程序包是第一步。在控制臺(tái)中輸入如下命令:在控制臺(tái)中輸入如下命令:library(lattice)library(ggplot2)所有程序包的更新所有程序包的更新update.pack

11、ages()注意:注意:R 命令對(duì)大小寫(xiě)敏感,因此使用命令方式安裝和載入程序包時(shí)命令對(duì)大小寫(xiě)敏感,因此使用命令方式安裝和載入程序包時(shí)應(yīng)特別注意。應(yīng)特別注意。23查看程序包幫助文件查看程序包幫助文件vegan 程序包內(nèi)部都有哪些函數(shù)?分別有什么功能?程序包內(nèi)部都有哪些函數(shù)?分別有什么功能?查詢(xún)程序包內(nèi)容最常用的方法:查詢(xún)程序包內(nèi)容最常用的方法:1 菜單菜單 幫助幫助Html幫助幫助2 查看查看pdf幫助文檔幫助文檔24查看函數(shù)的幫助文件查看函數(shù)的幫助文件函數(shù)的默認(rèn)值是什么?函數(shù)的默認(rèn)值是什么? 怎么使用?怎么使用? 使用時(shí)需要注意什么問(wèn)使用時(shí)需要注意什么問(wèn)題?題? 需要查詢(xún)函數(shù)的幫助。需要查詢(xún)函

12、數(shù)的幫助。1 ?t.test 2 RGuiHelpHtml help3 apropos(t.test)4 help(t.test)5 help.search(t.test)6 查看查看R包包pdf手冊(cè)手冊(cè)2526幫助文件的內(nèi)容幫助文件的內(nèi)容 t.teststats #函數(shù)名及所在包函數(shù)名及所在包 Fitting Linear Models #標(biāo)題標(biāo)題 Description #函數(shù)描述函數(shù)描述 Usage #默認(rèn)選項(xiàng)默認(rèn)選項(xiàng) Arguments #參數(shù)參數(shù) Details #詳情詳情 Author(s) #作者作者 References #參考文獻(xiàn)參考文獻(xiàn) Examples #舉例舉例271.

13、2 R圖形界面:圖形界面:RstudioRstudio是是R的圖形界面之一,可以讓的圖形界面之一,可以讓 R 語(yǔ)言代碼更直觀、明了地運(yùn)語(yǔ)言代碼更直觀、明了地運(yùn)行。行。 RStudio 同樣同樣 是是 免費(fèi)免費(fèi) 和和 開(kāi)源開(kāi)源 的的 ,可以在網(wǎng)站上自由下載與使,可以在網(wǎng)站上自由下載與使用(用(http:/ 開(kāi)始安裝。開(kāi)始安裝。RStudio 有以下幾大優(yōu)點(diǎn):有以下幾大優(yōu)點(diǎn): 代碼字體高亮,代碼完整性智能識(shí)別、自動(dòng)縮進(jìn);代碼字體高亮,代碼完整性智能識(shí)別、自動(dòng)縮進(jìn); 可直接執(zhí)行可直接執(zhí)行 R 程序代碼;程序代碼; 可運(yùn)行多個(gè)可運(yùn)行多個(gè) R 程序;程序; 可直接瀏覽工作表和數(shù)據(jù);可直接瀏覽工作表和數(shù)據(jù)

14、; 可隨意縮放繪制的圖形,并且有多種輸出格式;可隨意縮放繪制的圖形,并且有多種輸出格式; 整合整合 R 幫助和幫助和 R 使用文檔;使用文檔; 可查看可查看 R 命令的運(yùn)行記錄。命令的運(yùn)行記錄。2930練習(xí)一練習(xí)一 安裝安裝R R并導(dǎo)入程序包并導(dǎo)入程序包1. 安裝安裝R和和Rstudio軟件、熟悉菜單軟件、熟悉菜單2. 本地安裝程序包本地安裝程序包: vegan3. 調(diào)用程序包,查看程序包的幫助調(diào)用程序包,查看程序包的幫助library(vegan)查找查找vegan包中包中cca函數(shù)的幫助函數(shù)的幫助輸入輸入 ?cca(試試(試試“?cca”)將其中的將其中的Example粘貼到控制臺(tái)中,查看

15、運(yùn)行的結(jié)果。粘貼到控制臺(tái)中,查看運(yùn)行的結(jié)果。二二 R數(shù)據(jù)集創(chuàng)建數(shù)據(jù)集創(chuàng)建 數(shù)據(jù)創(chuàng)建數(shù)據(jù)創(chuàng)建 向量,數(shù)組,矩陣,數(shù)據(jù)框,列表,因子向量,數(shù)組,矩陣,數(shù)據(jù)框,列表,因子 數(shù)據(jù)輸入數(shù)據(jù)輸入 scan(),csv文件,文件,excel文件,文件,sas數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ) write.table(), write.csv(), save.image()2.1.1向量向量vector 概念:用于存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的概念:用于存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。一維數(shù)組。 例子:例子: a - c(1, 2, 5, 3, 6, -2, 4) # 數(shù)值型向量數(shù)值型向量 b - c(o

16、ne, two, three) # 字符型向量字符型向量 c rep(2:5, 2) # 等價(jià)于等價(jià)于 rep(2:5, times = 2) 1 2 3 4 5 2 3 4 5 rep(2:5, rep(2, 4) 1 2 2 3 3 4 4 5 5 rep(1:3, times = 4, each = 2) 1 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 paste(c(“X”,“Y”), 1:10, sep = “-”) #不規(guī)則不規(guī)則1 X-1 Y-2 X-3 Y-4 X-5 Y-6 X-7 Y-8 X-9 Y-10 rep(fact

17、or(LETTERS1:3), 5) 1 A B C A B C A B C A B C A B C Levels: A B C 向量中元素的訪問(wèn)向量中元素的訪問(wèn)a a3 1 5 # 向量向量 a 中第一、三、五個(gè)數(shù)據(jù)中第一、三、五個(gè)數(shù)據(jù) ac(1, 3, 5) 1 1 5 6 # 向量向量 a 中第二到第六個(gè)數(shù)據(jù)中第二到第六個(gè)數(shù)據(jù) a2:6 1 2 5 3 6 -2 # 向量向量 a 中數(shù)值大于中數(shù)值大于 3 的所有數(shù)據(jù)的所有數(shù)據(jù) aa3 1 5 6 4 # 去掉第一個(gè)值去掉第一個(gè)值 a-1 1 2 5 3 6 -2 4 # 去掉前三個(gè)值去掉前三個(gè)值 a-1:-31 3 6 -2 4 2.1

18、.2 數(shù)組數(shù)組array概念:一個(gè)概念:一個(gè) K(K 1)維的數(shù)據(jù)表。維的數(shù)據(jù)表。由函數(shù)由函數(shù) array( )建立,其一般格式為:建立,其一般格式為: array(vector, dim, dimnames) 其中,其中,vector :數(shù)組的向量,數(shù)組的向量,dim :維數(shù)向量維數(shù)向量(數(shù)值型向數(shù)值型向量量),dimnames :各維的名稱(chēng)各維的名稱(chēng) (字符型向量字符型向量)。# 234 的數(shù)組的數(shù)組 dim1 - c(A1, A2) dim2 - c(B1, B2, B3) dim3 - c(C1, C2, C3, C4) z z z, , C1, , C1 B1 B2 B3 B1 B2

19、 B3A1 1 3 5A1 1 3 5A2 2 4 6A2 2 4 6, , C2, , C2 B1 B2 B3 B1 B2 B3A1 7 9 11A1 7 9 11A2 8 10 12A2 8 10 12, , C3, , C3 B1 B2 B3 B1 B2 B3A1 13 15 17A1 13 15 17A2 14 16 18A2 14 16 18, , C4, , C4 B1 B2 B3 B1 B2 B3A1 19 21 23A1 19 21 23A2 20 22 24A2 20 22 242.1.3 矩陣矩陣matrix概念概念:一個(gè)二維數(shù)組一個(gè)二維數(shù)組#創(chuàng)建一個(gè)創(chuàng)建一個(gè) 22 的矩陣

20、的矩陣 matrix(1:4, nrow = 2, ncol = 2) ,1 ,2 1, 1 3 2, 2 4 # 生成單位陣生成單位陣 diag(3) ,1 ,2 ,3 1, 1 0 0 2, 0 1 0 3, 0 0 1mat1-matrix(1:12,3,4, byrow=T)mat2 x x2,2 # 第二行、第第二行、第 2 列的元素列的元素 1 4 x2, # 第二行的所有元素第二行的所有元素 1 2 4 6 x ,2 # 第第 2 列的所有元素列的所有元素 1 3 4 x2, c(2, 3) # 第二行中第第二行中第 2、3 列的元素列的元素 1 4 6 2.1.4 數(shù)據(jù)框數(shù)據(jù)框

21、data frame使用函數(shù)使用函數(shù) data.frame( )創(chuàng)建:創(chuàng)建: mydata patientID age diabetes status patientdata patientdata1:2 # 第第 1、2 列的所有元素列的所有元素 patientdata$age # “$”符合用于選取一個(gè)指定的變量。符合用于選取一個(gè)指定的變量。 patientdata patientdata patientID age diabetes status patientID age diabetes status1 1 25 Type1 Poor1 1 25 Type1 Poor2 2 34 T

22、ype2 Improved2 2 34 Type2 Improved3 3 28 Type1 Excellent3 3 28 Type1 Excellent4 4 52 Type1 Poor4 4 52 Type1 Poor patientdata1:2 # patientdata1:2 # 第第 1 1、2 2 列的所有元素列的所有元素 patientID agepatientID age1 1 251 1 252 2 342 2 343 3 283 3 284 4 524 4 52 patientdata$age patientdata$age # “$”# “$”符合用于選取一個(gè)指定的變

23、量符合用于選取一個(gè)指定的變量1 25 34 28 521 25 34 28 522.1.5 列表列表list R 數(shù)據(jù)類(lèi)型中最為復(fù)雜的一種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)類(lèi)型中最為復(fù)雜的一種數(shù)據(jù)結(jié)構(gòu)。列表就是包含任何類(lèi)型的對(duì)象,可以是若干向量、矩陣、數(shù)據(jù)框,甚列表就是包含任何類(lèi)型的對(duì)象,可以是若干向量、矩陣、數(shù)據(jù)框,甚至其他列表的組合。至其他列表的組合。通過(guò)函數(shù)通過(guò)函數(shù) list( )來(lái)創(chuàng)建:來(lái)創(chuàng)建: mylist g h j k mylist mylist mylist$title$title1 My First List1 My First List$ages$ages1 25 26 18 391 25 2

24、6 18 3933 ,1 ,2 ,1 ,21, 1 61, 1 62, 2 72, 2 73, 3 83, 3 84, 4 94, 4 95, 5 105, 5 10441 one two three1 one two three2.1.6 因子因子factor概念:是一種向量對(duì)象,它給自己的組件指定了一個(gè)離散的分類(lèi)概念:是一種向量對(duì)象,它給自己的組件指定了一個(gè)離散的分類(lèi)(分組分組),它的組件由其他等長(zhǎng)的向量組成。它的組件由其他等長(zhǎng)的向量組成。用函數(shù)用函數(shù) factor( )創(chuàng)建一個(gè)因子,創(chuàng)建一個(gè)因子,levels 按序按序(字母序或數(shù)值序字母序或數(shù)值序)排列。排列。#為為 province

25、創(chuàng)建因子創(chuàng)建因子 province pf pf 1 四川四川 湖南湖南 江蘇江蘇 四川四川 四川四川 四川四川 湖南湖南 江蘇江蘇 湖南湖南 江蘇江蘇 Levels: 湖南湖南 江蘇江蘇 四川四川 2.2 數(shù)據(jù)的輸入數(shù)據(jù)的輸入1 鍵盤(pán)輸入鍵盤(pán)輸入mydata - data.frame(age = numeric(0), gender = character(0), weight = numeric(0) ) mydata - edit(mydata) # 輸入或修改輸入或修改 mydata 中的數(shù)據(jù)中的數(shù)據(jù)2 使用使用 scan()函數(shù)函數(shù)mydata - scan( file = ex.da

26、ta, what = list(, 0, 0 ) #將壓縮型數(shù)據(jù)讀入一個(gè)向量或列表將壓縮型數(shù)據(jù)讀入一個(gè)向量或列表3 導(dǎo)入導(dǎo)入 csv 文件文件mydata2 - read.table( file = D:/dbh.csv, header = T, sep = , ) mydata3 - read.csv( file = D:/dbh.csv, header = T) 4 網(wǎng)絡(luò)中讀取表格或網(wǎng)絡(luò)中讀取表格或csv文件文件tbl-read.csv(http:/ 導(dǎo)入導(dǎo)入 Excel 數(shù)據(jù)數(shù)據(jù)library(RODBC)channel - odbcConnectExcel( d:/test.xls )

27、mydata - sqlFetch( channel, Sheet1 )channel2 - odbcConnectExcel2007( d:/test.xlsx )mydata2 - sqlFetch( channel, Sheet1 )6 導(dǎo)入導(dǎo)入 SAS 數(shù)據(jù)數(shù)據(jù)library(foreign)mydata - read.sas( d:/test.ssd )library(Hmisc)data - sas.get( D:/test.ssd )7 導(dǎo)入導(dǎo)入 SPSS 數(shù)據(jù)數(shù)據(jù)library(foreign)mydata df write.table( df , file = D:/Rdat

28、a/fg.txt, s = F, quote = F ) # s = F :不寫(xiě)入行名,不寫(xiě)入行名,quote = F :變量名不用雙引號(hào)。變量名不用雙引號(hào)。(2) 保存為保存為 csv 文件文件 write.csv( df , file = D:/Rdata/fg.csv )(3) 保存為保存為 R 格式文件格式文件 save( df , file = D:/Rdata/fg.Rdata )三三 R數(shù)據(jù)操作數(shù)據(jù)操作3.1 變量創(chuàng)建與刪除變量創(chuàng)建與刪除mydata - data.frame( x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2,

29、 8) )# 方法一方法一mydata$sum - mydata$x1 + mydata$x2mydata$mean - (mydata$x1 + mydata$x2)/2# 方法二方法二mydata - transform( mydata, sum = x1 + x2, mean = (x1 + x2)/2 )# 變量刪除變量刪除mydata$ mean - NULL 3.2 變量的重命名變量的重命名df - mydata第一種方法:調(diào)用編輯器重命名第一種方法:調(diào)用編輯器重命名fix(df)第二種方法:使用函數(shù)第二種方法:使用函數(shù) names( )重命名重命名names(df)names(d

30、f)1:3 - c(“A”, ”B”, ”C”)3.3 缺失值的處理缺失值的處理 缺失值:缺失值:NA (Not Available,不可用,不可用) 不可能出現(xiàn)的值:不可能出現(xiàn)的值:NaN(Not a Number,非數(shù)值,非數(shù)值) 函數(shù)函數(shù) is.na()可檢測(cè)缺失值是否存在。可檢測(cè)缺失值是否存在。例子例子x - c(1:3, 5,7, NA, 9)sum(x) # 結(jié)果為結(jié)果為 NAsum( x, na.rm = T ) # 結(jié)果為結(jié)果為 27缺失值圖形化缺失值圖形化library(VIM)matrixplot(sleep)matrixplot ( )函數(shù)對(duì)數(shù)值型數(shù)據(jù)轉(zhuǎn)化到0, 1區(qū)間,

31、并用灰度來(lái)表示大?。簻\色表示值小,深色表示值大。缺失值默認(rèn)是紅色。 3.4 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換數(shù)據(jù)類(lèi)型的轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換例子數(shù)據(jù)轉(zhuǎn)換例子Rep - c( 1:6 ) # Rep 賦值賦值is.numeric(Rep) # 數(shù)值型判斷:真數(shù)值型判斷:真is.factor(Rep) # 因子判斷:假因子判斷:假Rep - as.factor(Rep) # 轉(zhuǎn)換為因子轉(zhuǎn)換為因子is.factor(Rep) # 因子判斷:真因子判斷:真3.5 數(shù)據(jù)的排序數(shù)據(jù)的排序 R 自帶的自帶的 order( )函數(shù)函數(shù) plyr 程序包的程序包的 arrange( )函數(shù)函數(shù)# 按按 Spacing、Fam、rank.d

32、j 先后依次排序先后依次排序# R 自帶的自帶的 order( )排序排序df - df order(df$Spacing, df$Fam, df$rank.dj), #plyr 程序包的程序包的 arrange( )函數(shù)排序函數(shù)排序library(plyr)df - arrange( df, Spacing, Fam, rank.dj ) 排序例子排序例子# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框df arrange(df, weight) arrange(df, weight) id weight size id weight size1 1 20 small1 1 20 small2 4 22 large

33、2 4 22 large3 3 24 medium3 3 24 medium4 2 27 large4 2 27 large arrange(df, size, weight) arrange(df, size, weight) id weight size id weight size1 4 22 large1 4 22 large2 2 27 large2 2 27 large3 3 24 medium3 3 24 medium4 1 20 small4 1 20 small arrange(df, size, -weight) arrange(df, size, -weight) id

34、weight size id weight size1 2 27 large1 2 27 large2 4 22 large2 4 22 large3 3 24 medium3 3 24 medium4 1 20 small4 1 20 small排序例子排序例子(非同一數(shù)據(jù)框)非同一數(shù)據(jù)框)有兩列數(shù)據(jù)在一個(gè)數(shù)據(jù)框有兩列數(shù)據(jù)在一個(gè)數(shù)據(jù)框dataA B1 小明小明2 小王小王3 小李小李4 小張小張現(xiàn)輸入一列數(shù)現(xiàn)輸入一列數(shù)gg2143要求顯示出要求顯示出A B2 小王小王1 小明小明4 小張小張3 小李小李答案:答案:dataorder(gg),3.6 數(shù)據(jù)集的合并數(shù)據(jù)集的合并 3.6.1 列合

35、并列合并# 共有變量共有變量: IDtotal - merge(dataA, dataB, by = “ID”) #解釋見(jiàn)代碼解釋見(jiàn)代碼# 共有變量共有變量: ID、Countrytotal - merge(dataA, dataB, by = c(”ID”, “Country”)#含有一樣的行數(shù),而且以相同順序排序。含有一樣的行數(shù),而且以相同順序排序。total - cbind(dataA, dataB)列合并例子列合并例子# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框 dataAdataA - read.table( header = T, text = storyid title1 lions2 tigers

36、3 bears)# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框 dataBdataB - read.table( header = T, text = subject storyid rating1 1 6.71 2 4.52 2 3.32 1 5.2)# 合并數(shù)據(jù)框合并數(shù)據(jù)框 dataA, dataBmerge(dataA, dataB, storyid)# 將將 dataA 的的 stroyid 重命名為重命名為 idcolnames(dataA)1 merge(dataA, dataB, storyid) storyid title subject rating1 1 lions 1 6.72 1 lions

37、 2 5.23 2 tigers 1 4.54 2 tigers 2 3.3 現(xiàn)在有某一地區(qū)的植物名錄表格現(xiàn)在有某一地區(qū)的植物名錄表格gao.csv, 表格內(nèi)只有兩列,表格內(nèi)只有兩列,分別為分別為“中文名中文名”和和“name” , 現(xiàn)在有中國(guó)現(xiàn)在有中國(guó)IUCN植物紅植物紅色名錄數(shù)據(jù)庫(kù)表格色名錄數(shù)據(jù)庫(kù)表格chinaIUCN.csv(表格內(nèi)只有兩列,分別(表格內(nèi)只有兩列,分別為瀕危等級(jí)為瀕危等級(jí)“l(fā)evel”和和“species” )。我們需要通過(guò)匹配。我們需要通過(guò)匹配兩個(gè)表格獲得該地區(qū)植物的兩個(gè)表格獲得該地區(qū)植物的IUCN評(píng)估等級(jí)表。評(píng)估等級(jí)表。aa - read.csv(chinaIUCN.

38、csv)sp - read.csv(gao.csv)bb - merge(aa, sp, by.x = species, by.y =name, all.y = T) head(bb)write.csv(bb,gaoIUCN.csv)列合并的案例分析列合并的案例分析3.6.2 行合并行合并 total - rbind(dataA, dataB) 注意:注意:dataA 與與 dataB 需含有一樣的變量,需含有一樣的變量,但排列的順序可以不同。但排列的順序可以不同。行合并例子行合并例子dfA - data.frame( Subject = c(1, 1, 2, 2), Response = c

39、(X, X, X, X) )dfB - data.frame( Subject = c(1, 2, 3), Response = c(Z, Y, Z) )df - rbind(dfA, dfB)dfA$Coder - AdfB$Coder - Bdf df df Subject Response Coder Subject Response Coder1 1 X A1 1 X A2 1 X A2 1 X A3 2 X A3 2 X A4 2 X A4 2 X A5 1 Z B5 1 Z B6 2 Y B6 2 Y B7 3 Z B7 3 Z B3.7 數(shù)據(jù)子集的提取數(shù)據(jù)子集的提取 3.7.1

40、根據(jù)位置選取子集根據(jù)位置選取子集使用方法如下:使用方法如下:dfm1, 表示返回第表示返回第 m1 行的數(shù)據(jù)行的數(shù)據(jù)dfc(m1,m2,. ,mj), 表示返回由第表示返回由第 m1,m2,.mj 行組成的數(shù)據(jù)框行組成的數(shù)據(jù)框df ,n1 表示返回第表示返回第 n1 列的數(shù)據(jù)列的數(shù)據(jù)df ,c(n1,n2,. ,nk) 表示返回由第表示返回由第 n1,n2,.nk 列組成的數(shù)據(jù)框列組成的數(shù)據(jù)框例子例子# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框df - df1, df1, subject sex size subject sex size1 1 M 71 1 M 7 dfc(1,3), dfc(1,3), sub

41、ject sex size subject sex size1 1 M 71 1 M 73 3 F 93 3 F 9 df ,1 df ,11 1 2 3 41 1 2 3 4 df ,c(1,3) df ,c(1,3) subject size subject size1 1 71 1 72 2 62 2 63 3 93 3 94 4 114 4 11 dfc(1,3), c(1,3) dfc(1,3), c(1,3) subject size subject size1 1 71 1 73 3 93 3 93.7.2 根據(jù)列名選取子集根據(jù)列名選取子集使用方法如下:使用方法如下:df, “n

42、ame1” 表示返回列名為表示返回列名為 name1 的數(shù)據(jù)的數(shù)據(jù)df, c(“name1” , “name2” , . , “namek”) 表示返回由多個(gè)列組成的數(shù)據(jù)框表示返回由多個(gè)列組成的數(shù)據(jù)框df ,size # 返回向量返回向量df size # 返回?cái)?shù)據(jù)框返回?cái)?shù)據(jù)框df ,c(size,sex) df ,size # df ,size # 返回?cái)?shù)據(jù)返回?cái)?shù)據(jù)1 7 6 9 111 7 6 9 11 df size # df size # 返回?cái)?shù)據(jù)框返回?cái)?shù)據(jù)框 sizesize1 71 72 62 63 93 94 114 11 df ,c(size,sex) df ,c(size,s

43、ex) size sex size sex1 7 M1 7 M2 6 F2 6 F3 9 F3 9 F4 11 M4 11 M3.7.3 使用使用 subset()函數(shù)函數(shù)subset(df, select=c(name1,name2, . ,namek) 表示返回由多個(gè)列組成的數(shù)據(jù)框表示返回由多個(gè)列組成的數(shù)據(jù)框subset(df , select = subject)subset(df , subject 3)subset(df , subject 3, select = -subject) subset(df , subject subset(df , select = subject)

44、subset(df , select = subject) subject subject1 11 12 22 23 33 34 44 4 subset(df , subject subset(df , subject subset(df , subject subset(df , subject subset(df , subject subset(df , subject 3 & sex=M) subject sex size subject sex size1 1 M 71 1 M 73.8 處理數(shù)據(jù)常用的函數(shù)處理數(shù)據(jù)常用的函數(shù)3.9 數(shù)據(jù)探索數(shù)據(jù)探索3.9.1 數(shù)據(jù)結(jié)構(gòu)查看數(shù)據(jù)結(jié)構(gòu)查看

45、dim(iris) # 數(shù)據(jù)集的維度,有多少行多少列?數(shù)據(jù)集的維度,有多少行多少列?names(iris) # 數(shù)據(jù)有哪些列?數(shù)據(jù)有哪些列?str(iris) # 數(shù)據(jù)的結(jié)構(gòu)如何?數(shù)據(jù)的結(jié)構(gòu)如何?iris1:5, # 查看數(shù)據(jù)的前查看數(shù)據(jù)的前 5 行行head(iris) # 查看數(shù)據(jù)的前查看數(shù)據(jù)的前 6 行行tail(iris) # 查看數(shù)據(jù)的最后查看數(shù)據(jù)的最后 6 行行3.9.2 查看單個(gè)變量查看單個(gè)變量# 查看數(shù)據(jù)集中所有變量的統(tǒng)計(jì)量查看數(shù)據(jù)集中所有變量的統(tǒng)計(jì)量summary(iris) # 單個(gè)變量的單個(gè)變量的 1%、25%、50%、75%、100%分位數(shù)分位數(shù)quantile(iri

46、s$Sepal.Length)# 返回均值、中位數(shù)和數(shù)據(jù)的范圍返回均值、中位數(shù)和數(shù)據(jù)的范圍mean( ),median( ),range( )table(iris$Species) # 統(tǒng)計(jì)每個(gè)類(lèi)別的頻數(shù)統(tǒng)計(jì)每個(gè)類(lèi)別的頻數(shù)pie(table(iris$Species) # 畫(huà)出每個(gè)類(lèi)別比例的餅圖畫(huà)出每個(gè)類(lèi)別比例的餅圖3.9.3 查看多個(gè)變量查看多個(gè)變量#查看變量之間的相關(guān)性查看變量之間的相關(guān)性cor(iris ,1:4)# 針對(duì)每個(gè)針對(duì)每個(gè) Species 水平繪制水平繪制 Sepal.Length 的盒形圖的盒形圖boxplot(Sepal.Length Species, data = iris)# 繪制任意兩個(gè)矩陣之間的散點(diǎn)圖,及變量之間的相關(guān)性繪制任意兩個(gè)矩陣之間的散點(diǎn)圖,及變量之間的相關(guān)性pairs(iris)3.9.4 其他查看方法其他查看方法# 三維散點(diǎn)圖三維散點(diǎn)圖library(scatterplot3d)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論