版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章單模式數(shù)據(jù)結(jié)構(gòu)01.向量02.矩陣03.數(shù)組04.單模式數(shù)據(jù)對象之間的關(guān)系目錄向量PART01WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.1.1獲取向量長度使用函數(shù)length()獲取向量的長度。尤其是在寫一般函數(shù)的代碼時,經(jīng)常需要知道向量參數(shù)的長度。>x<-c(1,5,7)>length(x)[1]3WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.1.2循環(huán)補齊在對兩個向量使用運算符時,如果要求這兩個向量具有相同的長度,R會自動循環(huán)補齊,即重復較短的向量,直到它與另一個向量長度相匹配。例子中較短的向量被循環(huán)補齊,因此運算其實是像下面執(zhí)行的c(1,3,5,1,3)+c(6,0,9,23,44)。>c(1,3,5)+c(6,0,9,23,44)[1]73142447Warningmessage:Inc(1,3,5)+c(6,0,9,23,44):長的對象長度不是短的對象長度的整倍數(shù)WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.1.3索引向量1.邏輯的向量。在這種情況下索引向量必須與從中選取元素的向量具有相同的長度。在索引向量中返回值是TRUE的元素所對應的元素將被選出,返回為FALSE的值所對應的元素將被忽略。例如:>x<-c(2,NA,3)>y<-x[!is.na(x)]>y[1]23創(chuàng)建了一個名為y的對象,對象中包含x中的非缺失值,同時保持順序。如果x中包含缺失值,y的長度將小于x。WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.1.3索引向量2.正整數(shù)的向量。這種情況下索引向量中的值必須在集合{1,2,...,length(x)}中,在返回的向量中包含索引向量中指定元素,并且在結(jié)果中按照索引向量中的順序排列。索引向量的長度可以是任意,返回的向量與索引向量由相同的長度。例如,x[3]是x的第3個元素。>x<-c(2,4,6,8)>x[c(1,3)][1]26>x[2:3][1]46WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.1.3索引向量3.負整數(shù)的向量。這種索引向量的作用是把某些值去掉。例如>y<-x[-(1:5)]向量y取得了前5個元素以外的值。4.字符串的向量這種可能型只存在于擁有names屬性并由它來區(qū)分向量中元素的向量。這種情況下一個由名稱組成的子向量起到了和正整數(shù)的索引向量相同的效果。>fruit<-c(5,10,1,20)>names(fruit)<-c("orange","banana","apple","peach")>lunch<-fruit[c("apple","orange")]矩陣PART02WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.2.1創(chuàng)建矩陣矩陣的行和列的下標都是從1開始,矩陣在R中是按列存儲的,也就是說先存儲第一列,再存儲第二列,以此類推。創(chuàng)建矩陣的方法之一就是使用matrix()函數(shù):>x<-matrix(c(1,2,3,4,5,6),nrow=2,ncol=3)>x[,1][,2][,3][1,]135[2,]246WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.2.1創(chuàng)建矩陣另外一種創(chuàng)建矩陣的方法是為矩陣的每一個元素賦值:先聲明一個矩陣,并且給出行數(shù)和列數(shù),然后再為矩陣的每一個元素賦值。如下例所示:>y<-matrix(nrow=2,ncol=3)>y[1,1]<-1>y[2,1]<-2>y[1,2]<-3>y[2,2]<-4>y[1,3]<-5>y[2,3]<-6>y[,1][,2][,3][1,]135[2,]246WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.2.2矩陣屬性1.矩陣運算矩陣A的轉(zhuǎn)置:t(A)。矩陣A的求逆:solve(A)。矩陣A與矩陣B相乘:A%*%B。A*B是逐個元素的乘法運算,然而A%*%B是矩陣乘法。所有這些函數(shù)返回一個矩陣。一個n階對角(單位)矩陣:diag(n)。WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.2.2矩陣屬性2.給矩陣的行和列賦名字在R中我們可以把名稱賦值給一個矩陣的行和列,這可以增強矩陣的可讀性。每個矩陣都有一個rownames屬性和一個colnames屬性。把字符串向量賦值給矩陣的相應屬性的語法:>rownames(mat)<-c(“rowname”,“rowname”,...“rowname”)>colnames(mat)<-c(“colname”,“colname”,...“colname”)給矩陣x的行和列賦名字,如下所示:>colnames(x)<-c("num","name","score")>rownames(x)<-c("zhangsan","lisi")>xnumnamescorezhangsan135lisi246WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.2.3索引矩陣索引向量的運算方法也同樣適用于矩陣。例如:>y[,1][,2][,3][1,]135[2,]246>y[,2:3][,1][,2][1,]35[2,]46這里提取了矩陣y中第2、3列的所有元素組成了一個子矩陣。>y[1,][1]135上面的例子提取了矩陣y的一行。數(shù)組PART03WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.3.1創(chuàng)建數(shù)組1.設置dim屬性生成數(shù)組將向量轉(zhuǎn)換成一個n維數(shù)組,方法是用dim函數(shù)將相應的維度屬性賦給該向量。具體來說,就是把這個向量的dim屬性設置為n。R會將該向量中的元素重新排列到n維。每一個維度上可以包含的行數(shù)。例如,可以將向量m重新組織成一個數(shù)組。>m<-c(1:20)>m[1]123456789101112131415161718[19]1920>dim(m)<-c(2,2,5)WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.3.1創(chuàng)建數(shù)組2.array()函數(shù)生成數(shù)組array()函數(shù)用來生成一個n維數(shù)組。比如說,可以利用array函數(shù)將數(shù)值排列到一個三維立方體空間中,或者一個四維、五維或n維的超立方體空間中。在R語言中,數(shù)組使用array()函數(shù)創(chuàng)建。array()函數(shù)的語法格式如下所示:array(data=NA,dim=length(data),dimnames=NULL)WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.3.1創(chuàng)建數(shù)組2.array()函數(shù)生成數(shù)組array()函數(shù)用來生成一個n維數(shù)組。比如說,可以利用array函數(shù)將數(shù)值排列到一個三維立方體空間中,或者一個四維、五維或n維的超立方體空間中。在R語言中,數(shù)組使用array()函數(shù)創(chuàng)建。array()函數(shù)的語法格式如下所示:array(data=NA,dim=length(data),dimnames=NULL)WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.3.1創(chuàng)建數(shù)組其中,data為創(chuàng)建數(shù)組的元素;dim為數(shù)組的維數(shù),是數(shù)值型向量;dimnames是各維度中名稱標簽列表。舉例說明:arr1<-array(1:10)#相當于1維的向量:12345678910。arr2<-array(1:10,dim=c(2,5))#相當于2行5列的矩陣。arr3<-array(1:24,dim=c(3,4,2))#創(chuàng)建了一個3×4×2維的數(shù)組。WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.3.2數(shù)組的屬性在創(chuàng)建數(shù)組時可以給數(shù)組的每一維的每個水平取名字:>dim1<-c("A1","A2","A3")>dim2<-c("B1","B2","B3")>dim3<-c("C1","C2")>arr4<-array(1:18,dim=c(3,3,2),dimnames=list(dim1,dim2,dim3))WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.3.3.3索引數(shù)組數(shù)組的元素可以透過中括號指定下標來存取,各個下標用逗點隔開。例如:下面舉幾個例子進行說明:arr4[2,3,1]#獲取單個元素的值:8。arr4[2,1,]#獲取第1個維度的第2個水平和第2個維度的第1個水平的所有元素值。arr4[2,,]#獲取第1個維度的第2個水平的所有組合元素值。arr4[,2,]#獲取第2個維度第2個水平的所有組合元素值。arr4["A2","B3","C2"]#通過水平名稱的組合來獲取元素值。WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.修改數(shù)組中元素的值arr4[2,3,1]<-18arr4[2,3,]<-c(110,111)除此之外,也可以利用索引向量取得指定的子數(shù)組:1arr<-array(1:25,c(5,5))2subarr<-arr[1:3,2:4]3.3.3索引數(shù)組WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.若是不指定下標,則R會選取對應下標的所有元素,例如:1arr<-array(1:25,c(5,5))2subarr2<-arr[1:3,]
子數(shù)組subarr2為
[,1][,2][,3][,4][,5][1,]16111621[2,]27121722[3,]381318233.3.3索引數(shù)組WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.若所有下標都不指定arr[,,]則表示整個數(shù)組,這與忽略下標直接使用arr效果是一樣的。如果一個多維數(shù)組只給了一個下標或索引向量,在這種情況下,R會把數(shù)組當作向量來使用,而忽略維度屬性。1arr<-array(1:8,c(2,4))2arr[3]<-103.3.3索引數(shù)組WelcomeMessageMULTIPURPOSEPRESENTATIONTEMPLATE|UNIQUEDESIGNPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.數(shù)組也可以使用索引數(shù)組的方式存取任意不規(guī)則元素集合,這種方式我們直接使用范例來說明比較清楚,首先假設我們有一個4×5的二維數(shù)組:x<-array(1:20,dim=c(4,5))x為
[,1][,2][,3][,4][,5][1,]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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院病歷信息規(guī)范管理辦法
- 高血壓患者健康管理手冊
- 公共關(guān)系職責詳細自測試題
- 親子互動“小手拉大手”活動方案
- 優(yōu)化企業(yè)提案管理流程實踐指南
- 生鮮供應鏈冷鏈物流方案
- 職場溝通技巧培訓方案及教材
- 工程造價審計與司法鑒定操作指南
- 人才培養(yǎng)方案與課程設計指導
- 2026年無人駕駛物流在智慧供應鏈創(chuàng)新應用報告
- 云南師大附中2026屆高三1月高考適應性月考卷英語(六)含答案
- 2026湖北隨州農(nóng)商銀行科技研發(fā)中心第二批人員招聘9人筆試備考試題及答案解析
- 騎行美食活動方案策劃(3篇)
- 2026年上海市松江區(qū)初三語文一模試卷(暫無答案)
- 酒精體積分數(shù)質(zhì)量分數(shù)密度對照表優(yōu)質(zhì)資料
- 落地式鋼管腳手架工程搭拆施工方案
- 辦公室節(jié)能減排措施
- 數(shù)字信號處理課程實驗教學大綱
- 2023年黑龍江省哈爾濱市中考化學試卷及解析
- 深基坑施工專項方案
- 禾川x3系列伺服說明書
評論
0/150
提交評論