![R初學(xué)者指南2-實(shí)例應(yīng)用_第1頁](http://file4.renrendoc.com/view/66ac8123299cf989b4d5d0d8d7b1ac19/66ac8123299cf989b4d5d0d8d7b1ac191.gif)
![R初學(xué)者指南2-實(shí)例應(yīng)用_第2頁](http://file4.renrendoc.com/view/66ac8123299cf989b4d5d0d8d7b1ac19/66ac8123299cf989b4d5d0d8d7b1ac192.gif)
![R初學(xué)者指南2-實(shí)例應(yīng)用_第3頁](http://file4.renrendoc.com/view/66ac8123299cf989b4d5d0d8d7b1ac19/66ac8123299cf989b4d5d0d8d7b1ac193.gif)
![R初學(xué)者指南2-實(shí)例應(yīng)用_第4頁](http://file4.renrendoc.com/view/66ac8123299cf989b4d5d0d8d7b1ac19/66ac8123299cf989b4d5d0d8d7b1ac194.gif)
![R初學(xué)者指南2-實(shí)例應(yīng)用_第5頁](http://file4.renrendoc.com/view/66ac8123299cf989b4d5d0d8d7b1ac19/66ac8123299cf989b4d5d0d8d7b1ac195.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
示例應(yīng)用一(視頻教程):模擬產(chǎn)生統(tǒng)計(jì)專業(yè)同學(xué)的名單(學(xué)號區(qū)分),記錄數(shù)學(xué)分析、線性代數(shù)、概率統(tǒng)計(jì)三課成績第一步:錄入信息num=seq(10378001,10378100)num//產(chǎn)生100個(gè)元素x1=round(runif(100,min=80,max=100))//用runif產(chǎn)生100個(gè)均勻分布(取到每一個(gè)數(shù)值的可能性是相同的)的隨機(jī)數(shù)(帶小數(shù)),round四舍五入,從而組成向量x1x2=round(rnorm(100,mean=80,sd=7))//rnorm產(chǎn)生100個(gè)正態(tài)分布的隨機(jī)數(shù),均值是80,標(biāo)準(zhǔn)差是7x3=round(rnorm(100,mean=83,sd=18))〃同理產(chǎn)生x3,輸出結(jié)果后發(fā)現(xiàn)有些超過了100分(因?yàn)檎龖B(tài)分布沒有上下限的概念,只有均值和標(biāo)準(zhǔn)差)x3[which(x3>100)]=100〃把超過100分的人的成績變成100,which找出超過100分的人的下標(biāo),再用下標(biāo)定位到相關(guān)元素并將其改為100第二步:合成數(shù)據(jù)框或用write.table保存到硬盤中x=data.frame(num,x1,x2,x3)〃用data.frame將4個(gè)變量合成一個(gè)數(shù)據(jù)框x中第三步:進(jìn)行計(jì)算使用mean(),colMeans(),apply()—下章介紹mean(x)[1]NA警告信息:Inmean.default(x):參數(shù)不是數(shù)值也不是邏輯值:回覆NA〃這里不能直接使用mean()函數(shù),只能對某一變量進(jìn)行求平均值,如mean(x1),mean(x2)等colMeans(x)〃對列進(jìn)行求均值,colMeans中的M必須大寫numx1x2x310378050.5090.4380.3981.66colMeans(x)[c("x1","x2","x3")]//指定顯示某列的均值x1x2x390.4380.3981.66apply(x,2,mean)//apply是對x這個(gè)數(shù)據(jù)框在行(或列)方向上做指定操作,1代表行方向,2代表列方向,綜上所述,就是在x這個(gè)數(shù)據(jù)框中在列的方向上求平均值numx1x2x310378050.5090.4380.3981.66第四步:使用apply求各科最高最低分apply(x,2,max)numx1x2x31037810010099100apply(x,2,min)numx1x2x310378001806546第五步:使用apply求出每人的總分apply(x[c("x1","x2","x3")],1,sum)〃在行的方向上求和,注意跟colMeans()的異同第六步:which.max找出總分最高的同學(xué)(找下標(biāo))
which.max(apply(x[c("x1","x2","x3")],1,sum))//求出總分最高的那個(gè)人在向量中的下標(biāo)(第74個(gè))[1]74x$num[which.max(apply(x[c("x1","x2","x3")],1,sum))]//把下標(biāo)帶回到x,x$num代表在數(shù)據(jù)框x中取num列,再取下標(biāo)為72的元素,就能確定其學(xué)號是多少[1]10378074第七步:對x1進(jìn)行直方圖分析-繪制直方圖函數(shù)hist()hist(x$x1)第八步:探索各科成績的關(guān)聯(lián)關(guān)系-散點(diǎn)圖繪制函數(shù)plotHtsG^gramof疇sd第九步:列聯(lián)表分析-列聯(lián)函數(shù)table(),柱狀圖繪制函數(shù)barplot()pie(table(x$x1))pie(table(x$x1))table(x$x1)//統(tǒng)計(jì)每個(gè)分?jǐn)?shù)有多少人(眾數(shù))80818283848586878889909192939495969798255536473553682445119910052barplot(table(x$x1))餅圖:
S6,68823981909190SO■10094S6,68823981909190SO■1009495箱線圖:箱子的上下橫線為樣本的25%和75%分位數(shù),中間的橫線為樣本的中位數(shù)上下延伸的直線稱為尾線,尾線的盡頭為最高值和最低值boxplot(x$x1,x$x2,x$x3)boxplot(x[2:4],col=c("red","green","blue"),notch=T)#將三種顏色定義為變量,notch決定缺口水平放置的箱尾圖boxplot(x$x1,x$x2,x$x3,horizontal=T)TOC\o"1-5"\h\zR-I{||I"-I—-|||…■!--「IIiii507090*星相圖:R02a莖葉圖:>stem(x$x1)#因x1是由round(runif(100,min=80,max=100))生成出來,所以..為何出現(xiàn)000000?Thedecimalpointisatthe|80|000000082|000000000084|00000000086|0000000000088|0000000090|0000000092|0000000000000094|00000096|00000000098|0000000000000000100|00stem(x$x2)#但x2由round(rnorm(100,mean=80,sd=7))生成出來,就不會像x1那樣出現(xiàn)000000Thedecimalpointis1digit(s)totherightofthe||5689|0111122222233344444444|5555566777777788888999|0000111111222233344444|555566778888889999|00001223344|9QQ圖:(回歸分析:判斷部分樣本是否服從正太分布)num=seq(10378001,10378100)x1=round(runif(100,min=80,max=100))x2=round(rnorm(100,mean=80,sd=7))x3=round(rnorm(100,mean=83,sd=18))x3[which(x3>100)]=100x=data.frame(num,x1,x2,x3)stem(x$x1)qqnorm(x1)qqline(x1)qqnorm(x2)qqline(x2)qqnorm(x3)qqline(x3)應(yīng)用實(shí)例二:循環(huán)第1步:載入數(shù)據(jù)并查看數(shù)據(jù)類型,熟悉變量名>setwd("d:/RBook")>Owls=read.table(file="Owls.txt",header=TRUE)>names(Owls)#查看變量名>str(Owls)#查看數(shù)據(jù)框中每個(gè)變量的屬性第2步:繪制散點(diǎn)圖并添加標(biāo)簽,提取一個(gè)鳥巢的數(shù)據(jù),繪出同胞協(xié)商對到達(dá)到達(dá)時(shí)間的散點(diǎn)圖>unique(Owls$Nest)#提取一個(gè)鳥巢的數(shù)據(jù)前,先要弄清楚鳥巢的名字,即鳥巢名字的截面分別有哪些Owls.ATV=Owls[Owls$Nest=='AutavauxTV',]#定義一個(gè)名為Owls.ATV的數(shù)據(jù)框,使得該數(shù)據(jù)框中的行是原有數(shù)據(jù)框Owls中Nest向量名為AutavauxTV所在的行Owls.ATV#查看新的數(shù)據(jù)框中的值NestFoodTreatmentSexParentArrivalTimeSiblingNegotiationBroodSizeNegPerChickAutavauxTVDeprivedMale22.25450.8AutavauxTVSatiatedMale22.38050.0:JDOoo?°oooogLOonwcoo0」no>(QLImqu.91.s1062n#為了繪制散點(diǎn)圖,需提取Owls.ATV中ArrivalTime和NegPerChick向量>plot(x=Owls.ATV$ArrivalTime,#提取作為x軸的數(shù)據(jù)(為ArrivalTime)y=Owls.ATV$NegPerChick,#提取作為y軸的數(shù)據(jù)(為NegPerChick」no>(QLImqu.91.s1062n#左圖為變量ArrivalTime即鳥巢中到達(dá)時(shí)間對每次訪問協(xié)商行為NegPerChick的散點(diǎn)圖第3步:設(shè)計(jì)通用代碼同理,對第二個(gè)截面也就是第二個(gè)鳥巢Bochet作同樣的操作,只需將主標(biāo)題名稱、數(shù)據(jù)框名稱和實(shí)際的數(shù)據(jù)替換掉就可以了,>Owls.Bot=Owls[Owls$Nest=='Bochet',]°oc□cooo?coccao」no>cLI①q匚.2le405QN>plot(x=Owls.Bot$ArrivalTime,y=Owls.Bot$NegPerChick,xlab="ArrivalTime",ylab="Negotiationbehaviour",main="Bochet")#但是這是一個(gè)繁瑣的操作,通過設(shè)計(jì)一個(gè)通用的代碼有助于化簡這種繁瑣的輸入方式并減少出錯(cuò)率,在這里,只需將變動(dòng)的那一部分也就是」no>cLI①q匚.2le405QNNest.i="Bochet"#把要替換的部分定義為一個(gè)變量Owls.i=Owls[Owls$Nest==Nest.i,]#即使換了一個(gè)鳥巢也無需更改此處的變量>plot(x=Owls.i$ArrivalTime,y=Owls.i$NegPerChick,xlab="ArrivalTime",ylab="Negotiationbehaviour",main=Nest.i)第四步:將其輸出的圖像保存為jpg文件setwd("d:/RBook")Owls=read.table(file="Owls.txt",header=TRUE)Nest.i="Bochet"Owls.i=Owls[Owls$Nest==Nest.i,]YourFileName=paste(Nest.i,".jpg",sep="")#創(chuàng)建一個(gè)文件名,用paste命令來連接“Bochet”和“jpg”這兩個(gè)字符串,并且之間不加空格,paste命令的輸出就是一個(gè)可以被用來作為文件名的字符串,可以使用一個(gè)變量來存儲它并將其應(yīng)用到j(luò)peg命令中,使用YourFileName作為文件名,R就將介于jpeg和dev.off命令之間的繪圖結(jié)果存儲到這個(gè)文件中>jpeg(file=YourFileName)#打開一個(gè)jpeg文件>plot(x=Owls.i$ArrivalTime,y=Owls.i$NegPerChick,xlab="ArrivalTime",ylab="Negotiationbehaviour",main=Nest.i)#在這個(gè)文件中繪制圖像dev.off()#將jpeg文件關(guān)閉,只有在完成繪圖工作后才會生成一個(gè).jpeg文件nulldevice1第五步:使用loop命令構(gòu)造循環(huán)在完成上一步后,仍需將變量名Nest.i更改27次,這將由loop命令完成,在上一步驟的代碼中加入for循環(huán)setwd("d:/RBook")Owls=read.table(file="Owls.txt",header=TRUE)#從Rbook文件夾里讀取數(shù)據(jù)AllNests=unique(Owls$Nest)#使用unique函數(shù)確定Owls中Nest向量中的唯一值,并把這些唯一值存放到一個(gè)新的名為AllNests的向量中作為生成.jpeg文件的文件名for(iin1:27){#在鍵入“{”后回車再鍵入往下的代碼,光標(biāo)就會自動(dòng)顯示為+號,表示代碼還沒結(jié)束繼續(xù)輸入+setwd("d:/RBook/Graphs6.2")#指定所要輸出的文件夾名稱,這里是Graphs6.2文件夾#這里就不像上面那樣重新定義Nest.i=AllNests[i]來替代原來的Nest.i="Bochet"而是直接用AllNests[i]了,令A(yù)llNests[i]與第i個(gè)鳥巢的名字是等價(jià)的+Owls.i=Owls[Owls$Nest==AllNests[il.]#以下代碼在前面的步驟中已討論+YourFileName=paste(AllNests[i].".jpg",sep="")#生成一個(gè)名為YourFileName后加.jpeg的文件+jpeg(file=YourFileName)#打開這個(gè).jpeg文件,并作圖+plot(x=Owls.i$ArrivalTime,y=Owls.i$NegPerChick,xlab="ArrivalTime",ylab="Negotiationbehaviour",main=AllNests[i])+dev.off()+}#在Graphs6.2文件夾中就可以得到27個(gè).jpeg文件了G田+dev.off()+}#在Graphs6.2文件夾中就可以得到27個(gè).jpeg文件了G田ph話.2t、.屯凸■電駐r放住MM口。?BBooi■好侃護(hù)初佻Mb汕柑pflLwwjosMumtjpgPdjrreiPBXliyjpv*商*w上阪13榊旳曲俺知EHdblOE.JpQP9&xnei|pQ吹1刪>■ZiaMTBt?話怎?jflE*巨芒哄W£.圉片-5traJVTfc*■JiH齊嗣示例應(yīng)用三:使用ifelse句型來避免檢查大量的if指令第1步:載入并評估數(shù)據(jù)>setwd("d:/RBook")>Benthic=read.table(file="RIKZ.txt",header=TRUE)>Species=Benthic[,2:76]#重新選取第2到76列的物種數(shù)據(jù)>n=dim(Species)>n[1]4575#查看數(shù)據(jù)框Spcies的行數(shù)和列數(shù)第2步:每個(gè)站點(diǎn)的生物總量:單純統(tǒng)計(jì)!sum(Species[1,],na.rm=TRUE)[1]143#通過Spcies[1,]來獲取第一行的所有列即站點(diǎn)1的全部生物數(shù)量之和為了避免將這個(gè)命令重復(fù)寫45遍,因此構(gòu)造一個(gè)循環(huán)來計(jì)算每個(gè)站點(diǎn)的總數(shù)TA=vector(length=n[1])#必須首先用vecto指令將TA定義為一個(gè)長度為45的向量,否則TA[i]將會報(bào)錯(cuò)for(iin1:n[1]){#需確定循環(huán)中的變量i必須在1到45之間,比如TA[46]就是無定義的+TA[i]=sum(Species[i,],na.rm=TRUE)#像上述那樣獲取每一行的總數(shù)并將其賦值到TA[沖+}TA[1]143527019967944241192211483514738101477384864229[24]04333346746571110235269927850193423011不需要構(gòu)造循環(huán)體,直接使用rowSums命令計(jì)算每一行的和TA=rowSums(Species,na.rm=TRUE)TA#同樣能得到相同的結(jié)果第3步:每個(gè)站點(diǎn)的豐富度(所擁有的物種數(shù)量):判斷+統(tǒng)計(jì)01數(shù)量!由sum(Species[1,],na.rm=TRUE)可以得知某個(gè)站點(diǎn)的全部生物數(shù)量的總和(站點(diǎn)一的所有列相加)現(xiàn)在,想統(tǒng)計(jì)站點(diǎn)1的物種數(shù)量sum(Species[1,]>0,na.rm=TRUE)[1]11#在站點(diǎn)1中有11個(gè)不同的物種sum#Species[1,]>0為一個(gè)判斷型的語句,生成了一個(gè)長度為75的布爾向量(元素就是T和F),當(dāng)加入“>0”后,函數(shù)不再是統(tǒng)計(jì)站點(diǎn)1所有物種數(shù)量的總和,而是將TRUE轉(zhuǎn)化為1,FALSE轉(zhuǎn)化為0,然后對其進(jìn)行相加為了計(jì)算每個(gè)站點(diǎn)的豐富度,類似地,同樣構(gòu)造一個(gè)循環(huán)sumRichness=vector(length=n[1])for(iin1:n[1]){+Richness[i]=sum(Species[i,]>0,na.rm=TRUE)+}Richness[1]111013111089819176143313314322606541642[32]113435750711302#同樣也可以使用rowSums,同樣能得出相同的結(jié)果Richness=rowSums(Species>0,na.rm=TRUE)Richness第4步:每個(gè)站點(diǎn)的香農(nóng)指數(shù)>RS=rowSums(Species,na.rm=TRUE)#得到每一個(gè)站點(diǎn)的物種數(shù)量>prop=Species/RS#將Species中的每個(gè)元素除以RS并將結(jié)果存儲到prop中>prop#數(shù)據(jù)量較大在此不列出>H=-rowSums(prop*log10(prop),na.rm=TRUE)>H[1]0.761906390.720972240.846735240.530839260.744139390.125131640.401920060.29160667第5步:結(jié)合代碼并將代碼置入到函數(shù)中通過一個(gè)選擇,把之前的所得到的三種指數(shù)的代碼結(jié)合起來,基于rowSums函數(shù)Index.function=function(Species,choice){#定義一個(gè)可選擇的函數(shù),其中if(choice=="TA"){Index=rowSums(Species,na.rm=TRUE)}if(choice=="Richness"){Index=rowSums(Species>0,na.rm=TRUE)}if(choice=="H"){RS=rowSums(Species,na.rm=TRUE)prop=Species/RSlndex=-rowSums(prop*log10(prop),na.rm=TRUE)}#跟之前的一樣,將三段代碼融到函數(shù)中,并賦到Index中l(wèi)ist(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人居間協(xié)議范文(2篇)
- 2025年個(gè)人貨運(yùn)汽車租賃合同模板(2篇)
- 2025年產(chǎn)品經(jīng)銷協(xié)議標(biāo)準(zhǔn)范文(2篇)
- 2025年五年級班主任期末個(gè)人工作總結(jié)模版(2篇)
- 2025年產(chǎn)品供貨合同格式范文(2篇)
- 智慧小鎮(zhèn)用地中介合同范本
- 辦公大樓石材運(yùn)送合同模板
- 2025年度安防設(shè)備展覽會現(xiàn)場展位安保合同
- 婚慶服務(wù)居間合同
- 教育設(shè)施改造貸款居間合同
- RB/T 101-2013能源管理體系電子信息企業(yè)認(rèn)證要求
- GB/T 4513.7-2017不定形耐火材料第7部分:預(yù)制件的測定
- GB/T 10205-2009磷酸一銨、磷酸二銨
- 公司財(cái)務(wù)制度及流程
- 高支模專項(xiàng)施工方案(專家論證)
- 深圳版初中英語單詞匯總
- 健康養(yǎng)生,快樂生活課件
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- MDD指令附錄一 基本要求檢查表2013版
- 駱駝祥子1一24章批注
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計(jì))
評論
0/150
提交評論