R語(yǔ)言基本數(shù)據(jù)結(jié)構(gòu)(經(jīng)典)_第1頁(yè)
R語(yǔ)言基本數(shù)據(jù)結(jié)構(gòu)(經(jīng)典)_第2頁(yè)
R語(yǔ)言基本數(shù)據(jù)結(jié)構(gòu)(經(jīng)典)_第3頁(yè)
R語(yǔ)言基本數(shù)據(jù)結(jié)構(gòu)(經(jīng)典)_第4頁(yè)
R語(yǔ)言基本數(shù)據(jù)結(jié)構(gòu)(經(jīng)典)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二講 R語(yǔ)言的基本數(shù)據(jù)結(jié)構(gòu)NameIDTeam.NumDutyGrade1Grade2Grade3Grade4Grade5Wang N2007091 captainNANANANANATang MJ2007201 memberNANANANANA作業(yè)1:按下面表格的形式生成本組信息的數(shù)據(jù)框,并提交原程序.Name為字符型、ID為數(shù)字型、Team.Num為分組因子、Duty為分組因子、Grade1-5為數(shù)值型Base: is.thingsBase: recursionGraphics: HersheyGraphics: JapaneseGraphics: graphicsGraphics: i

2、mageGraphics: perspGraphics: plotmathLattice: intervalsLattice: labelsLattice: latticeLattice: panelStats: glm.vrStats: lm.glmStats: nlmStats: smooth作業(yè)2:利用sample函數(shù)設(shè)計(jì)算法,把下面16個(gè)demo公平地分配給15個(gè)組,并提交原程序一、R語(yǔ)言的對(duì)象 所有在R語(yǔ)言中可操作的各種數(shù)據(jù)及各種表達(dá)式等都叫R語(yǔ)言的操作對(duì)象。對(duì)象命名:1、對(duì)象的名字必須是以一個(gè)字母開(kāi)頭(AZ 或az),中間可以包含字母,數(shù)字(09),點(diǎn)(.)及下劃線(_);2、R對(duì)

3、對(duì)象的名字區(qū)分大小寫(xiě);3、避免用R的各種包中的既有對(duì)象名來(lái)對(duì)對(duì)象命名:例如,if、for、pi等3、可以通過(guò)輸入一個(gè)對(duì)象的名字來(lái)顯示其內(nèi)容,例如,一個(gè)名為n的對(duì)象,其內(nèi)容是數(shù)值10: n 1 10對(duì)象的產(chǎn)生、查詢及刪除1、賦值:name-”Carmen”;n1-10;n2-100;m1ls() ls(pat=“m”) ls.str() /將會(huì)展示內(nèi)存中所有對(duì)象的詳細(xì)信息 3、刪除:rm(x)刪除內(nèi)存中所有對(duì)象:rm(list=ls()注:ls()函數(shù)中的一些選項(xiàng)同樣可以運(yùn)用到 rm中來(lái)對(duì)象的基本屬性 每個(gè)對(duì)象包含很多基本屬性,常用的有對(duì)象的類(lèi)型、存儲(chǔ)類(lèi)型、對(duì)象模式、對(duì)象長(zhǎng)度、對(duì)象維度、對(duì)象名稱

4、等。數(shù)值型Numeric 如 100, 0, -4.335字符型Character 如“China”邏輯型Logical 如TRUE, FALSE因子型Factor 表示不同類(lèi)別復(fù)數(shù)型Complex 如:2 + 3i對(duì)象的類(lèi)型:mode(object)對(duì)象的長(zhǎng)度:length(object); fruit names(fruit) mode(fruit)1 numeric length(fruit)1 4對(duì)象屬性的轉(zhuǎn)換 常用對(duì)象轉(zhuǎn)化函數(shù)as.character() #轉(zhuǎn)換為字符型as.numeric() #轉(zhuǎn)換為數(shù)值型as.logical() #轉(zhuǎn)換為邏輯型plex() #轉(zhuǎn)化為復(fù)數(shù)型as.f

5、actor() #轉(zhuǎn)化為因子型methods(as) #methods包中的全部轉(zhuǎn)換函數(shù)methods(is) #methods包中全部對(duì)象類(lèi)型判別函數(shù)二、數(shù)據(jù)的創(chuàng)建三、數(shù)值向量1、規(guī)則序列xxyyx-seq(1,5,by=0.5) #序列的起點(diǎn)、終點(diǎn)、步長(zhǎng) xxrep(1,time=30) #創(chuàng)建一個(gè)所有元素都相同的向量sequence(4:5) #創(chuàng)建一系列聯(lián)系的整數(shù)序列 1 1 2 3 4 1 2 3 4 5gl(k,n) /k是水平數(shù),n是每個(gè)水平重復(fù)的次數(shù),有兩個(gè)選項(xiàng):length用來(lái)指定產(chǎn)生數(shù)據(jù)的個(gè)數(shù),labels用來(lái)指定每個(gè)水平因子的名字gl(3,5)gl(3,5.4) #?2、

6、隨機(jī)序列 R可以產(chǎn)生多種不同分布下的隨機(jī)數(shù)序列。sample(1:40,5)1 25 32 2 35 9sample(c(H,T),10,replace=T) 1 H H T H H T H H H H“ 分布函數(shù)的形式rfunc(n,p1,p2,.),其中func指概率分布函數(shù),n為生成數(shù)據(jù)的個(gè)數(shù),p1, p2, . . . 是分布的參數(shù)數(shù)值。 如:rnorm #隨機(jī)產(chǎn)生正態(tài)分布的數(shù)據(jù) rnorm(100,2,5) #mean=1,sd=5 隨機(jī)分布函數(shù)rfunc r:random 密度函數(shù)dfunc d:density 累計(jì)概率密度函數(shù)pfunc p:probability 分位數(shù)函數(shù)qf

7、unc q:quantile 3、分布函數(shù) plot(rnorm(100,2,5) x plot(x,dnorm(x),type=l)邏輯向量 邏輯向量包含TRUE、FALSE和NA(not availabe) 邏輯向量可以同數(shù)值向量一起運(yùn)算:TRUE=1,FALSE=0 SequenceNum Logicvector2.5 logicvector 錯(cuò)誤: 找不到對(duì)象logicvector Logicvector 1 FALSE FALSE TRUE TRUE c(1:3,NA)-NaData NaData 1 1 2 3 NA NaData8 NaData 1 1 2 3 NA NA NA

8、NA 8 is.na(NaData) 1 FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE字符向量 可以用兩個(gè)單引號(hào)()或兩個(gè)雙引號(hào)(“)去界定字符向量 “/”用來(lái)識(shí)別字符串中包含的()或(“) 例子: UserInfor UserInfor1 name users password e-mail“ labs labs 1 X1 Y2 X3 Y4 X5 Y6 X7 Y8 X9 Y10 復(fù)數(shù)向量 z z 1 1.0464457+1.4921546i -0.0857576+0.6500323i -0.4077956+0.7363948i 4 1.2992962

9、+1.0821262i -1.3359859-2.2430534i 1.0756972+1.4531898i 7 1.1084957+0.6604677i 1.2716703+0.4288688i 0.2792403+0.4181003i10 -1.0414731-2.2300299i zz zz.shift zz.shift1 -0.1-0.9i -0.2-0.8i -0.3-0.7i -0.4-0.6i -0.1-0.5i -0.2-0.4i -0.3-0.3i8 -0.4-0.2i -0.1-0.1i五、分組因子 R語(yǔ)言可以將一套數(shù)據(jù)中相同分類(lèi)的數(shù)據(jù)進(jìn)行分組,所用組別對(duì)象稱為分組因子 可

10、以用factor()函數(shù)生成一個(gè)分組因子 分組因子可以方便地對(duì)分組數(shù)據(jù)做相應(yīng)計(jì)算,如:計(jì)算平均值、總和或按某種函數(shù)形式 例子: factor(sample(letters,10,replace=T),levels=letters) 1 g b w j c z o d p q Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z六、數(shù)組及矩陣 數(shù)組是帶多個(gè)下標(biāo)的、類(lèi)型相同的元素的多維數(shù)據(jù)集合,類(lèi)型有數(shù)值型、字符型、邏輯型、復(fù)數(shù)型等 矩陣為二維數(shù)組 一維數(shù)組并不等效為向量 除了類(lèi)型和長(zhǎng)度等基本屬性外,數(shù)組還有一個(gè)特殊屬性叫做維數(shù)向量

11、,用dim()定義數(shù)組定義FirstArray FirstArray 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 dim(FirstArray)FirstArray #數(shù)組的填充規(guī)則:越靠前的下標(biāo)變化越快; #越靠 后的下標(biāo)變化越慢, , 1 ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12, , 2 ,1 ,2 ,3 ,41, 13 16 19 222, 14 17 20 233, 15 18 21 24#等價(jià)于 FirstArrayPrices Prices 64M

12、 128M 256Mvender1 20 22 76vender2 24 56 87 Prices,c(“64M”,“256M”) #通過(guò)維名訪問(wèn)數(shù)組 64M 256Mvender1 20 76vender2 24 87向量,數(shù)組的混合運(yùn)算規(guī)則: 1、 表達(dá)式中各元素匹配時(shí),總是從左到右。 2、 在進(jìn)行計(jì)算時(shí)比較短的向量會(huì)擴(kuò)展數(shù)據(jù)以適應(yīng)最大數(shù)量元素的操作數(shù)。擴(kuò)展數(shù)據(jù)的基本規(guī)則為循環(huán)地從第一個(gè)元素開(kāi)始填充所需要的數(shù)據(jù)。 3、所有的數(shù)組必須具有相同的dim屬性,否則返回一個(gè)錯(cuò)誤。 4、任何一個(gè)向量的操作結(jié)果的長(zhǎng)度大于數(shù)組間操作結(jié)果的長(zhǎng)度時(shí),R語(yǔ)言會(huì)產(chǎn)生錯(cuò)誤。 5、 如果數(shù)組間操作無(wú)誤,那么計(jì)算結(jié)果

13、也是一個(gè)相同維度的數(shù)組。 a1 a2 a1 ,1 ,2 ,31, 1 5 92, 2 6 103, 3 7 114, 4 8 12 a2 ,1 ,2 ,31, 1 4 72, 2 5 83, 3 6 9 a1+a2錯(cuò)誤于a1 + a2 : 非整合陳列 a2 a2 ,1 ,2 ,31, 1 5 92, 2 6 13, 3 7 24, 4 8 3 a1+a2 ,1 ,2 ,31, 2 10 182, 4 12 113, 6 14 134, 8 16 15 a1*a2 ,1 ,2 ,31, 1 25 812, 4 36 103, 9 49 224, 16 64 36不同dim屬性相同dim屬性不同d

14、im屬性相同dim屬性 a3 a3 ,1 ,2 ,31, 1 2 3 a2+a3錯(cuò)誤于a2 + a3 : 非整合陳列一維數(shù)組并不等效為向量 a4 a41 1 2 3 a4+a2 ,1 ,2 ,31, 2 7 122, 4 9 23, 6 8 44, 5 10 6向量與數(shù)組運(yùn)算 a5 a4+a51 2 4 6 5 7 9 8警告信息:In a4 + a5 : 長(zhǎng)的對(duì)象長(zhǎng)度不是短的對(duì)象長(zhǎng)度的整倍數(shù)不同長(zhǎng)度的向量運(yùn)算 a6 a6+a2錯(cuò)誤: dims product 12與對(duì)象長(zhǎng)度13不匹配此外: 警告信息:In a6 + a2 : 長(zhǎng)的對(duì)象長(zhǎng)度不是短的對(duì)象長(zhǎng)度的整倍數(shù) a7 a7+a2錯(cuò)誤: di

15、ms product 12與對(duì)象長(zhǎng)度24不匹配一維數(shù)組并不等效為向量不同長(zhǎng)度的向量運(yùn)算兩個(gè)數(shù)組的外積 A B A ,1 ,21, 1 32, 2 4 B ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12 B%o%A, , 1, 1 ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12, , 2, 1 ,1 ,2 ,3 ,41, 2 8 14 202, 4 10 16 223, 6 12 18 24, , 1, 2 ,1 ,2 ,3 ,41, 3 12 21 302, 6 15 24 333, 9 18 27 36, ,

16、 2, 2 ,1 ,2 ,3 ,41, 4 16 28 402, 8 20 32 443, 12 24 36 48 AB x x ,1 ,2 ,31, 1 3 52, 2 4 6 xt xt ,1 ,21, 1 22, 3 43, 5 6 x x, , 1 ,1 ,2 ,31, 1 3 52, 2 4 6, , 2 ,1 ,2 ,31, 7 9 112, 8 10 12, , 3 ,1 ,2 ,31, 13 15 172, 14 16 18, , 4 ,1 ,2 ,31, 19 21 232, 20 22 24 xt xt, , 1 ,1 ,21, 1 22, 3 43, 5 6, , 2 ,

17、1 ,21, 7 82, 9 103, 11 12, , 3 ,1 ,21, 13 142, 15 163, 17 18, , 4 ,1 ,21, 19 202, 21 223, 23 24七、矩陣# nrow定義行數(shù),ncol定義列數(shù),dimnames定義行和列的名稱,byrow定義矩陣的填充順序,為T(mén)時(shí)按行填充,為F時(shí)按列填充mdat mdat C.1 C.2 C.3row1 1 2 3row2 11 12 13 t(mdat) row1 row2C.1 1 11C.2 2 12C.3 3 13 xt xt row1 row2C.1 1 11C.2 2 12C.3 3 13轉(zhuǎn)置轉(zhuǎn)置 t(m

18、dat) row1 row2C.1 1 11C.2 2 12C.3 3 13 xt xt row1 row2C.1 1 11C.2 2 12C.3 3 13轉(zhuǎn)置轉(zhuǎn)置 a1 a2 a1 ,1 ,2 ,31, 1 3 52, 2 4 6 a2 ,1 ,2 ,31, 1 4 72, 2 5 83, 3 6 9 a1%*%a2 ,1 ,2 ,31, 22 49 762, 28 64 100 a1%*%a1錯(cuò)誤于a1 %*% a1 : 非整合參數(shù) a2%*%a1錯(cuò)誤于a2 %*% a1 : 非整合參數(shù)兩個(gè)矩陣內(nèi)積 Coefficient Result solve(Coefficient,Result)

19、#sovle()返回線性方程組行列式結(jié)果1 2 -3 #a=2,b=-3求解線性方程組:3a-2b=122a+b=1 solve(Coefficient) #求矩陣Coefficient的逆 ,1 ,21, 0.1428571 0.28571432, -0.2857143 0.4285714矩陣計(jì)算函數(shù)矩陣計(jì)算函數(shù)練習(xí)2.1熟練掌握矩陣計(jì)算的有關(guān)函數(shù)數(shù)組矩陣合并 函數(shù)rbind()把參數(shù)變量按行拼成一個(gè)大矩陣,兩個(gè)數(shù)組(或向量)的列數(shù)必須相等 函數(shù)cbind()把參數(shù)變量按列拼成一個(gè)大矩陣,兩個(gè)數(shù)組(或向量)的行數(shù)必須相等 a1 a2 a1 ,1 ,2 ,31, 1 3 52, 2 4 6 a

20、2 ,1 ,2 ,31, 1 4 72, 2 5 83, 3 6 9 rbind(a1,a2) ,1 ,2 ,31, 1 3 52, 2 4 63, 1 4 74, 2 5 85, 3 6 9 cbind(a1,a2)錯(cuò)誤于cbind(a1, a2) : 矩陣的行數(shù)必需相符(見(jiàn)arg2) t(a1) ,1 ,21, 1 22, 3 43, 5 6 a1 cbind(a1,a2) ,1 ,2 ,3 ,4 ,51, 1 2 1 4 72, 3 4 2 5 83, 5 6 3 6 9八、數(shù)據(jù)分割與選取 向量索引向量索引Xn #第n個(gè)元素X-n #除了第n個(gè)元素外的XX1:n #前n個(gè)元素X-(1:n

21、) #第n+1至最后的元素Xc(1,4,2) #指定下標(biāo)的元素X“name” #名為name的元素XX3 #所有大于3的元素XX3 & X X names(X) Xa b c d e f g h i 1 2 3 4 5 6 7 8 9 X6f 6 X2:6b c d e f 2 3 4 5 6 X-3a b d e f g h i 1 2 4 5 6 7 8 9 X-(5:9)a b c d 1 2 3 4 X-c(5,9,2)a c d f g h 1 3 4 6 7 8 XX5f g h i 6 7 8 9 XX5 & X Xc(c,g,d)c g d 3 7 4 XX %

22、in% letters5:13named integer(0) XX %in% 5:13e f g h i 5 6 7 8 9 sstr sstrsstr %in% c(letters,LETTERS)1 c B c a例子 Xi,j #下標(biāo)為(i,j)的元素 Xi, #第i列 X,j #第j列 X,c(1,3) #第1,3列 X“name”, #名為”name”的行數(shù)組具有類(lèi)似的數(shù)據(jù)分割與選取方法數(shù)組具有類(lèi)似的數(shù)據(jù)分割與選取方法矩陣索引練習(xí)2.2 熟練掌握數(shù)據(jù)分割與選取的方法 X X D E F Ga 1 2 3 4b 5 6 7 8c 9 10 11 12 X2,31 7 X2,D E F

23、 G 5 6 7 8 X,4 a b c 4 8 12 X,c(1,3) D Fa 1 3b 5 7c 9 11 Xa,D E F G 1 2 3 4 九、數(shù)據(jù)列表 數(shù)據(jù)列表(list)是一組數(shù)據(jù)元素的集合,這些數(shù)據(jù)元素可以是不同的數(shù)據(jù)結(jié)構(gòu)(dim屬性,數(shù)據(jù)類(lèi)型等) list()函數(shù)可以組合任意對(duì)象 FamilyInfo FamilyInfo$hostname1 joe$wife1 rose$no.children1 3$child.ages1 1 3 7 FamilyInfo$wife #通過(guò)元素的名字來(lái)訪問(wèn)1 rose“ FamilyInfo3 #通過(guò)元素的編號(hào)來(lái)訪問(wèn)$no.childre

24、n1 3 FamilyInfo31 3例子數(shù)據(jù)列表操作 長(zhǎng)度擴(kuò)展 length(FamilyInfo)1 4 FamilyInfo5 FamilyInfo$hostname1 joe$wife1 rose$no.children1 3$child.ages1 1 3 751 10th F, HongXing Building, No.100, JainYe Road數(shù)據(jù)列表合并 FamilyBirthday c(FamilyInfo,FamilyBirthday)-Family #函數(shù)c()可以連接數(shù)據(jù)列表 Family$hostname1 joe$wife1 rose$no.children

25、1 3$child.ages1 1 3 751 10th F, HongXing Building, No.100, JainYe Road$hostbirthday1 1979/10/08$wifebirthday1 1973/07/09 數(shù)據(jù)框(data frame)是一個(gè)屬于data.frame 類(lèi)的列表。不過(guò),對(duì)于可能屬于數(shù)據(jù)框的列表對(duì)象有下面一些限制條件,1、分量必須是向量(數(shù)值, 字符, 邏輯),因子,數(shù)值矩陣,列表或者其他數(shù)據(jù)框;2、矩陣,列表和數(shù)據(jù)框?yàn)樾碌臄?shù)據(jù)框提供了盡可能多的變量,因?yàn)樗鼈兏髯該碛辛?,元素或者變?3、數(shù)值向量,邏輯值,因子保持原有格式,而字符向量會(huì)被強(qiáng)制轉(zhuǎn)換

26、成因子并且它的水平就是向量中出現(xiàn)的獨(dú)立值;4、在數(shù)據(jù)框中以變量形式出現(xiàn)的向量結(jié)構(gòu)必須長(zhǎng)度一致,矩陣結(jié)構(gòu)必須有一樣的行數(shù). 數(shù)據(jù)框常常會(huì)被看作是一個(gè)由不同模式和屬性的列構(gòu)成的矩陣。它能以矩陣形式出現(xiàn),行列可以通過(guò)矩陣的索引習(xí)慣訪問(wèn)。十、數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框 L3 d d x y fac1 1 1 C2 1 2 A3 1 3 B4 1 4 C5 1 5 A6 1 6 B7 1 7 B8 1 8 B9 1 9 B10 1 10 A d1 x1 12 13 14 15 16 17 18 19 110 1 d1 1 1 1 1 1 1 1 1 1 1 1 mode(d1)1 list mode(d1)1 n

27、umeric length(d1)1 1 length(d1)1 10 d231 3d d x y fac HT1 1 1 B T2 1 2 A H3 1 3 B H4 1 4 A T5 1 5 C T6 1 6 A T7 1 7 B H8 1 8 C T9 1 9 C H10 1 10 A T rbind(class=sapply(d, class), mode=sapply(d, mode) x y fac HT class numeric numeric factor factor mode numeric numeric numeric numeric d d x y fac HT1 1 1 A H2 1 2 A T3 1 3 C T4 1 4 A T5 1 5 B H6 1 6 C H7 1 7 C T8 1 8 A H9 1 9 A T10 1 10 C H rbind(class=sapp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論