版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
R的語(yǔ)法與數(shù)據(jù)結(jié)構(gòu)語(yǔ)法符號(hào)>命令或運(yùn)算提示符+續(xù)行符基本算術(shù)運(yùn)算+ 加號(hào)-減號(hào)* 乘號(hào)/ 除號(hào)^ 乘方賦值符=或<-3/4/20231統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!求助符?help()例子:>3+5>3-5>3/5>3^5>x=5>?plot>help(plot)3/4/20232統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!向量向量是R中最為基本的類(lèi)型一個(gè)向量中元素的類(lèi)型必須相同,包括數(shù)值型整型單精度實(shí)型雙精度實(shí)型邏輯型復(fù)值型字符型3/4/20233統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!建立向量的方法(函數(shù))seq()或:若向量(序列)具有較為簡(jiǎn)單的規(guī)律rep()若向量(序列)具有較為復(fù)雜的規(guī)律c()若向量(序列)沒(méi)有什么規(guī)律例子:>1:10>seq(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)3/4/20234統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!向量的下標(biāo)(index)與向量子集(元素)的提取正的下標(biāo)提取向量中對(duì)應(yīng)的元素負(fù)的下標(biāo)去掉向量中對(duì)應(yīng)的元素邏輯運(yùn)算提出向量中元素的值滿(mǎn)足條件的元素注:R中向量的下標(biāo)從1開(kāi)始,這與通常的統(tǒng)計(jì)或數(shù)學(xué)軟件一致而象C語(yǔ)言等計(jì)算機(jī)高級(jí)語(yǔ)言的向量下標(biāo)則從0開(kāi)始!例子:>x=c(42,7,64,9)>x[1]>x[-2]>x[c(1,4)]3/4/20235統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!數(shù)據(jù)框架(dataframe)許多數(shù)據(jù)集是數(shù)據(jù)框架的形式出現(xiàn)一個(gè)數(shù)據(jù)框架就是將許多向量組合起來(lái)的一個(gè)對(duì)象,它是二維的,通常其列表示變量,其行表示觀(guān)測(cè)。建立數(shù)據(jù)框架的方法(函數(shù))若你的數(shù)據(jù)本身保存在一個(gè)文件中,則可以使用read.table()僅接受帶有分界符的ASCII數(shù)據(jù)如果數(shù)據(jù)是電子報(bào)表的形式,則采用下面的兩種變型read.csv()先將數(shù)據(jù)另存為帶逗號(hào)的數(shù)據(jù)(Comma
Seperatedvalues)read.delim()先將數(shù)據(jù)另存為用tab作為分界符的數(shù)據(jù)注:若數(shù)據(jù)集很大(如1,000,000觀(guān)測(cè)x200變量),則可由
ODBC聯(lián)接由數(shù)據(jù)庫(kù)讀入.3/4/20236統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!數(shù)據(jù)框架子集的提出取格式foo[row,column]
其中foo 數(shù)據(jù)框架的名稱(chēng)
row 需要提出取的行號(hào)
column需要提出取的行號(hào)例子(續(xù)上一例)
>z.df[1,]#提取個(gè)觀(guān)測(cè)(行)INDEXVALUE1142>z.df[,1]#提取列(個(gè)變量的值)[1]1234>z.df[2,1]#提取第二行列的元素[1]23/4/20237統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!列表子集的提出取提取一個(gè)子對(duì)象如foo的x,下面三種方式等價(jià)
>foo$x
>foo[1]
>foo[[1]]
例子>foo$y>foo[2]>foo[[2]]>foo[[1]][2]>foo$y[2]>foo$y[4]3/4/20238統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!循環(huán)(loops)for()#若知道終止條件
for(變量in向量)表達(dá)式while()#若無(wú)法知道運(yùn)行次數(shù)
while(條件)表達(dá)式兩者通常可以轉(zhuǎn)換
例1—試比較兩種方法
>for(iin1:5)print(1:i)
>i=1
>while(i<=5){
+print(1:i)
+i=i+1
+}3/4/20239統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)! >n=3044 >a=c(rep(1,2*n),rep(2,2*n)) >t=c(rep(1,n),rep(2,n),rep(2,n),rep(1,n)) >g=rep(rep(1:1522,rep(2,1522)),4) >y=rnorm(4*n,mean=4.13,sd=0.75) >ybar=data.frame(A=factor(a),G=factor(g), + T=factor(t),Intensity=y) >attach(ybar) >ybar[1:10,]#查看ybar的前10行 >res.mat=matrix(0,1522,8,byrow=TRUE) >coef.mat=matrix(0,1522,4,byrow=TRUE) >for(iin1:1522){ + gene.aov=aov(Intensity~A+T+A*T, +sub=G==i) +res.mat[i,]=residuals(gene.aov)#保存ANOVA分析的殘差 +coef.mat[i,]=coef(gene.aov)#保存ANOVA分析的方差系數(shù) +} >res.mat[1:10,] #查看殘差的前10行>coef.mat[1:10,] #查看方差系數(shù)的前10行3/4/202310統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!函數(shù)函數(shù)是一系列語(yǔ)句的組合,在R中可以寫(xiě)出自己的函數(shù)形式:變量名=function(變量列表)函數(shù)體函數(shù)引用:變量名(變量的值)函數(shù)可以遞歸引用,但不提倡!例子–使用gamma函數(shù)求n!
>factorial=function(n){+if(n>=0)gamma(n+1)+elseprint(“Pleaseinputapositiveinteger!")+}>factorial(6)>factorial(-6)3/4/202311統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!R中的編程編程的重要性一個(gè)統(tǒng)計(jì)軟件(包)應(yīng)該包羅萬(wàn)象—所有統(tǒng)計(jì)方法或技術(shù),可以完成所有的任務(wù)??這是一種錯(cuò)誤的觀(guān)點(diǎn)?。√F??!費(fèi)時(shí)??!SAS是一個(gè)世界上最為優(yōu)秀的統(tǒng)計(jì)分析軟件之一,但……??!當(dāng)然SAS具體編程能力,而SPSS更糟!通過(guò)編程可以實(shí)現(xiàn)(開(kāi)發(fā))滿(mǎn)足自己需要的函數(shù)或宏包3/4/202312統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!例子–縮進(jìn)>for(iin1:1522){+ gene.aov<-aov(Intensity~A+T+A*T,+ sub=G==i)+res.mat[i,]<-residuals(gene.aov)+coef.mat[i,]<-coef(gene.aov)+}或>for(iin1:1522)>{+gene.aov<-aov(Intensity~A+T+A*T,+ sub=G==i)+res.mat[i,]<-residuals(gene.aov)+coef.mat[i,]<-coef(gene.aov)+}3/4/202313統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!向量運(yùn)算中的循環(huán)法則(recyclingrule)>1:2+1:4>1:4+1:73/4/202314統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!>x>10 #值大于10的元素邏輯值[1]TRUEFALSETRUEFALSE>x[x>10]#值大于10的元素[1]4264>x[x<40&x>10]>#產(chǎn)生(0,1)上100個(gè)均勻分布隨機(jī)數(shù)>y=runif(100,min=0,max=1)>sum(y<0.5)#值小于0.5的元素的個(gè)數(shù)[1]47>sum(y[y<0.5])#值小于0.5的元素的值的和[1]10.847673/4/202315統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!若你在R中建立了一些向量并試圖想由它們生成框架,則可以使用data.frame(),但需要同時(shí)cbind().例子:>x=c(42,7,64,9)>y=1:4>z.df=data.frame(cbind(INDEX=y,VALUE=x))>z.df INDEX VALUE1 1 422 2 73 3 644 4 9注.df只是為了提醒自己z.df是一個(gè)數(shù)據(jù)框架
INDEX和VALUE是重新命名的向量名字3/4/202316統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!列表(list)復(fù)雜的數(shù)據(jù)分析時(shí),僅有向量與數(shù)據(jù)框架還不夠有時(shí)需要生成包含不同類(lèi)型的對(duì)象R的列表(list)就是包含任何類(lèi)型的對(duì)象例子:>foo=list(x=1:6,y=matrix(1:4,nrow=2))>foo$x[1]123456$y[,1][,2][1,]13[2,]243/4/202317統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!條件語(yǔ)句作用:避免除零或負(fù)數(shù)的對(duì)數(shù)等數(shù)學(xué)問(wèn)題形式1:
if(條件)表達(dá)式1else表達(dá)式2形式2–常優(yōu)于形式1!
ifelse(條件,yes,no)試比較下面的三個(gè)結(jié)果:
>x=c(6:-4)>sqrt(ifelse(x>=0,x,NA))>ifelse(x>=0,sqrt(x),NA)>if(x>=0)sqrt(x)elseNA3/4/202318統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!例2–見(jiàn)Ko-KangWang’s“RProgrammingWorkshop”,pp6-8SupposewegenerateapseudoDNAmicroarrayandwewanttodoanANOVAonit.FirstwegeneratesomefactorsforArray(a),Treatments(t)andGenes(g).Thengeneratesomenormalrandomnumbersfortheloggedforegroundintensity.Thenweputintoanaov()functionforeachgene–thisiswheretheloopisgoodfor.Notethatyouwillgetdifferentanswerwhenyoutryit,becauseoftherandomnumbersgenerated.程序如下(使用for循環(huán),也可改用while循環(huán)):DNA_anova.R
注:R控制面板中顯示符號(hào)>和+,而源程序中是不需要的!3/4/202319統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!向量化(vectorization)循環(huán)(loops)很有用,但如果能將一組命令向量化,則應(yīng)盡量避免循環(huán),原因在于C是一種編譯語(yǔ)言,其效率是很高的;R則是一種解釋語(yǔ)言。在計(jì)算時(shí),通常C要比R快100倍。在R中充分使用向量化,因?yàn)镽會(huì)立即調(diào)用C進(jìn)行運(yùn)算,因而大大提高計(jì)算的效率!例子-–-見(jiàn)Ko-KangWang’s“RProgrammingWorkshop”,pp9-11(Gamma函數(shù)作圖)Vector_1.R沒(méi)有使用向量和循環(huán)的源程序Vector_2.R使用for循環(huán)改進(jìn)后的源程序Vector_3.R使用向量化后源程序3/4/202320統(tǒng)計(jì)建模與R語(yǔ)言mathth共23頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!用于處理錯(cuò)誤的函數(shù)–用于處理用戶(hù)輸入不正確的類(lèi)型而可能出現(xiàn)的錯(cuò)誤warning()若錯(cuò)誤不嚴(yán)重以至影響整個(gè)計(jì)算stop()若錯(cuò)誤可能導(dǎo)致計(jì)算中止print()顯示必要的信息formatC()數(shù)值作為字符串輸出cat()字符串聯(lián),可以插入\n(換行)及\t(tab鍵)paste()字符粘貼(非字符型自動(dòng)轉(zhuǎn)換)
例子:
>cat("R","is","agood","software.\n")>formatC(1/3,format="f",digits=4)
>formatC(1/3,format="e",digits=4)
>paste(1:12)#與as.character(1:12)等價(jià)
>paste("A",1:6,sep="")
>paste("todayis",date(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025苗木購(gòu)銷(xiāo)合同樣本
- 2025年度公司簽約帶貨主播短視頻內(nèi)容制作合同3篇
- 二零二五年度勞動(dòng)合同集合與員工績(jī)效評(píng)估合同3篇
- 二零二五年度公益性崗位勞動(dòng)合同(老年人日間照料)3篇
- 2025年度農(nóng)村個(gè)人房屋買(mǎi)賣(mài)合同附農(nóng)村集體資產(chǎn)收益權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年度農(nóng)村房屋互換與環(huán)保節(jié)能協(xié)議2篇
- 2025年度農(nóng)業(yè)勞務(wù)用工合同模板(含農(nóng)業(yè)廢棄物資源化利用技術(shù))3篇
- 新能源汽車(chē)研發(fā)價(jià)格保密協(xié)議書(shū)(2025年度)3篇
- 二零二五年度新能源出租車(chē)運(yùn)營(yíng)合作協(xié)議3篇
- 2025年度智能家電產(chǎn)品供貨協(xié)議書(shū)3篇
- GA 2139-2024警用防暴臂盾
- 招標(biāo)文件范本江蘇版
- 人教版高中地理選擇性必修1第一章地球的運(yùn)動(dòng)單元檢測(cè)含答案
- 【人民日?qǐng)?bào)】72則金句期末評(píng)語(yǔ)模板-每頁(yè)6張
- 2024年海峽出版發(fā)行集團(tuán)有限責(zé)任公司招聘筆試沖刺題(帶答案解析)
- 人民調(diào)解卷宗規(guī)范化制作說(shuō)明
- 眼視光學(xué)理論和方法智慧樹(shù)知到期末考試答案2024年
- 內(nèi)鏡下腦腫瘤切除手術(shù)
- 成人急性感染性腹瀉診療專(zhuān)家共識(shí)
- 水泥企業(yè)的個(gè)人年度工作總結(jié)
- 保險(xiǎn)公估服務(wù)行業(yè)發(fā)展史與現(xiàn)狀分析
評(píng)論
0/150
提交評(píng)論