R語言編程基本操作_第1頁
R語言編程基本操作_第2頁
R語言編程基本操作_第3頁
R語言編程基本操作_第4頁
R語言編程基本操作_第5頁
已閱讀5頁,還剩155頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、R語言編程朱朱 強(qiáng)強(qiáng)1532716720017894585R語言交流 232100825主要內(nèi)容1. R軟件基本操作軟件基本操作2. R軟件畫圖軟件畫圖3. 統(tǒng)計(jì)分析方法統(tǒng)計(jì)分析方法教材及參考文獻(xiàn)教材及參考文獻(xiàn)1.R語言實(shí)戰(zhàn),高濤,肖楠,陳鋼譯,人民郵電大學(xué)出版社語言實(shí)戰(zhàn),高濤,肖楠,陳鋼譯,人民郵電大學(xué)出版社2.多元數(shù)據(jù)分析及其多元數(shù)據(jù)分析及其R實(shí)現(xiàn),肖枝洪,朱強(qiáng)等,科學(xué)出版社實(shí)現(xiàn),肖枝洪,朱強(qiáng)等,科學(xué)出版社 20133.統(tǒng)計(jì)建模與統(tǒng)計(jì)建模與R軟件軟件,薛毅,陳立萍,清華大學(xué)出版社,薛毅,陳立萍,清華大學(xué)出版社, 20074 R語言與語言與Bioconductor 生物信息學(xué)應(yīng)用,高山,歐劍

2、虹,生物信息學(xué)應(yīng)用,高山,歐劍虹,肖凱,天津科技翻譯出版有限公司肖凱,天津科技翻譯出版有限公司5.孫嘯等孫嘯等. R語言及語言及Bioconductor在基因組分析中的應(yīng)用在基因組分析中的應(yīng)用. 科學(xué)出版社科學(xué)出版社, 2006考核方式考核方式考勤考勤20%+ 平時(shí)上機(jī)作業(yè)平時(shí)上機(jī)作業(yè)40%+ 期末上機(jī)期末上機(jī)40%(開卷)(開卷)R介紹介紹R是是 一個(gè)開放一個(gè)開放(GPL)的統(tǒng)計(jì)編程環(huán)境的統(tǒng)計(jì)編程環(huán)境 一種語言,是語言一種語言,是語言(由由AT&T Bell實(shí)驗(yàn)室的實(shí)驗(yàn)室的Rick Becker, John Chambers,Allan Wilks開發(fā)開發(fā))的一的一種方言種方言(di

3、alect) 之一,另一則為之一,另一則為S-plus. 一種軟件,是集統(tǒng)計(jì)分析與圖形直觀顯示于一體的統(tǒng)計(jì)一種軟件,是集統(tǒng)計(jì)分析與圖形直觀顯示于一體的統(tǒng)計(jì)分析分析R作為一個(gè)計(jì)劃作為一個(gè)計(jì)劃(project),最早,最早(1995年年)是由是由Auckland大學(xué)統(tǒng)計(jì)系的大學(xué)統(tǒng)計(jì)系的Robert Gentleman和和Ross Ihaka開始編制,目前由核心開發(fā)小開始編制,目前由核心開發(fā)小組組(R Development Core Team 以后用以后用R DCT表示表示)維護(hù),他們完全自愿、工作努力負(fù)責(zé),維護(hù),他們完全自愿、工作努力負(fù)責(zé),并將全球優(yōu)秀的統(tǒng)計(jì)應(yīng)用軟件打包提供給我們。并將全球優(yōu)秀的

4、統(tǒng)計(jì)應(yīng)用軟件打包提供給我們。我們可以通過計(jì)劃的網(wǎng)站我們可以通過計(jì)劃的網(wǎng)站()了解有關(guān)的最新信息和使用說明,了解有關(guān)的最新信息和使用說明,得到最新版本的軟件和基于的應(yīng)用統(tǒng)計(jì)軟件得到最新版本的軟件和基于的應(yīng)用統(tǒng)計(jì)軟件包包. R的無私奉獻(xiàn)者Bill Venables Robert Gentleman Ross Ihaka R免費(fèi)資源公開免費(fèi)資源公開(不是黑盒子不是黑盒子,也不是吝嗇鬼也不是吝嗇鬼) R全面的統(tǒng)計(jì)研究平臺(tái)全面的統(tǒng)計(jì)研究平臺(tái) R支持多種操作系統(tǒng)可以在支持多種操作系統(tǒng)可以在UNIX, Windows和和Macintosh運(yùn)行運(yùn)行. R 有優(yōu)秀的

5、有優(yōu)秀的畫圖功能畫圖功能. R可進(jìn)行可進(jìn)行交互式數(shù)據(jù)分析交互式數(shù)據(jù)分析和探索的強(qiáng)大平臺(tái)和探索的強(qiáng)大平臺(tái) R有優(yōu)秀的有優(yōu)秀的內(nèi)在幫助系統(tǒng)內(nèi)在幫助系統(tǒng) R語言有一個(gè)語言有一個(gè)強(qiáng)大的強(qiáng)大的,容易學(xué)習(xí)容易學(xué)習(xí)的語法的語法,有許多內(nèi)有許多內(nèi)在的統(tǒng)計(jì)函數(shù)在的統(tǒng)計(jì)函數(shù). 通過用戶通過用戶自編程序自編程序, R語言很容易語言很容易延伸和擴(kuò)大延伸和擴(kuò)大. 它它就是這樣成長的就是這樣成長的.通過語言的許多內(nèi)嵌統(tǒng)計(jì)函數(shù),很容易學(xué)習(xí)和掌握通過語言的許多內(nèi)嵌統(tǒng)計(jì)函數(shù),很容易學(xué)習(xí)和掌握R語言的語法語言的語法.我們可以編制自己的函數(shù)來擴(kuò)展現(xiàn)有的語言我們可以編制自己的函數(shù)來擴(kuò)展現(xiàn)有的語言(這就是這就是為什么它在不斷等級(jí)完善為

6、什么它在不斷等級(jí)完善!) R 是計(jì)算機(jī)編程語言是計(jì)算機(jī)編程語言. 類似于類似于UNIX語言語言,C語語言言,Pascal,Gauss語言等語言等. 對(duì)于熟練的編程者對(duì)于熟練的編程者, 它將覺得該語言它將覺得該語言比其他語言比其他語言更熟悉更熟悉. 而對(duì)計(jì)算機(jī)初學(xué)者而對(duì)計(jì)算機(jī)初學(xué)者, 學(xué)習(xí)學(xué)習(xí)R語言語言使得學(xué)習(xí)下一步使得學(xué)習(xí)下一步的其他編程不那么困難的其他編程不那么困難. 那些傻瓜軟件那些傻瓜軟件(SAS,SPSS等等)語言的語法則完全語言的語法則完全不同不同.1.進(jìn)入網(wǎng)站進(jìn)入網(wǎng)站2.點(diǎn)擊左邊的點(diǎn)擊左邊的Download,Packages下的下的CR

7、AN選擇鏡像:選擇鏡像:China有六個(gè)鏡像點(diǎn),隨意點(diǎn)擊一個(gè)有六個(gè)鏡像點(diǎn),隨意點(diǎn)擊一個(gè)3.點(diǎn)擊下圖中點(diǎn)擊下圖中Windows,再點(diǎn)擊再點(diǎn)擊base4.點(diǎn)擊第一行的點(diǎn)擊第一行的Download R 2.13.1 for Windows (32 megabytes)下載下載工具條介紹Source R code Load image Save imageCopy and PasteStop current computationSource R code 執(zhí)行R文件(*.R或*.r)Save image 保存工作空間,文件名為*.RDataLoad image 打開已有的工作空間Stop curre

8、nt computation 中止當(dāng)前計(jì)算(由于超時(shí)等原因) (打開程序腳本打開程序腳本) (載入映象載入映象) (保存映象保存映象) (打印打印) (中斷目前的計(jì)算中斷目前的計(jì)算) 主菜單介紹(相應(yīng)有中文對(duì)照)demo(graphics) R的基本界面是一個(gè)交互式命令窗口,命令提示符是一個(gè)大于號(hào),命令的結(jié)果馬上顯示在命令下面。 R命令主要有兩種形式:表達(dá)式或賦值運(yùn)算(用 x11() 可以打開一個(gè)作圖窗口。然后,輸入以下語句: x1 x2 y plot(x2,y, type=l) plot(x2,y,main=“畫圖練習(xí)”, type=“s”, sub=“好好練, xlab=x軸,ylab=y

9、軸) 這些語句可以繪制正弦曲線圖。其中,“ marks mean(marks) sd(marks) median(marks) min(marks) max(marks) boxplot(marks) 第一個(gè)語句輸入若干數(shù)據(jù)到一個(gè)向量,函數(shù)c()用來把數(shù)據(jù)組合為一個(gè)向量。 后面用了幾個(gè)函數(shù)來計(jì)算數(shù)據(jù)的均值、標(biāo)準(zhǔn)差、中位數(shù)、最小值、最大值。 最后的函數(shù)繪制數(shù)據(jù)的盒形圖。 例中sd()是R中才有的函數(shù),在S-PLUS中要用sqrt(var()來計(jì)算。 在S命令方式中要顯示一個(gè)表達(dá)式的值只要鍵入它。中位數(shù)(median)排序后處于中間位置上的值min1nieiMx四分位數(shù)(quartile)排序后處

10、于25%和75%位置上的值未分組數(shù)據(jù)箱線圖(box plot)用于顯示未分組的原始數(shù)據(jù)的分布箱線圖由一組數(shù)據(jù)的5個(gè)特征值繪制而成,它由一個(gè)箱子和兩條線段組成其繪制方法是:首先找出一組數(shù)據(jù)的5個(gè)特征值,即最大值最大值、最小最小值值、中位數(shù)中位數(shù)Me 和兩個(gè)四分位數(shù)四分位數(shù)(下四分位數(shù)QL和上四分位數(shù)QU)連接兩個(gè)四分(位)數(shù)畫出箱子,再將兩個(gè)極值點(diǎn)與箱子相連接。另外注意 兩邊的豎線也稱為胡須,分別離箱子邊的距離為1.5倍的四分位差(IQR),在其外被認(rèn)為離群點(diǎn)未分組數(shù)據(jù)單批數(shù)據(jù)箱線圖(箱線圖的構(gòu)成) 可以把若干行命令保存在一個(gè)文本文件(比如E:/WORK/MYPROG.S)中,然后用source

11、 函數(shù)來運(yùn)行整個(gè)文件: source(E:/lian.R) 注意字符串中的反斜杠。用sink()函數(shù)可以把以后的輸出從屏幕窗口轉(zhuǎn)向到一個(gè)外部文本文件,例如: sink(“E:/WORK/MYPROG.txt) 要恢復(fù)輸出到屏幕窗口,使用: sink() 在S中還可以用“?”號(hào)后面跟要查詢的函數(shù)來顯示幫助信息,例如: ?c ?=例例2:計(jì)算計(jì)算6, 4, 7, 86, 4, 7, 8,1010的均值和標(biāo)準(zhǔn)差,的均值和標(biāo)準(zhǔn)差,把若干把若干行命令保存在一個(gè)文本文件(比如行命令保存在一個(gè)文本文件(比如E:lian1.R)中)中,然后用,然后用source 函數(shù)來運(yùn)行整個(gè)文件。函數(shù)來運(yùn)行整個(gè)文件。a -

12、 c(10, 6, 4, 7, 8) b-mean(a) c ?fivenum fivenum(0:100) fivenum(1:100)fivenum(c(rnorm(100) fivenum(c(rnorm(100),-1:1/0)R提供了提供了4000多個(gè)包,這些包橫跨各種領(lǐng)域,包括多個(gè)包,這些包橫跨各種領(lǐng)域,包括分析地理數(shù)據(jù)、處理蛋白質(zhì)質(zhì)譜、甚至是心理測分析地理數(shù)據(jù)、處理蛋白質(zhì)質(zhì)譜、甚至是心理測驗(yàn)分析的功能。驗(yàn)分析的功能。下載和安裝包:下載和安裝包:install.packages(“car”)包的安裝僅是從某個(gè)包的安裝僅是從某個(gè)CRAN鏡像點(diǎn)下載并放入庫中鏡像點(diǎn)下載并放入庫中的過程。

13、要使用包時(shí),需要加載這個(gè)包。的過程。要使用包時(shí),需要加載這個(gè)包。如需使用包如需使用包c(diǎn)ar,則使用命令則使用命令library(car) 使用了錯(cuò)誤的大小寫,使用了錯(cuò)誤的大小寫,R嚴(yán)格區(qū)分大小寫。嚴(yán)格區(qū)分大小寫。Help(),help(),HELP(). 忘記使用必要的引號(hào)忘記使用必要的引號(hào),install.packages(“car”)而而不能寫作不能寫作intall.packages(car) 在函數(shù)引用時(shí)忘記使用括號(hào)在函數(shù)引用時(shí)忘記使用括號(hào),要使用要使用mean(),mean 在在Windows上,路徑名中使用了上,路徑名中使用了。正確的寫法。正確的寫法c:/mydata.csv或者或者

14、c:mydata.csv 使用了一個(gè)尚未載入包中的函數(shù)。函數(shù)使用了一個(gè)尚未載入包中的函數(shù)。函數(shù)order.clusters()包含在包包含在包gclus中。中。 要區(qū)分中英文的符號(hào),特別是引號(hào)要區(qū)分中英文的符號(hào),特別是引號(hào)語法語法 符號(hào)符號(hào) 命令或運(yùn)算提示符命令或運(yùn)算提示符 + 續(xù)行符續(xù)行符 基本算術(shù)運(yùn)算基本算術(shù)運(yùn)算 +加號(hào)加號(hào) - 減號(hào)減號(hào) * 乘號(hào)乘號(hào) / 除號(hào)除號(hào) 乘方乘方 %*% 矩陣乘法矩陣乘法 % 求余數(shù)求余數(shù) %/% 整數(shù)除法整數(shù)除法 賦值符賦值符 = 或或 3+53-53/535x=5?plothelp(plot)實(shí)驗(yàn)作業(yè)實(shí)驗(yàn)作業(yè)安裝安裝R軟件軟件安裝安裝Rstudio3.查詢

15、stem的函數(shù)幫助信息,并用幫助文件中的案例進(jìn)一步學(xué)習(xí). 然后繪制 12 12 11 10 9 10 12 的莖葉圖。4、繪制y=x3 +sin(x)*cos(x)的函數(shù)圖,并加注圖例“自變量X”、“函數(shù)Y”、“示意圖”.要求:需給出程序、結(jié)果,存成要求:需給出程序、結(jié)果,存成word文檔文檔 向量是向量是R中最為基本的類型中最為基本的類型 一個(gè)向量中元素的類型必須相同,包括一個(gè)向量中元素的類型必須相同,包括 數(shù)值型數(shù)值型 邏輯型邏輯型 復(fù)值型復(fù)值型 字符型字符型創(chuàng)建數(shù)據(jù)集創(chuàng)建數(shù)據(jù)集1.向量向量(1)、數(shù)值向量)、數(shù)值向量 定義向量的常用方法定義向量的常用方法(函數(shù)函數(shù)) seq() 或或 :

16、 若向量若向量(序列序列)具有較為簡單的規(guī)律具有較為簡單的規(guī)律 rep() 若向量若向量(序列序列)具有較為復(fù)雜的規(guī)律具有較為復(fù)雜的規(guī)律 c() 若向量若向量(序列序列)沒有什么規(guī)律沒有什么規(guī)律例例1:10seq(1,10,by=0.5)seq(1,10,length=21)rep(2:5,2)rep(2:5,rep(2,4)x=c(42,7,64,9)length(x)1:3+c(5,7,2)/c(5,7,1) 12 3 5兩個(gè)不等長的向量之間的運(yùn)算則是兩個(gè)不等長的向量之間的運(yùn)算則是:長度短的向長度短的向量將循環(huán)使用量將循環(huán)使用.c(100,200)+c(1,2,3,4)1101 202 1

17、03 204 向量運(yùn)算中的循環(huán)法則(recycling rule)1:2+1:41:4+1:7111212224231344246 111222241333624448351564626873710 sqrt(x),log(x),exp(x),sin(x),cos(x),tan(x),abs(x)分別表示平方根分別表示平方根,對(duì)數(shù)對(duì)數(shù),指數(shù)指數(shù),三角函數(shù)及絕對(duì)值三角函數(shù)及絕對(duì)值.sort(x,decreasing=FALSE)返回按返回按x的元素從小到大排序的元素從小到大排序的結(jié)果向量的結(jié)果向量.order(x)是使得是使得x從小到大排列的元素下標(biāo)向量從小到大排列的元素下標(biāo)向量,sort(x)

18、與與xorder(x)是等效的是等效的.numeric(n):表示長度為表示長度為n的零向量的零向量(2)、邏輯向量邏輯向量向量可以取邏輯值向量可以取邏輯值,如如l=c(TRUE,TRUE,FALSE)x=c(1,4,6.25)l3l1FALSE TRUE TRUE兩個(gè)向量也可比較兩個(gè)向量也可比較log(10*x)1 2.302585 3.688879 4.135167log(10*x)x1 TRUE FALSE FALSE比較運(yùn)算符比較運(yùn)算符:,=,=(相等相等),!=(不等不等)邏輯向量可以進(jìn)行與邏輯向量可以進(jìn)行與(&)表示同時(shí)滿足表示同時(shí)滿足,或或(|)兩者之一兩者之一運(yùn)運(yùn)算算.

19、如如:(x=2)&(xall(log(10*x)x)判斷是否有真值的函數(shù)為判斷是否有真值的函數(shù)為anyany(log(10*x)x)函數(shù)函數(shù)is.na(x)用來判斷用來判斷x的每一個(gè)元素是否有缺失值的每一個(gè)元素是否有缺失值.如如is.na(c(1,2,NA)1 FALSE FALSE TRUE還可以將邏輯值強(qiáng)制轉(zhuǎn)化為整數(shù)值,如:將還可以將邏輯值強(qiáng)制轉(zhuǎn)化為整數(shù)值,如:將TRUE變成變成1,F(xiàn)ALSE變成變成0,c(0,1)(x3)+11 0 1 1 (x3)+1#+1表示把邏輯值強(qiáng)制轉(zhuǎn)化為整數(shù)值表示把邏輯值強(qiáng)制轉(zhuǎn)化為整數(shù)值1,01 1 2 2(3)、字符型向量字符型向量c1=c(“a”,

20、”b”)c11“a” “b”c2=c(“weight”,”height”,”年齡年齡”)c21”weight” “height” “年齡年齡”paste函數(shù)用來把它的自變量連成字符串,中間用相應(yīng)的分隔函數(shù)用來把它的自變量連成字符串,中間用相應(yīng)的分隔符符paste(”My”,”Job”)paste(c(“X”,”Y”),”=“,1:4)paste(“result.”,1:5,sep=“”)#sep表示所用的分隔符表示所用的分隔符 paste(my,job,sep=)1 myjob paste(my,job,sep=.)1 my.job(4)、復(fù)數(shù)向量復(fù)數(shù)向量復(fù)數(shù)輸入只要像格式復(fù)數(shù)輸入只要像格式5

21、+2i輸入即可,如下定義復(fù)數(shù)向量輸入即可,如下定義復(fù)數(shù)向量x=(0:100)/100*2*piy=sin(x)z=complex(re=x,im=y)complex函數(shù)定義復(fù)數(shù),函數(shù)定義復(fù)數(shù),x為實(shí)部,為實(shí)部,y為虛部為虛部plot(z)畫出畫出z的點(diǎn)圖的點(diǎn)圖也可給定模和輻角定義復(fù)數(shù)向量:也可給定模和輻角定義復(fù)數(shù)向量:zz=complex(mod=1,arg=(0:11)/12*2*pi)Re()計(jì)算實(shí)部,計(jì)算實(shí)部,Im()計(jì)算虛部,計(jì)算虛部,Mod()計(jì)算復(fù)數(shù)模,計(jì)算復(fù)數(shù)模,Arg()計(jì)算計(jì)算復(fù)數(shù)輻角,復(fù)數(shù)輻角,Conj()計(jì)算共軛。基本的數(shù)學(xué)函數(shù)也支持復(fù)數(shù)運(yùn)算。計(jì)算共軛。基本的數(shù)學(xué)函數(shù)也支

22、持復(fù)數(shù)運(yùn)算。sqrt(-2+0i)(5)、向量下標(biāo)運(yùn)算向量下標(biāo)運(yùn)算R中向量的下標(biāo)從中向量的下標(biāo)從1開始,這與通常的統(tǒng)計(jì)或數(shù)學(xué)軟件不開始,這與通常的統(tǒng)計(jì)或數(shù)學(xué)軟件不 一致一致而象而象C語言等計(jì)算機(jī)高級(jí)語言的向量下標(biāo)則從語言等計(jì)算機(jī)高級(jí)語言的向量下標(biāo)則從0開始!開始!訪問向量的某個(gè)元素訪問向量的某個(gè)元素xix = c(42,7,64,9)x2也可單獨(dú)改變某個(gè)元素的值也可單獨(dú)改變某個(gè)元素的值x3=-1 訪問向量的一部分的幾種方法:訪問向量的一部分的幾種方法:(1)正整數(shù)下標(biāo)向量正整數(shù)下標(biāo)向量xc(1,4)142 9x2:4(2)負(fù)整數(shù)下標(biāo)向量負(fù)整數(shù)下標(biāo)向量x-1表示刪除第一個(gè)元素表示刪除第一個(gè)元素(

23、3)邏輯下標(biāo)向量邏輯下標(biāo)向量xx10表示選取表示選取xxxA=matrix(1:12,ncol=4,byrow=TRUE) A ,1 ,2 ,3 ,41, 1 2 3 42, 5 6 7 83, 9 10 11 12c(A)顯示顯示A的所有向量,是按列拉直的向量。的所有向量,是按列拉直的向量。cbind()把向量橫向拼成一個(gè)大矩陣,把向量橫向拼成一個(gè)大矩陣,rbind()把向量縱向拼把向量縱向拼成一個(gè)大矩陣。成一個(gè)大矩陣。對(duì)角和單位矩陣對(duì)角和單位矩陣 diag(c(1,2,3),diag(1,3)B=rbind(c(1,2),c(3,4)C=cbind(c(11,12),c(13,14)D=r

24、bind(B,C)E=cbind(B,C)2、訪問矩陣元素、訪問矩陣元素A2,3訪問是矩陣的(訪問是矩陣的(2,3)元素)元素7Ai,訪問第訪問第i行,行,A,j訪問第訪問第j列列 注意:注意:A=0表示不改變表示不改變A的大小只改變?cè)刂禐榈拇笮≈桓淖冊(cè)刂禐?也可以對(duì)矩陣的行標(biāo)和列標(biāo)重新命名。也可以對(duì)矩陣的行標(biāo)和列標(biāo)重新命名。rownames(A)=c(“a”,”b”,”c”)colnames(A)=paste(“X”,1:4,sep=“”)3、矩陣運(yùn)算、矩陣運(yùn)算矩陣可以進(jìn)行四則運(yùn)算矩陣可以進(jìn)行四則運(yùn)算(+,-,*,/,)表示矩陣對(duì)應(yīng)元素的四則表示矩陣對(duì)應(yīng)元素的四則元素,參與運(yùn)算一般是相同

25、形狀的元素,參與運(yùn)算一般是相同形狀的形狀不一致的向量和矩陣也可進(jìn)行四則運(yùn)算。規(guī)則是矩陣的數(shù)形狀不一致的向量和矩陣也可進(jìn)行四則運(yùn)算。規(guī)則是矩陣的數(shù)據(jù)按向量(按列拉直)的對(duì)應(yīng)元素進(jìn)行運(yùn)算。據(jù)按向量(按列拉直)的對(duì)應(yīng)元素進(jìn)行運(yùn)算。A+c(100,200,300)矩陣乘法矩陣乘法A%*%B,t(A)表示表示A的轉(zhuǎn)置。的轉(zhuǎn)置。B=matrix(c(1,0),nrow=4,ncol=2,byrow=T)A%*%B4、apply函數(shù)函數(shù)對(duì)矩陣想對(duì)某行(列)進(jìn)行某種計(jì)算,可用對(duì)矩陣想對(duì)某行(列)進(jìn)行某種計(jì)算,可用apply函數(shù),函數(shù),apply(x,margin,fun,)x表示矩陣,表示矩陣,margin=

26、1表示對(duì)每行計(jì)算,表示對(duì)每行計(jì)算,margin=2表示表示對(duì)每列計(jì)算,對(duì)每列計(jì)算,fun是用來計(jì)算的函數(shù)。是用來計(jì)算的函數(shù)。apply(A,1,sum)apply(A,2,mean)5、矩陣的其他運(yùn)算、矩陣的其他運(yùn)算行列式:行列式:det(A) 求逆:求逆:solve(A) 特征值和特征向量:特征值和特征向量:eigen(A) 練習(xí):計(jì)算矩陣練習(xí):計(jì)算矩陣A=求求A的行列式及逆的行列式及逆A=matrix(c(1,2,-1,-3,2,4,0,-4,-1,1,2,2,0,2,1,3),nrow=4)det(A)solve(A) 3243120121420121因子因子1.factor()函數(shù)函數(shù)

27、例子:知道例子:知道5位學(xué)生的性別,用因子變量表示位學(xué)生的性別,用因子變量表示sex=c(“M”,”F”,”M”,”M”,”F”)sexf=factor(sex);sexf1 M F M M FLevels: F M函數(shù)函數(shù)factor()用來把一個(gè)向量編碼為一個(gè)因子,一般形式為用來把一個(gè)向量編碼為一個(gè)因子,一般形式為factor(x,levels=sort(unique(x),na.last=TRUE),labels,exclude=NA,ordered=FALSE)is.factor()檢驗(yàn)對(duì)象是否是因子,檢驗(yàn)對(duì)象是否是因子,as.factor()把向量轉(zhuǎn)化把向量轉(zhuǎn)化為因子。為因子。lev

28、els()可以得到因子的水平可以得到因子的水平sex.level=levels(sexf);sex.level1”F” “M”對(duì)因子向量可用對(duì)因子向量可用table()統(tǒng)計(jì)各類數(shù)據(jù)的頻數(shù)。統(tǒng)計(jì)各類數(shù)據(jù)的頻數(shù)。sex.tab=table(sexf);sex.tab2.tapply()函數(shù)函數(shù)例子:知道例子:知道5位學(xué)生的性別,還知道這位學(xué)生的性別,還知道這5位學(xué)生的身高,分組位學(xué)生的身高,分組求身高的平均值求身高的平均值height=c(174,165,180,171,160)tapply(height,sex,mean)1 F M 162.5 175.0tapply() 的一般形式為的一般形式

29、為tapply(x,INDEX,FUN=NULL,simplify=TRUE)x是一對(duì)象,通常為一向量,是一對(duì)象,通常為一向量,INDEX是與是與X有同樣長度的因子,有同樣長度的因子,F(xiàn)UN是要計(jì)算的函數(shù)是要計(jì)算的函數(shù)3.gl()函數(shù)函數(shù)gl()可以方便地產(chǎn)生因子,可以方便地產(chǎn)生因子,gl(n,k,length=n*k,labels=1:n,odered=FALSE)n為水平數(shù),為水平數(shù),k為重復(fù)的次數(shù),為重復(fù)的次數(shù),length為結(jié)果的長度,為結(jié)果的長度,labels為為n維向量,表示因子水平,維向量,表示因子水平,ordered是邏輯變量,表示是否是邏輯變量,表示是否為有序因子,缺省值為有

30、序因子,缺省值FALSEgl(2,3) gl(2,1,6)列表(列表(list)和數(shù)據(jù)框()和數(shù)據(jù)框(data.frame)1、列表的構(gòu)造、列表的構(gòu)造rec=list(name=“黎黎明明”,age=30,scores=c(85,76,90) rec$name1 黎明黎明$age1 30$scores1 85 76 90列表元素可用列表元素可用”列表名列表名下標(biāo)下標(biāo)”引用引用rec2130rec32但列表不同于向量,每次只能引用一個(gè)元素,如但列表不同于向量,每次只能引用一個(gè)元素,如rec1:2是不允許的是不允許的對(duì)連續(xù)型變量產(chǎn)生因子對(duì)連續(xù)型變量產(chǎn)生因子,或分類或分類agerec“age”rec

31、$age2、列表的修改、列表的修改rec$name=“張三張三”rec$age=list(20,32,58)可重新添加一些到列表中可重新添加一些到列表中rec$sex=“男男”rec6=161第第5號(hào)元素沒定義,所以值是號(hào)元素沒定義,所以值是”NULL”,若若rec是一個(gè)向量,則是一個(gè)向量,則空元素為空元素為”NA”列表之間還可以連接起來,列表之間還可以連接起來,List.ABC=c(list.A,list.B,list.C)3.數(shù)據(jù)框數(shù)據(jù)框數(shù)據(jù)框通常是矩陣形式的數(shù)據(jù),但矩陣各列可以是不數(shù)據(jù)框通常是矩陣形式的數(shù)據(jù),但矩陣各列可以是不同類型。數(shù)據(jù)框每列是一個(gè)變量,每行是一個(gè)觀測。同類型。數(shù)據(jù)框每

32、列是一個(gè)變量,每行是一個(gè)觀測。(1)生成數(shù)據(jù)框生成數(shù)據(jù)框 一般可以把數(shù)據(jù)框看作一種推廣了的矩陣,它可用一般可以把數(shù)據(jù)框看作一種推廣了的矩陣,它可用矩陣形式矩陣形式表示,數(shù)據(jù)框可以用表示,數(shù)據(jù)框可以用data.frame()函數(shù)生成,用法函數(shù)生成,用法與與list()函數(shù)相同函數(shù)相同ls()#列出工作空間你定義的所有變量列出工作空間你定義的所有變量str(x)#給出對(duì)象給出對(duì)象x的一些信息的一些信息d=data.frame(name=c(李明李明,張聰張聰,王王建建),age=c(30,35,28,40),height=c(180,162,175)d name age height1 李明 30

33、 1802 張聰 35 1623 王建 28 175可以將列表轉(zhuǎn)化為一個(gè)數(shù)據(jù)框可以將列表轉(zhuǎn)化為一個(gè)數(shù)據(jù)框:如比較他們之間的區(qū)別如比較他們之間的區(qū)別d2=list(name=c(李明李明,張聰張聰,王建王建),age=c(30,35,28),height=c(180,162,175)as.data.frame(d1)(2)數(shù)據(jù)框的引用)數(shù)據(jù)框的引用引用數(shù)據(jù)框元素的方法與引用矩陣元素的方法相同。引用數(shù)據(jù)框元素的方法與引用矩陣元素的方法相同。d1:2,2:3數(shù)據(jù)框的各變量也可用按列表引用數(shù)據(jù)框的各變量也可用按列表引用(用雙括號(hào)用雙括號(hào)或或$引用引用)d“age”1 30 35 28d$height1

34、 180 162 175數(shù)據(jù)框的各行也可以定義名字,用數(shù)據(jù)框的各行也可以定義名字,用rownames屬性屬性定義。定義。names(d)1 name age heightrownames(d)=c(one,two,three) rownames(d)1 one two three(3)attach()函數(shù)函數(shù)數(shù)據(jù)框的主要用途是保存統(tǒng)計(jì)建模的數(shù)據(jù)。調(diào)用數(shù)據(jù)數(shù)據(jù)框的主要用途是保存統(tǒng)計(jì)建模的數(shù)據(jù)。調(diào)用數(shù)據(jù)框的變量像以前框的變量像以前d是不方便的是不方便的,R提供了函數(shù)提供了函數(shù)attach()可以把變量調(diào)入內(nèi)存??梢园炎兞空{(diào)入內(nèi)存。attach(d)r=age/height#此時(shí)此時(shí)age,heig

35、ht是可以利用的是可以利用的但但r的值不會(huì)進(jìn)入數(shù)據(jù)框的值不會(huì)進(jìn)入數(shù)據(jù)框d,若想把剛才,若想把剛才r當(dāng)作新的數(shù)當(dāng)作新的數(shù)據(jù)框的變量據(jù)框的變量d$r=age/weight d name age height rone 李明 30 180 0.1666667two 張聰 35 162 0.2160494three 王建 28 175 0.1600000detach(d)取消連接取消連接(4)列表與數(shù)據(jù)框的編輯)列表與數(shù)據(jù)框的編輯可用函數(shù)可用函數(shù)edit()對(duì)列表或者數(shù)據(jù)框進(jìn)行編輯對(duì)列表或者數(shù)據(jù)框進(jìn)行編輯newd=edit(d)當(dāng)然也可對(duì)向量,數(shù)組,矩陣類型的數(shù)據(jù)進(jìn)行修改和當(dāng)然也可對(duì)向量,數(shù)組,矩陣類

36、型的數(shù)據(jù)進(jìn)行修改和編輯編輯.Fix用函數(shù)用函數(shù)merge(x, y, .) 對(duì)兩個(gè)數(shù)據(jù)框合并成一個(gè)對(duì)兩個(gè)數(shù)據(jù)框合并成一個(gè)可查看幫助可查看幫助.?merge 調(diào)用R內(nèi)部的iris數(shù)據(jù)集。回答以下問題 查看每一列變量的名稱3.分別根據(jù)Species的種類計(jì)算Sepal.Length及Sepal.Width的平均值和標(biāo)準(zhǔn)差。4.畫出Petal.Length與Petal.Width的散點(diǎn)圖課堂練習(xí) 輸入輸出輸入輸出1.輸入輸入(1)read.table()等相關(guān)函數(shù)等相關(guān)函數(shù)read.table()函數(shù)是讀表格形式的文件函數(shù)是讀表格形式的文件,若若”班級(jí)班級(jí)”數(shù)數(shù)據(jù)已輸入到一個(gè)純文本文件據(jù)已輸入到一個(gè)

37、純文本文件”cjb.txt”中中,假設(shè)存儲(chǔ)在假設(shè)存儲(chǔ)在c:/cjb.txt,其格式如下其格式如下:學(xué)號(hào) 姓名 平時(shí) 其中 期末 總評(píng)07*001吳蒙蒙8566646907*002高旭9580949107*003李楠9278556707*004趙利沖7848404007*005何耀龍8958516007*006何星8544817407*007唐佳征9573536507*008程西平9686899007*009陳茂琴9584697707*010程長久9479828407*011王鋒9374868507*012何福順9082536607*013羅玲9693909207*014劉卿卿976794890

38、7*015張曉芳93728282072301016楊樂遙88615060072301017沈亮95415460072301018高晶98769189072301020郭慧93918387072301021陳燦92766975072301022李婷90766975072301023陳元俊94745969072301024譚海梅95646370072301025張亞琴95898588072301026胡陽98929897072301027張沖92606569072301028位會(huì)敏95928287072301029胡紅96789089072301030岳鑫璐96607979072301031李歡歡

39、988510097072301032陳龍龍92656470072301033朱盼88556668讀入格式為讀入格式為:cjb=read.table(c:/cjb.txt,header=TRUE)cjbis.data.frame(cjb)1 TRUEheader=TRUE表示第一行讀入的是變量名表示第一行讀入的是變量名,默認(rèn)是默認(rèn)是header=FALSE,即自動(dòng)會(huì)添上列名即自動(dòng)會(huì)添上列名.具體用法可見具體用法可見幫助幫助.?read.tabled=read.csv(txt.csv)#讀逗號(hào)分隔的文本文件讀逗號(hào)分隔的文本文件d=read.csv2(“txt.csv”)#讀分號(hào)分隔的文本文件,讀分

40、號(hào)分隔的文本文件, 逗號(hào)代替小數(shù)點(diǎn)逗號(hào)代替小數(shù)點(diǎn)d=read.delim(foo.txt)#讀制表符分隔的文件讀制表符分隔的文件d=read.delim2(“foo.txt”)#讀制表符分隔的文件,讀制表符分隔的文件, 逗號(hào)代替小數(shù)點(diǎn)逗號(hào)代替小數(shù)點(diǎn)d=read.fwf(txt.fwf)#讀固定寬的文件讀固定寬的文件D=readLines(“a.txt”)#每行有不同的結(jié)構(gòu)每行有不同的結(jié)構(gòu)readLines(con = stdin(), n = -1L, ok = TRUE, warn = TRUE, encoding = unknown) cat(TITLE extra line, 2 3 5

41、 7, , 11 13 17, file=ex.data, sep=n) readLines(ex.data, n=-1) unlink(“ex.data”) # 刪除文件 讀取NC_023010.faa文件My_fasta=readLines(NC_023010.faa)fast=as.character(My_fasta)abc=grep(,fast)a1=unlist(strsplit(fast2:(abc2-1),split=)做其他的可以構(gòu)造一個(gè)循環(huán)R中一般不能直接讀中一般不能直接讀xls文件文件,可先轉(zhuǎn)換為可先轉(zhuǎn)換為csv(2)scan()函數(shù)函數(shù)scan()函數(shù)可直接讀純文本文件

42、數(shù)據(jù)和直接從屏幕上函數(shù)可直接讀純文本文件數(shù)據(jù)和直接從屏幕上輸數(shù)據(jù)輸數(shù)據(jù)x=scan()1: 2 4 4.2 55:Read 4 timesx1 2 4 4.2 5假設(shè)有假設(shè)有10名學(xué)生的體重?cái)?shù)據(jù)已輸入文件名學(xué)生的體重?cái)?shù)據(jù)已輸入文件”weight.txt”,格式為格式為45 63.5 32.5 67.2 77.5 55 54 49 62 70w=scan(c:/weight.txt)假設(shè)假設(shè)weight.txt中中,奇數(shù)是女性體重奇數(shù)是女性體重,偶數(shù)是男性體重偶數(shù)是男性體重,即數(shù)據(jù)中有不同的屬性即數(shù)據(jù)中有不同的屬性wfm=scan(c:/weight.txt,list(F=0,M=0)Read

43、5 records將數(shù)據(jù)讀入將數(shù)據(jù)讀入,并以列表的方式賦給變量并以列表的方式賦給變量wfm wfm$F1 45.0 32.5 77.5 54.0 62.0$M1 63.5 67.2 55.0 49.0 70.0其它數(shù)據(jù)格式的讀入可以參見幫助文檔中的其它數(shù)據(jù)格式的讀入可以參見幫助文檔中的R數(shù)據(jù)輸入數(shù)據(jù)輸入輸出輸出.2.輸出輸出直接輸入變量名即可輸出直接輸入變量名即可輸出x=1:5x1 1 2 3 4 5用用print(x)與上式是等價(jià)的與上式是等價(jià)的,里面有些參數(shù)里面有些參數(shù),digits指定指定每個(gè)數(shù)輸出的有效數(shù)字位每個(gè)數(shù)輸出的有效數(shù)字位. options(digits=3) 1/31 0.3

44、33 write.table#輸出數(shù)據(jù)框到文件輸出數(shù)據(jù)框到文件write.csvwrite.csv2Write.matrix#輸出矩陣到文件輸出矩陣到文件,需要加載包需要加載包MASScat()函數(shù)也可用來輸出函數(shù)也可用來輸出,但它可以把多個(gè)參數(shù)連接起來但它可以把多個(gè)參數(shù)連接起來再輸出再輸出(類似于類似于paste()的功能的功能)cat(i=,i,n)#注意為什么要用注意為什么要用”n”cat(c(AB,C),c(E,F),n,sep=) ABCEFcat()還可以指定一個(gè)參數(shù)還可以指定一個(gè)參數(shù)”file=文件名文件名”,把結(jié)果寫到把結(jié)果寫到指定的文件中指定的文件中cat(i=,1,n,fi

45、le=c:/result.txt)若指定的文件存在若指定的文件存在,則原內(nèi)容被覆蓋則原內(nèi)容被覆蓋,但加上但加上append=TRUE可以不覆蓋原文件而是在末尾附加可以不覆蓋原文件而是在末尾附加. 程序控制結(jié)構(gòu)程序控制結(jié)構(gòu)1.分支結(jié)構(gòu)分支結(jié)構(gòu)if(條件條件) 表達(dá)式表達(dá)式或或if(條件條件)表達(dá)式表達(dá)式1 else 表達(dá)式表達(dá)式2例如例如:if(any(xn=4;x=matrix(0,nrow=4,ncol=4)for(i in 1:n) for(j in 1:n) xi,j=1/(i+j-1) x ,1 ,2 ,3 ,41, 1.0000000 0.5000000 0.3333333 0.25

46、000002, 0.5000000 0.3333333 0.2500000 0.20000003, 0.3333333 0.2500000 0.2000000 0.16666674, 0.2500000 0.2000000 0.1666667 0.1428571(2)while循環(huán)循環(huán)while(condtion)expr當(dāng)條件當(dāng)條件condtion成立成立,則執(zhí)行表達(dá)式則執(zhí)行表達(dá)式expr.例如編例如編寫一個(gè)計(jì)算寫一個(gè)計(jì)算100以內(nèi)的以內(nèi)的Fibonacci數(shù)數(shù)f=1;f2=1;i=1while(fi+fi+1f11 1 2 3 5 8 13 21 34 55 89 14413 233 37

47、7 610 987(3)repeat循環(huán)循環(huán)repeat exprrepeat循環(huán)依賴循環(huán)依賴break語句跳出循環(huán)語句跳出循環(huán).例如用例如用repeat循環(huán)編寫一個(gè)計(jì)算循環(huán)編寫一個(gè)計(jì)算100以內(nèi)的以內(nèi)的Fibonacci數(shù)數(shù)f=1;f2=1;i=1repeat fi+2=fi+fi+1 i=i+1if(fi+fi+1=1000)break f11 1 2 3 5 8 13 21 34 55 89 14413 233 377 610 987三個(gè)例子三個(gè)例子myfn1- function(obs=10,n=100) x- rep(NA,100) for (i in 1:n) tmp - runi

48、f(obs) xi - mean(tmp) list(mn=mean(x),std=sd(x)Myfn1() myfn2- function(obs=10) x - runif(obs) while(mean(x) 0.45) obs - 2*obs x - runif(obs) list(mn=mean(x),std=sd(x),obs=obs) myfn2()myfn3- function(obs=10) repeat x = 0.45) break obs f=function(x) x+exp(x)f(3.5)例子例子 使用使用gamma函數(shù)求函數(shù)求n!factorial = func

49、tion(n) + if (n=0) gamma(n+1) + else print(“Please input a positive integer!) + factorial(6) factorial(-6)Choose(10,5) #求組合值求組合值fzero=function(f,a,b,eps=1e-5) if(f(a)*f(b)0) list(fail=“finding root is fail!”) else repeat if(abs(b-a)eps)break x=(a+b)/2 if(f(a)*f(x) f=function(x)x3-x-1 fzero(f,1,2)$ro

50、ot1 1.324718$fun1 -1.405875e-05 R軟件有很強(qiáng)的圖形功能,可用簡單的函數(shù)調(diào)用,軟件有很強(qiáng)的圖形功能,可用簡單的函數(shù)調(diào)用,迅速作出數(shù)據(jù)的各種圖形。迅速作出數(shù)據(jù)的各種圖形。比如:有一個(gè)班級(jí)的數(shù)據(jù)存貯在比如:有一個(gè)班級(jí)的數(shù)據(jù)存貯在c:/work/class01.txtc1=read.table(c:/work/class01.txt)colnames(c1)=c(Name,Sex,Age,Weight,Height)attach(c1)#建立連接,方便引用變量建立連接,方便引用變量plot(Height)畫出身高的散點(diǎn)圖畫出身高的散點(diǎn)圖plot(Sex)畫出性別的頻數(shù)條

51、形圖畫出性別的頻數(shù)條形圖 圖形初階常用的繪圖函數(shù)常用的繪圖函數(shù)plot().也可作兩個(gè)變量也可作兩個(gè)變量x與與y的散點(diǎn)的散點(diǎn)圖圖plot(Height,Weight,main=體重對(duì)身高的回歸體重對(duì)身高的回歸,xlab=身高身高,ylab=體重體重)plot(-50):50/25,(-50):50/25)3,type=l)表示畫表示畫連線圖連線圖stem(Height)畫莖葉圖畫莖葉圖boxplot(Weight)#繪制盒形圖,可看出數(shù)據(jù)的大體繪制盒形圖,可看出數(shù)據(jù)的大體分布,中間粗體線是中位數(shù),其它的有最小值,最分布,中間粗體線是中位數(shù),其它的有最小值,最大值,大值,1/4分位數(shù),分位數(shù),3

52、/4分位數(shù)分位數(shù)hist(Weight)#繪制直方圖繪制直方圖fit1=lm(WeightHeight)#求體重對(duì)身高的回歸求體重對(duì)身高的回歸p1=predict(fit1,c1)對(duì)數(shù)據(jù)對(duì)數(shù)據(jù)c1進(jìn)行預(yù)測進(jìn)行預(yù)測boxplot(list(體重體重=Weight,預(yù)報(bào)預(yù)報(bào)=p1)畫出盒畫出盒形圖形圖函數(shù)函數(shù)qqnorm(),qqline()提供了繪畫正態(tài)提供了繪畫正態(tài)QQ圖和相圖和相應(yīng)的直線的方法應(yīng)的直線的方法qqnorm(Weight)qqnorm函數(shù)的用法函數(shù)的用法qqnorm(y,ylim,main=Normal Q-Q Plot,xlab=,Ylab=,plot.it=TRUE)qqli

53、ne(Weight)Plot通常在一個(gè)窗口出現(xiàn)通常在一個(gè)窗口出現(xiàn),根據(jù)需要自動(dòng)打開根據(jù)需要自動(dòng)打開.有時(shí)需要同時(shí)打開兩個(gè)圖形窗口有時(shí)需要同時(shí)打開兩個(gè)圖形窗口,可用可用dev.new()我們能夠在窗口上保存圖像我們能夠在窗口上保存圖像,或者用如下命令保存或者用如下命令保存postscript(myfile.ps)#保存其他圖形格保存其他圖形格#式的式的命令有命令有jpeg(),bmp(),png(),tiff()plot(1:10)dev.off()I.高水平繪圖函數(shù)高水平繪圖函數(shù)1.plot()(1)plot(x,y)#x,y為向量,生成為向量,生成y關(guān)于關(guān)于x的散點(diǎn)圖的散點(diǎn)圖(2)plot(

54、x)#x為時(shí)間序列為時(shí)間序列(3)plot(f)#f為因子,生成為因子,生成f的直方圖的直方圖 plot(f,y)#f為因子為因子,y為向量為向量,生成生成y關(guān)于關(guān)于f水平的盒水平的盒形圖形圖(4)plot(df)#df為數(shù)據(jù)框?yàn)閿?shù)據(jù)框 plot(expr)#expr為對(duì)象名稱的表達(dá)式為對(duì)象名稱的表達(dá)式(如如:a+b+c) plot(yexpr)#y為任意一個(gè)對(duì)象為任意一個(gè)對(duì)象例如例如:attach(c1)plot(c1)#三項(xiàng)指標(biāo)構(gòu)成的散點(diǎn)圖三項(xiàng)指標(biāo)構(gòu)成的散點(diǎn)圖plot(Age+Height)#身高與年齡的散點(diǎn)圖身高與年齡的散點(diǎn)圖plot(WeightAge+Height)#繪出兩張散點(diǎn)圖繪

55、出兩張散點(diǎn)圖,一張一張是體重與年齡的是體重與年齡的,一張是體重與身高一張是體重與身高(5)coplot()函數(shù)函數(shù)coplot(WeightHeight|Age)#繪出按年齡段給出繪出按年齡段給出體重與身高的散點(diǎn)圖體重與身高的散點(diǎn)圖2.高水平繪圖中的命令高水平繪圖中的命令(1)圖中的邏輯命令圖中的邏輯命令 add=TRUE表示在所繪圖在原圖上加圖表示在所繪圖在原圖上加圖,缺省為缺省為add=FALSE即新圖替換舊圖即新圖替換舊圖axes=FALSE表示所繪圖沒有坐標(biāo)軸表示所繪圖沒有坐標(biāo)軸,默認(rèn)默認(rèn)axes=TRUE(2)Type命令命令type=“p”#繪制散點(diǎn)圖繪制散點(diǎn)圖(缺省值缺省值)ty

56、pe=“l(fā)”#繪制實(shí)線繪制實(shí)線type=“b” #畫點(diǎn)和線畫點(diǎn)和線type=“o” #實(shí)線通過所有的點(diǎn)實(shí)線通過所有的點(diǎn)type=“h” #繪出點(diǎn)到繪出點(diǎn)到x軸的豎線軸的豎線type=“s”or “S” #繪出階梯形曲線繪出階梯形曲線type=“n” #不繪任何點(diǎn)和曲線不繪任何點(diǎn)和曲線(3)圖中的字符串圖中的字符串 axes=FALSE#不畫坐標(biāo)不畫坐標(biāo),默認(rèn)默認(rèn)xlab=字符串字符串,其字符串的內(nèi)容是其字符串的內(nèi)容是x軸的說明軸的說明,ylab=字字符串意義與前面相同符串意義與前面相同,默認(rèn)是變量名默認(rèn)是變量名main=字符串字符串,字字符串內(nèi)容是圖的說明符串內(nèi)容是圖的說明,出現(xiàn)在圖的正上方出

57、現(xiàn)在圖的正上方.sub=字符串字符串,副標(biāo)題副標(biāo)題,出現(xiàn)在出現(xiàn)在x軸的正下方軸的正下方,默認(rèn)為空默認(rèn)為空xlim=c(lo,hi),ylim=c(lo,hi)#坐標(biāo)軸的范圍坐標(biāo)軸的范圍II.低水平作圖函數(shù)低水平作圖函數(shù)1.加點(diǎn)和線的函數(shù)加點(diǎn)和線的函數(shù)points()#在已有圖形上加點(diǎn)在已有圖形上加點(diǎn),參數(shù)參數(shù)pch為畫出指定的字為畫出指定的字符符,可查看幫助可查看幫助.points(x,y)與與plot(x,y)作用一樣作用一樣lines()#在已有圖上加直線在已有圖上加直線,lines(x,y)與與plot(x,y,type=“l(fā)”)類似類似,線的類型由參數(shù)線的類型由參數(shù)lty=n決定決定,

58、在在help(par)中查看中查看lty2.在點(diǎn)處加標(biāo)記在點(diǎn)處加標(biāo)記函數(shù)函數(shù)text()是在圖上加標(biāo)記是在圖上加標(biāo)記,格式為格式為text(x,y,labels,)#x,y是數(shù)據(jù)形向量是數(shù)據(jù)形向量.labels可以是整數(shù)可以是整數(shù),也可是字符串也可是字符串,缺省是缺省是labels=1:length(x)如如:plot(Weight,Height,type=n)text(Weight,Height)legend(x,y,legend,)#在制定位置給出一個(gè)盒子對(duì)圖在制定位置給出一個(gè)盒子對(duì)圖形進(jìn)行解釋形進(jìn)行解釋,legend是標(biāo)簽字符串向量其他參數(shù)是標(biāo)簽字符串向量其他參數(shù)lty=,lwd=,co

59、l=,fill=,angle=,density,pchlocator(n,type)#在鼠標(biāo)點(diǎn)擊的地方做標(biāo)記在鼠標(biāo)點(diǎn)擊的地方做標(biāo)記,type為做標(biāo)記的類型為做標(biāo)記的類型(點(diǎn)或線點(diǎn)或線),右鍵選終止右鍵選終止identify(x,y,labels)#在制定的點(diǎn)在制定的點(diǎn)x,y處做標(biāo)記處做標(biāo)記,默認(rèn)為默認(rèn)為1:length(x).見見demo4.23.在圖上加直線在圖上加直線(1)abline(a,b)#表示畫直線表示畫直線y=a+bx(2)abline(h=y)#表示畫出一條過所有點(diǎn)的水平直線表示畫出一條過所有點(diǎn)的水平直線(3)abline(v=x)#表示畫出一條過所有點(diǎn)的豎線表示畫出一條過所有

60、點(diǎn)的豎線(4)abline(lm.obj)#表示畫出線型模型得到的線型方程表示畫出線型模型得到的線型方程(5)polygon(x,y,)#以數(shù)據(jù)以數(shù)據(jù)(x,y)為坐標(biāo)為坐標(biāo),依次連接所有的依次連接所有的點(diǎn)點(diǎn), 繪出多邊形繪出多邊形,此時(shí)與此時(shí)與plot(x,y,type=l)功能相似功能相似4.在圖上加標(biāo)記在圖上加標(biāo)記,說明或其它內(nèi)容說明或其它內(nèi)容(1)title(main=“Main Title”,sub=“sub title”)加上圖的題目和子圖的題目加上圖的題目和子圖的題目,主題目加在頂部主題目加在頂部,子題目加子題目加在底部在底部(2)axis(side,)side是邊是邊,side=1表示所加內(nèi)容放在圖的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論