版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、R的數(shù)據(jù)操作第三章R語言 吉林農(nóng)業(yè)大學(2008年4月)13.1 對象 R通過一些對象來運行,當然首先這些對象是用它們的名稱和內(nèi)容來刻畫的,其次也通過對象的數(shù)據(jù)類型即屬性來刻畫 這個變量可以是一個整數(shù)變量(例如巢中蛋的個數(shù)),或者也可以是一個分類變量的編碼(例如某些甲殼類動物的三種性別:雄、雌和雌雄同體)。 顯然對這個變量的統(tǒng)計分析在以上兩例中將是不相同的,對象的屬性在R中提供著所需的信息。更技術性也更一般地說,對于作用于一個對象的函數(shù),其表現(xiàn)將取決于對象的屬性R語言 吉林農(nóng)業(yè)大學(2008年4月)2 所有的對象都有兩個內(nèi)在屬性:類型和長度。類型是對象元素的基本種類,共有四種:數(shù)值型,字符型,
2、 復數(shù)型和邏輯型(FALSE或TRUE) 也存在其它的類型,但是并不能用來表示數(shù)據(jù),例如函數(shù)或表達式、null(空值型,只有一個特殊值NULL, 表示沒有對象值。),長度是對象中元素的數(shù)目。R語言 吉林農(nóng)業(yè)大學(2008年4月)3對象的類型和長度可以分別通過函數(shù)mode和length得到。 x mode(x)1 numeric length(x)1 1 A - Gomphotherium; compar - TRUE; z mode(A); mode(compar); mode(z)1 character1 logical1 complexR語言 吉林農(nóng)業(yè)大學(2008年4月)4無論什么類型的
3、數(shù)據(jù),缺失數(shù)據(jù)總是用NA(不可用)來表示;對很大的數(shù)值則可用指數(shù)形式表示: N N 1 2.1e+23 x mode(x) 1 numeric length(x) 1 4R語言 吉林農(nóng)業(yè)大學(2008年4月)5R可以正確地表示無窮的數(shù)值,如用Inf和-Inf表示+和,或者用NaN(非數(shù)字)表示不是數(shù)字的值。 x x1 Inf exp(x)1 Inf exp(-x)1 0 x-x1 NaNR語言 吉林農(nóng)業(yè)大學(2008年4月)6字符型的值輸入時須加上雙引號“,如果需要引用雙號的話,可以讓它跟在反斜杠后面;這兩個字符合一起”在某些函數(shù)如cat的輸出顯示或write.table寫入磁盤時會被以特殊的
4、方式處理。 x x 1 Double quotes delimitate Rs strings. cat(x) Double quotes delimitate Rs strings.R語言 吉林農(nóng)業(yè)大學(2008年4月)7也有另一種表示字符型變量的方法,即用單引號()來界定變量,這種情況下不需要用反斜杠來引用雙引號(但是引用單引號時必須要用?。?x x 1 Double quotes delimitate Rs strings. cat(x) Double quotes delimitate Rs strings.R語言 吉林農(nóng)業(yè)大學(2008年4月)8數(shù)據(jù)的對象的類別概覽R語言 吉林農(nóng)業(yè)大
5、學(2008年4月)9向量是一個變量,其意思也即人們通常認為的那樣;因子是一個分類變量;數(shù)組是一個k維的數(shù)據(jù)表;矩陣是數(shù)組的一個特例,其維數(shù)k = 2。注意,數(shù)組或者矩陣中的所有元素都必須是同一種類型的;數(shù)據(jù)框是由一個或幾個向量和(或)因子構成,它們必須是等長的, 但可以是不同的數(shù)據(jù)類型;“ts”表示時間序列數(shù)據(jù),它包含一些額外的屬性,例如頻率和時間; 列表可以包含任何類型的對象,包括列表!對于一個向量,用它的類型和長度足夠描述數(shù)據(jù);而對其它的對象則另需一些額外信息,這些信息由外在的屬性給出。這些屬性中的是表示對象維數(shù)的dim,比如一個2行2列的的矩陣,它的dim是一對數(shù)值2,2,但是其長度是
6、4。R語言 吉林農(nóng)業(yè)大學(2008年4月)103.2 在文件中讀寫數(shù)據(jù)對于文件讀取和寫入的工作,R使用工作目錄來完成。可以使用命令getwd() (獲得工作目錄)來找到目錄,使用命令setwd(C:/data) 或者setwd(/home/paradis/R) 來改變目錄。如果一個文件不在工作目錄里則必須給出它的路徑. 在Windows中,為Rgui.exe創(chuàng)建一個快捷方式是比較有用的, 在快捷方式“屬性”的“起始位置”中改變目錄,然后用此快捷方式啟動R時這個目錄就會成為工作目錄R語言 吉林農(nóng)業(yè)大學(2008年4月)11 R可以用下面的函數(shù)讀取存儲在文本文件(ASCII)中的數(shù)據(jù) read.t
7、able,scan和read.fwf。R也可以讀取以其他格式的文件(Excel, SAS, SPSS, . . . ) 和訪問SQL類型的數(shù)據(jù)庫,但是基礎包中并不包含所需的這些函數(shù)。這些功能函數(shù)對于R的高級應用是十分有用的。函數(shù)read.table用來創(chuàng)建一個數(shù)據(jù)框,所以它是讀取表格形式的數(shù)據(jù)的主要方法。舉例來說,對于一個名為data.dat的文件,命令: mydata mydata - scan(data.dat, what = list(, 0, 0)讀取了文件data.dat中三個變量,第一個是字符型變量,后兩個是數(shù)值型變量。另一個重要的區(qū)別在于scan()可以用來創(chuàng)建不同的對象,向量,
8、矩陣,數(shù)據(jù)框,列表. . . 在上面的例子中,mydata是一個有三個向量的列表。在缺省情況下,也就是說,如果what 被省略,scan()將創(chuàng)建一個數(shù)值型向量。如果讀取的數(shù)據(jù)類型與缺省類型或指定類型不符,則將返回一個錯誤信息。這些選項在下面進行說明。R語言 吉林農(nóng)業(yè)大學(2008年4月)17 scan(file = , what = double(0), nmax = -1, n = -1, sep = ,quote = if (sep=n) else , dec = .,skip = 0, nlines= 0, na.strings = NA,flush = FALSE, fill = F
9、ALSE, strip.white = FALSE, quiet = FALSE,blank.lines.skip = TRUE, multi.line = TRUE, comment.char = )R語言 吉林農(nóng)業(yè)大學(2008年4月)18R語言 吉林農(nóng)業(yè)大學(2008年4月)19 函數(shù)read.fwf可以用來讀取文件中一些固定寬度格式的數(shù)據(jù): read.fwf(file, widths, sep=t, as.is = FALSE,skip = 0, s, s, n = -1, .) 除了widths用來說明讀取字段的寬度外, 選項與read.table()
10、 基本相同。舉例來說,如果在一個名為data.txt的文件中有一組如下面所示的數(shù)據(jù),可以讀取這些數(shù)據(jù)用下面的命令:R語言 吉林農(nóng)業(yè)大學(2008年4月)20 mydata mydata V1 V2 V3 1 A 1.50 1.2 2 A 1.55 1.3 3 B 1.60 1.4 4 B 1.65 1.5 5 C 1.70 1.6 6 C 1.75 1.7R語言 吉林農(nóng)業(yè)大學(2008年4月)21讀其它格式的數(shù)據(jù)文件R可以讀Minitab、SPLUS、SAS、SPSS、STATA、Excel格式的數(shù)據(jù)文件,但必須要調(diào)入“foreign”模塊,調(diào)入方法為 library(foreign)SPSS
11、:rs-read.spss(educ_scores.sav)其變量rs是一個列表,如果打算形成數(shù)據(jù)框,則格式為:rs-read.spss(educ_scores.sav,to.data.frame=TRUE) SAS:rx-read.xport(educ_scores.xpt)S-PLUS: rs-read.S(educ_scores)Stata:rd-read.dta(educ_scores.dta)R語言 吉林農(nóng)業(yè)大學(2008年4月)22 R無法直接讀取Excel格式的數(shù)據(jù)文件,需要將Excel表轉(zhuǎn)換成其它格式,然后才能被R讀取。 轉(zhuǎn)化方法: 1、將Excel表轉(zhuǎn)化成“文本文件”(制表符
12、分隔)” rd-read.delim(educ_scores.txt) 2、將Excel表轉(zhuǎn)化成“CSV(逗號分隔)文件” rc-read.csv(educ_scores.csv)R語言 吉林農(nóng)業(yè)大學(2008年4月)233.3 存儲數(shù)據(jù) 函數(shù)write.table可以在文件中寫入一個對象,一般是寫一個數(shù)據(jù)框,也可以是其它類型的對象(向量,矩陣. . . )。參數(shù)和選項: write.table(x, file = , append = FALSE, quote = TRUE, sep= ,eol = n, na = NA, dec = ., s = TRUE,
13、s = TRUE, qmethod = c(escape, double)R語言 吉林農(nóng)業(yè)大學(2008年4月)24R語言 吉林農(nóng)業(yè)大學(2008年4月)25 df n write(n,file=fbb.txt)R語言 吉林農(nóng)業(yè)大學(2008年4月)273.4 生成數(shù)據(jù) 3.4.1 規(guī)則序列 例如一個從1到30的規(guī)則整數(shù)序列,可以這樣產(chǎn)生: x 1:10-1 1 0 1 2 3 4 5 6 7 8 9 1:(10-1) 1 1 2 3 4 5 6 7 8 9R語言 吉林農(nóng)業(yè)大學(2008年4月)283.4 生成數(shù)據(jù)3.4.1 規(guī)則序列函數(shù)seq可以生成如下的實數(shù)序列: seq(1, 5, 0.
14、5)1 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0其中第一個數(shù)字表示序列的起點,第二個表示終點,第三個是生成序列的步長。也可以這樣使用: seq(length=9, from=1, to=5)1 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0還可以用函數(shù)c直接輸入數(shù)值: c(1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5)1 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0R語言 吉林農(nóng)業(yè)大學(2008年4月)293.4 生成數(shù)據(jù) 3.4.1 規(guī)則序列 如果想用鍵盤輸入一些數(shù)據(jù)也是可以的,只需要直接使
15、用默認選項的scan函數(shù): z z 1 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0R語言 吉林農(nóng)業(yè)大學(2008年4月)303.4 生成數(shù)據(jù)3.4.1 規(guī)則序列函數(shù)rep用來創(chuàng)建一個所有元素都相同的向量: rep(1, 30)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1函數(shù)sequence創(chuàng)建一系列連續(xù)的整數(shù)序列,每個序列都以給定參數(shù)的數(shù)值結(jié)尾: sequence(4:5) 1 1 2 3 4 1 2 3 4 5 sequence(c(10,5)1 1 2 3 4 5 6 7 8 9 10
16、 1 2 3 4 5R語言 吉林農(nóng)業(yè)大學(2008年4月)313.4 生成數(shù)據(jù) 3.4.1 規(guī)則序列 函數(shù)gl(生成不同的水平/層次數(shù)據(jù))十分有用,因為它能產(chǎn)生規(guī)則的因子序列。這個函數(shù)的用法是gl(k,n),其中k是水平數(shù)(或類別數(shù)),n是每個水平重復的次數(shù)。 此函數(shù)有兩個選項:length用來指定產(chǎn)生數(shù)據(jù)的個數(shù),labels 用來指定每個水平因子的名字。例如:R語言 吉林農(nóng)業(yè)大學(2008年4月)323.4 生成數(shù)據(jù)3.4.1 規(guī)則序列 gl(3, 5)1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3Levels: 1 2 3 gl(3, 5, length=30)1 1 1
17、1 1 1 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3Levels: 1 2 3 gl(2, 6, label=c(Male, Female)1 Male Male Male Male Male Male7 Female Female Female Female Female Female Levels: Male FemaleR語言 吉林農(nóng)業(yè)大學(2008年4月)333.4 生成數(shù)據(jù)3.4.1 規(guī)則序列 gl(2, 10)1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2Levels: 1 2 gl(2,
18、 1, length=20)1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2Levels: 1 2 gl(2, 2, length=20)1 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2Levels: 1 2R語言 吉林農(nóng)業(yè)大學(2008年4月)343.4 生成數(shù)據(jù)3.4.1 規(guī)則序列expand.grid()創(chuàng)建一個數(shù)據(jù)框,結(jié)果是把各參數(shù)的各水平完全搭配: expand.grid(h=c(60,80), w=c(100, 300), sex=c(Male, Female)h w sex1 60 100 Male2 80 10
19、0 Male3 60 300 Male4 80 300 Male5 60 100 Female6 80 100 Female7 60 300 Female8 80 300 FemaleR語言 吉林農(nóng)業(yè)大學(2008年4月)353.4 生成數(shù)據(jù) 3.4.2 隨機序列 在統(tǒng)計學中,產(chǎn)生隨機數(shù)據(jù)是很有用的,R可以產(chǎn)生多種不同分布下的隨機數(shù)序列。 這些分布函數(shù)的形式為rfunc(n,p1,p2,.),其中func指概率分布函數(shù),n為生成數(shù)據(jù)的個數(shù),p1, p2, . . . 是分布的參數(shù)數(shù)值。下面的表給出了每個分布的詳情和可能的缺省值(如果沒有給出缺省值,則意味著用戶必須指定參數(shù))R語言 吉林農(nóng)業(yè)大學
20、(2008年4月)363.4 生成數(shù)據(jù)R語言 吉林農(nóng)業(yè)大學(2008年4月)373.5 使用對象3.4.2隨機序列大多數(shù)這種統(tǒng)計函數(shù)都有相似的形式,只需用d、p或者q去替代r,比如密度函數(shù)(dfunc(x, .),累計概率密度函數(shù)(也即分布函數(shù))(pfunc(x,.)和分位數(shù)函數(shù)(qfunc(p, .),0 p qnorm(0.025) 1 -1.959964 qnorm(0.975) 1 1.959964對于同一個檢驗的單側(cè)臨界值,根據(jù)備擇假設的形式使用qnorm(0.05)或1 -qnorm(0.95)。R語言 吉林農(nóng)業(yè)大學(2008年4月)383.5 使用對象 3.4.2隨機序列 sam
21、ple()函數(shù):可產(chǎn)生隨機樣本 sample(10) 12967 1034851 sample(20) 1 15 17 16 19 128 6 1032 201 139 147 18 1145R語言 吉林農(nóng)業(yè)大學(2008年4月)393.5 使用對象 3.5.1 創(chuàng)建對象 我們在前面看到了用賦值操作創(chuàng)建對象的不同方法;在這樣的創(chuàng)建中對象的數(shù)據(jù)類型和模式通常都已經(jīng)預先確定了。在創(chuàng)建一個對象時是有可能指定它的數(shù)據(jù)類型、長度、類別等等的。從處理對象的角度來看這些方法是很有趣的。舉例來說,我們可以創(chuàng)建一個空的對象并且逐步修改其中的元素, 這比把所有的元素一起用c()放進去更有效。在這里也可以使用下標系
22、統(tǒng),后面我們將會看到。R語言 吉林農(nóng)業(yè)大學(2008年4月)403.5 使用對象 3.5.1 創(chuàng)建對象 在R的學習階段,我們很有必要了解下面的函數(shù)和數(shù)據(jù)結(jié)構。直接創(chuàng)建數(shù)據(jù)結(jié)構不僅能讓我們對數(shù)據(jù)有更好的理解,而且也會更深入地領會前文中提到的一些概念。 向量(Vector) 在線性代數(shù)中,向量是指n個實數(shù)組成的有序數(shù)組稱為n維向量。一般用,等希臘字母表示.有時也用a,b,c,o,u,v,x,y等拉丁字母表示.=(a1,a2,an)稱為n維向量.其中ai稱為向量的第i個分量.R語言 吉林農(nóng)業(yè)大學(2008年4月)413.5 使用對象 3.5.1 創(chuàng)建對象 函數(shù)vector有兩個參數(shù):類型(mode)
23、和長度(length),創(chuàng)建的向量中元素值取決于參數(shù)所指定的數(shù)據(jù)類型:數(shù)值型向量則元素值都為0,邏輯型都為FALSE,字符型都為。以下三個函數(shù)有幾乎相同的效果(創(chuàng)建一個向量)并且只有一個參數(shù)即長度:numeric(),logical(),和character()R語言 吉林農(nóng)業(yè)大學(2008年4月)423.5 使用對象3.5.1 創(chuàng)建對象因子(Factor) 一個因子不僅包括分類變量本身還包括變量不同的可能水平(即使它們在數(shù)據(jù)中不出現(xiàn))。因子函數(shù)factor用下面的選項創(chuàng)建一個因子:factor(x, levels = sort(unique(x), na.last = TRUE), labe
24、ls = levels, exclude = NA, ordered = is.ordered(x)levels 用來指定因子可能的水平(缺省值是向量x中互異的值);labels用來指定水平的名字;exclude表示從向量x中剔除的水平值;ordered是一個邏輯型選項用來指定因子的水平是否有次序。R語言 吉林農(nóng)業(yè)大學(2008年4月)433.5 使用對象3.5.1 創(chuàng)建對象 factor(1:3) 1 1 2 3Levels: 1 2 3 factor(1:3,levels=1:5) 1 1 2 3Levels: 1 2 3 4 5 factor(1:3,labels=c(A,B,C)1 A
25、 B CLevels: A B C factor(1:5,exclude=4)1 123 5Levels: 1 2 3 5R語言 吉林農(nóng)業(yè)大學(2008年4月)443.5 使用對象 3.5.1 創(chuàng)建對象 函數(shù)levels用來提取一個因子中可能的水平值: ff ff 1 2 4 Levels: 2 3 4 5 levels(ff) 1 2 3 4 5R語言 吉林農(nóng)業(yè)大學(2008年4月)453.5 使用對象 3.5.1 創(chuàng)建對象 矩陣(Matrix) 一個矩陣實際上是有一個附加屬性(維數(shù)dim) 的向量,維數(shù)即為一個長度為2的向量,用來指定矩陣的行數(shù) 和列數(shù)。一個矩陣可以用函數(shù)matrix來創(chuàng)建
26、: matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL) 選項byrow表示數(shù)據(jù)給出的值是要按列填充(缺省值)還是按行填充(如果為TRUE)。可以通過選項dimnames給行列命名。R語言 吉林農(nóng)業(yè)大學(2008年4月)463.5 使用對象3.5.1 創(chuàng)建對象 matrix(data=5,nr=2,nc=2),1 ,21,2,5555 matrix(5,nr=2,nc=2) ,1 ,21,2,5555 matrix(1:6,nr=2,nc=3) ,1 ,2 ,31,2,123456 matrix(1:6,nr=
27、2,nc=3,byrow=TRUE) ,1 ,2 ,31,2,142536R語言 吉林農(nóng)業(yè)大學(2008年4月)473.5 使用對象3.5.1 創(chuàng)建對象 matrix() ,11,NA matrix(1:6) ,11,2,3,4,5,6,123456matrix(1:6,nr=3,nc=2,byrow=TRUE,dimnames=list(c(row1,row2,row3),c(c.1,c.2)c.1 c.2row1 row2 row3135246R語言 吉林農(nóng)業(yè)大學(2008年4月)483.5 使用對象3.5.1 創(chuàng)建對象另一種創(chuàng)建矩陣的方法是給維數(shù)適當?shù)馁x值(初始值為NULL): x x1
28、123 45 dim(x) NULL dim(x) x,1 ,2 ,36789 10 11 12 13 14 151,2,3,4,5,123456789101112131415 dim(x) 1 5 3R語言 吉林農(nóng)業(yè)大學(2008年4月)493.5 使用對象 3.5.1 創(chuàng)建對象 數(shù)據(jù)框(Data frame) 前面我們已經(jīng)看到一個數(shù)據(jù)框可以由函數(shù)read.table 間接創(chuàng)建;這里也可以用函數(shù)data.frame來創(chuàng)建。數(shù)據(jù)框中的向量必須有相同的長度,如果其中有一個比其它的短,它將“循環(huán)”整數(shù)次(以使得其長度與其它向量相同):R語言 吉林農(nóng)業(yè)大學(2008年4月)503.5 使用對象3.5
29、.1 創(chuàng)建對象 x-1:4;n-10;M-c(13,35);y data.frame(x,n) xn1 1 102 2 103 3 104 4 10 data.frame(x,M) xM1 1 132 2 353 3 134 4 35 data.frame(x,y)錯誤于data.frame(x, y) : 變元值意味著不同的行數(shù) 4, 3R語言 吉林農(nóng)業(yè)大學(2008年4月)513.5 使用對象 3.5.1 創(chuàng)建對象 如果一個因子包含在一個數(shù)據(jù)框中,它必須和其中的向量有相同的長度。 列名也是可以改變的,例如,data.frame(A1=x, A2=n)。用戶也可以使用s給行命
30、名,但是,這個命名向量必須是字符型的而且長度等于這個數(shù)據(jù)框的行數(shù)。 最后,注意數(shù)據(jù)框和矩陣一樣有維數(shù)這個屬性。R語言 吉林農(nóng)業(yè)大學(2008年4月)523.5 使用對象3.5.1 創(chuàng)建對象 B B1 4 5 6 7Levels: 4 5 6 7 data.frame(x,B) x B1 1 42 2 53 3 64 4 7 data.frame(A1=x,A2=n) A1 A212341 102 103 104 10R語言 吉林農(nóng)業(yè)大學(2008年4月)533.5 使用對象 3.5.1 創(chuàng)建對象 rc rc A1 A2 a b c d1 102 103 104 10 dim(rc) 1 4 2
31、R語言 吉林農(nóng)業(yè)大學(2008年4月)543.5 使用對象3.5.1 創(chuàng)建對象列表(List) 列表可以用list函數(shù)創(chuàng)建,方法與創(chuàng)建數(shù)據(jù)框類似。它對其中包含的對象沒有什么限制。和data.frame()比較, 缺省值沒有給出對象的名稱 x-1:4;y L1-list(x,y);L2 L1 11 1 2 3 421 2 3 4R語言 吉林農(nóng)業(yè)大學(2008年4月)553.5 使用對象3.5.1 創(chuàng)建對象 L2$A1 1 2 3 4$B1 2 3 4 names(L1) NULL names(L2)1 A BR語言 吉林農(nóng)業(yè)大學(2008年4月)563.5 使用對象 3.5.1 創(chuàng)建對象 時間序
32、列(Time-series) 函數(shù)ts可以由向量(一元時間序列) 或者矩陣(多元時間序列)創(chuàng)建一個ts型對象,并且有一些 表明序列特征的選項(帶有缺省值),它們是: ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption(ts.eps), class, names)R語言 吉林農(nóng)業(yè)大學(2008年4月)573.5 使用對象3.5.1 創(chuàng)建對象data 一個向量或者矩陣start 第一個觀察值的時間,為一個數(shù)字或者是一個由兩個整數(shù)構成的向量(參見下面的例子)end 最后一個觀
33、察值的時間,指定方法和start相同frequency 單位時間內(nèi)觀察值的頻數(shù)(頻率)deltat 兩個觀察值間的時間間隔( 例如, 月度數(shù)據(jù)的取值為1/12);frequency和deltat必須并且只能給定其中之一ts.eps 序列之間的誤差限。如果序列之間的頻率差異小于ts.eps則認為這些序列的頻率相等。class 對象的類型;一元序列的缺省值是ts,多元序列的缺省值是c(mts, ts)names 一個字符型向量, 給出多元序列中每個一元序列的名稱; 缺省為data中每列數(shù)據(jù)的名稱或者Series 1,Series 2, . . .R語言 吉林農(nóng)業(yè)大學(2008年4月)583.5 使
34、用對象3.5.1 創(chuàng)建對象 ts(1:10,start=1959) Time Series:Start = 1959End = 1968Frequency = 11123456789 10 ts(1:47,frequency=12,start=c(1959,2)Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec19591960196119621132537234152739516284061729417183042891020324411213345122436142638193143223446233547R語言 吉林農(nóng)業(yè)大學(2008年4月)59
35、3.5 使用對象3.5.1 創(chuàng)建對象 ts(1:10,frequency=4,start=c(1959,2)Qtr1 Qtr2 Qtr3 Qtr419591960196115923486107 ts(matrix(rpois(36,5),12,3),start=c(1961,1),frequency=12)Series 1 Series 2 Series 3Jan 1961Feb 1961Mar 1961Apr 1961May 1961Jun 19612865024810876735676注:Rpois:Density, distribution function, quantile func
36、tion and random generation for the Poisson distribution with parameter lambdaR語言 吉林農(nóng)業(yè)大學(2008年4月)603.5 使用對象 3.5.1 創(chuàng)建對象 表達式(Expression) 表達式類型的對象在R中有著很基礎的地位,是R能夠解釋的字符序列。所有有效的命令都是表達式。一個命令被直接從鍵盤輸入后,它將被R求值,如果是有效的則會被執(zhí)行。 在很多情況下,構造一個不被求值的表達式是很有用的:這就是函數(shù)expresssion要做的。當然也可以隨后用eval()對創(chuàng)建的表達式進行求值。R語言 吉林農(nóng)業(yè)大學(2008年
37、4月)613.5 使用對象 3.5.1 創(chuàng)建對象 x-3;y-2.5;z exp1 exp1 expression(x/(y + exp(z) eval(exp1) 1 0.5749019R語言 吉林農(nóng)業(yè)大學(2008年4月)623.5 使用對象3.5.1 創(chuàng)建對象表達式也可以在其它地方用來在圖表中添加公式;表達式可以由字符型變量創(chuàng)建;一些函數(shù)把表達式當作參數(shù),例如可以求偏導數(shù)的函數(shù)D。 D(exp1,x)1/(y + exp(z) D(exp1,y)-(x/(y + exp(z)2) D(exp1,z)-(x * exp(z)/(y + exp(z)2)R語言 吉林農(nóng)業(yè)大學(2008年4月)
38、633.5 使用對象 3.5.2 對象的類型轉(zhuǎn)換 一些類型的對象之間的差異是很小的;因此改變一個對 象的某些屬性使它轉(zhuǎn)換為另一種類型的對象是合乎邏輯的。as.something這種形式的函數(shù)可以完成轉(zhuǎn)換。R的base和utils 包中有多種這種函數(shù)在里面,所以在這里不做深入的闡述。 很明顯轉(zhuǎn)換取決于被轉(zhuǎn)換對象的屬性。一般來說,轉(zhuǎn)換遵循一些很直觀的規(guī)則。對于類型的不同轉(zhuǎn)換,下表總結(jié)了不同的情況。R語言 吉林農(nóng)業(yè)大學(2008年4月)643.5 使用對象R語言 吉林農(nóng)業(yè)大學(2008年4月)653.5 使用對象 3.5.2 對象的類型轉(zhuǎn)換 有許多函數(shù)可以用來轉(zhuǎn)換對象的類型(as.matrix, a
39、s.ts, as.data.frame,as.expression, . . . ),這些函數(shù)在轉(zhuǎn)換時會影響除了類型之外的屬性,將得到的結(jié)果在一般情況下也是容易預見的。將因子轉(zhuǎn)換為數(shù)值型是R中經(jīng)常遇到的情況,這種情況下R將因子的水平轉(zhuǎn)化為數(shù)值編碼。R語言 吉林農(nóng)業(yè)大學(2008年4月)663.5 使用對象 3.5.2 對象的類型轉(zhuǎn)換 fac fac 1 110 Levels: 1 10 as.numeric(fac) 1 1 2R語言 吉林農(nóng)業(yè)大學(2008年4月)673.5 使用對象 3.5.2 對象的類型轉(zhuǎn)換 這對于一個字符型因子來說是很有意義的: fac2 fac2 1 MaleFemale Levels: Female Male as.numeric(fac2) 1 2 1 注意這個結(jié)果可能不像根據(jù)上面表格預期的那樣是NA。R語言 吉林農(nóng)業(yè)大學(2008年4月)683.5 使用對象 3.5.2 對象的類型轉(zhuǎn)換 要想將一個數(shù)值型因子轉(zhuǎn)換為一個數(shù)值型向量并且保持最初 指定的水平值,就必須先轉(zhuǎn)換成字符型然后再轉(zhuǎn)換
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年四川職業(yè)技術學院公開選調(diào)工作人員備考題庫及參考答案詳解
- 2026年北京市海訊達通信有限責任公司招聘備考題庫及答案詳解一套
- 2026年康保縣公安局公開招聘警務輔助工作人員備考題庫及一套答案詳解
- 2026年廈門市同安區(qū)西塘幼兒園招聘頂崗人員備考題庫及答案詳解1套
- 2026年中資網(wǎng)絡備考題庫安全科技有限公司招聘備考題庫完整答案詳解
- 2026年華東師范大學后勤保障部倉庫管理員招聘備考題庫及答案詳解參考
- 2026年儋州市白馬井中學醫(yī)護人員招聘啟示備考題庫附答案詳解
- 2025年九江市專業(yè)森林消防支隊(九江市綜合應急救援支隊)第二批隊員招聘備考題庫及參考答案詳解1套
- 2026年南京大學招聘前沿科學學院科研人員備考題庫及完整答案詳解1套
- 2026年寧波東方人力資源服務有限公司招聘外包工作人員備考題庫及完整答案詳解一套
- 2026年廣西貴港市華盛集團新橋農(nóng)工商有限責任公司招聘備考題庫及答案詳解1套
- 陜西能源職業(yè)技術學院2026年教師公開招聘備考題庫完整答案詳解
- 綠化苗木種植合同范本
- 2026年遼寧省沈陽市單招職業(yè)傾向性測試題庫及參考答案詳解一套
- 冶金原理李洪桂課件
- 2025年南京市導游綜合知識問答題庫及答案
- 2026《初中英語?優(yōu)翼學練優(yōu)》八上早讀本
- 公益慈善組織財務管理制度
- 電力搶修-施工方案
- 征兵心理素質(zhì)測評適應能力測試題及標準答案
- 2026中國葉黃素酯行業(yè)數(shù)字化轉(zhuǎn)型與智能化發(fā)展研究報告
評論
0/150
提交評論