《R語言程序設(shè)計》 課件 第2章 數(shù)據(jù)對象_第1頁
《R語言程序設(shè)計》 課件 第2章 數(shù)據(jù)對象_第2頁
《R語言程序設(shè)計》 課件 第2章 數(shù)據(jù)對象_第3頁
《R語言程序設(shè)計》 課件 第2章 數(shù)據(jù)對象_第4頁
《R語言程序設(shè)計》 課件 第2章 數(shù)據(jù)對象_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)對象目錄數(shù)據(jù)類型數(shù)值型(numeric)、字符型(character)、復(fù)數(shù)型(complex)、邏輯型(logical)、特殊值等數(shù)據(jù)結(jié)構(gòu)向量(vector)、數(shù)組(array)、矩陣(matrix)、數(shù)據(jù)框(dataframe)、列表(list)、因子(factor)等綜合實驗大小寫敏感。命名:數(shù)字、字母、“.”和“_”都是允許的。不過,一個命名必須以.或者字母開頭。如果以.開頭,第二個字符不允許是數(shù)字?;久睿罕磉_式(expressions),賦值(assignments)。命令分割:可以用“;”

隔開,或者另起一行。程序塊:基本命令可以通過大括弧({和})放在一起構(gòu)成一個復(fù)合表達式。注釋:一行中,從“#”

開始到句子收尾之間的語句是注釋?;緮?shù)據(jù)類型:數(shù)值型(numeric)、字符型(character)、復(fù)數(shù)型(complex)和邏輯型(logical)?;緮?shù)據(jù)結(jié)構(gòu):向量(vector)、數(shù)組(array)、矩陣(matrix)、數(shù)據(jù)框(dataframe)、列表(list)、因子(factor)等。R語言特點(復(fù)習(xí))數(shù)據(jù)類型x

8a

'city'變量的賦值基本賦值語句answer

value變量名/賦值對象值賦值符號R語言常見的數(shù)據(jù)類型:字符型、數(shù)值型、邏輯型、復(fù)數(shù)型此外還有一些特殊值:NA:表示缺失值(Missingvalue),是“NotAvailable”的縮寫Inf:表示無窮大,是“Infinite”的縮寫NaN:表示非數(shù)值,是“NotaNumber”的縮寫NULL:表示空值,即沒有內(nèi)容數(shù)據(jù)類型數(shù)據(jù)類型辨別函數(shù)轉(zhuǎn)換函數(shù)characteris.character()as.character()complexis.complex()as.complex()integeris.integer()as.integer()logicalis.logical()as.logical()numericis.numeric()as.numeric()NAis.na()as.na()在R中,字符型的日期值無法進行日期變量的計算,可通過日期值處理函數(shù),將字符型的日期值轉(zhuǎn)換成日期變量。日期類型函數(shù)功能Sys.Date()返回系統(tǒng)當(dāng)前的日期Sys.time()返回系統(tǒng)當(dāng)前的日期和時間date()返回系統(tǒng)當(dāng)前的日期和時間(返回的值為字符串)as.Date()將字符串形式的日期值轉(zhuǎn)換為日期變量as.POSIXlt將字符串轉(zhuǎn)化為包含時間及時區(qū)的日期變量strptime()將字符型變量轉(zhuǎn)化為包含時間的日期變量strftime()將日期變量轉(zhuǎn)換成指定格式的字符型變量format()將日期變量轉(zhuǎn)換成指定格式的字符串a(chǎn)s.Date():將字符串形式的日期值轉(zhuǎn)換為日期變量。使用格式:as.Date(x,format="",...)其中x是要轉(zhuǎn)換的對象,為字符型數(shù)據(jù),format則給出了用于讀入日期的適當(dāng)格式。日期類型符號含義示例符號含義示例%d數(shù)字表示的日期01~31%Y四位數(shù)的年份2023%a縮寫的星期名Mon%H24小時制小時00-23%A非縮寫的星期名Monday%I12小時制小時01-12%w數(shù)字表示0-6%pAM/PM指示AM/PM%m數(shù)字表示的月份00~12%M十進制的分鐘00-60%b縮寫的月份Jan%S十進制的秒00-60%B非縮寫的月份January%y二位數(shù)的年份16其他日期類型as.POSIXlt()strptime()strftime()format()

日期類型#時間變量的轉(zhuǎn)換#創(chuàng)建一個字符型日期時間變量>x<-c("2023-02-0810:07:52","2023-08-0719:33:02")#判定是否為字符型變量>is.character(x)[1]TRUE#對字符串形式的日期時間值按照格式進行轉(zhuǎn)換>as.POSIXlt(x,tz="","%Y-%m-%d%H:%M:%S")[1]"2023-02-0810:07:52CST""2023-08-0719:33:02CST">(x<-strptime(x,"%Y-%m-%d%H:%M:%S"))[1]"2023-02-0810:07:52CST""2023-08-0719:33:02CST">strftime(x,format="%Y/%m/%d")[1]"2023/02/08""2023/08/07“#輸出的格式轉(zhuǎn)換成format定義的格式>format(x,"%d/%m/%Y")[1]"08/02/2023""07/08/2023"查看對象的類型使用格式:class(x)、mode(x)、typeof(x)。其中x為需要查看類型的對象。mode()函數(shù)查看數(shù)據(jù)的大類,class()函數(shù)查看數(shù)據(jù)的類,typeof()函數(shù)則更加細化,查看數(shù)據(jù)的細類。對于未知類型的對象,在R中有3個函數(shù)可以查看對象的類型:>df<-data.frame(c1=letters[1:3],c2=1:3,c3=c(1,-1,3.0),stringsAsFactors=F)>sapply(df,mode)c1c2c3"character""numeric""numeric">sapply(df,class)c1c2c3"character""integer""numeric">sapply(df,typeof)c1c2c3"character""integer""double"數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)R有許多用于存儲數(shù)據(jù)的結(jié)構(gòu),包括向量、矩陣、數(shù)組、數(shù)據(jù)框、列表和因子。向量向量的創(chuàng)建、等差序列、重復(fù)序列、向量索引、NA和NULL值、編輯、排序矩陣和數(shù)組矩陣的創(chuàng)建、合并、拉直、索引、行和列的計算、行列命名、數(shù)組創(chuàng)建、維度數(shù)據(jù)框和列表數(shù)據(jù)框的創(chuàng)建、索引、列表的創(chuàng)建、索引因子因子的創(chuàng)建、level(水平)、因子序列、因子的存儲數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):向量向量以一維數(shù)組的方法管理數(shù)據(jù),是R語言中最基本的數(shù)據(jù)結(jié)構(gòu)。向量可以是數(shù)值型、字符型、邏輯值型(T、F)和復(fù)數(shù)型。實例:創(chuàng)建不同類型的向量“:”運算符,生成指定范圍內(nèi)數(shù)值構(gòu)成的向量。一個向量的所有元素都必須屬于相同的類型。如果不是,R將強制執(zhí)行類型轉(zhuǎn)換。>x1<-c(1,2,3,4)#創(chuàng)建數(shù)值型向量,可寫成x1=c(1:4)>x2<-c("a","b","c","d")#創(chuàng)建字符型變量>x3<-c(TRUE,FALSE,FALSE,TRUE)#創(chuàng)建邏輯型變量向量c()函數(shù)創(chuàng)建向量length()測向量長度>w<-c(1,3,4,5,6,7)>length(w)[1]6>mode(w)[1]“numeric”>w2<-c(T,F,T)>length(w2)[1]3>mode(w2)[1]"logical">w1<-c('張三','李四','王五')>length(w1)[1]3>mode(w1)[1]"character"向量一個向量的所有元素都必須屬于相同的類型。如果不是,R將強制執(zhí)行類型轉(zhuǎn)換。>w4<-c(w,w1)>w4[1]"1""3""4""5""6""7""張三""李四""王五">mode(w4)[1]"character">w5<-c(w1,w2)>w5[1]"張三""李四""王五""TRUE""FALSE""TRUE">mode(w5)[1]"character">(w<-seq(1:10))

[1]12345678910>(x<-sqrt(w))[1]1.0000001.4142141.7320512.0000002.2360682.4494902.6457512.8284273.0000003.162278向量的運算R語言最強大的方面之一就是函數(shù)的向量化。向量的算術(shù)運算如果兩個向量的長度不同?>(w1<-c(2,3,2,3))[1]2323>(w2<-c(3,1,4,2,5,3))[1]314253>(w<-w1+w2)[1]546576Warningmessage:Inw1+w2:longerobjectlengthisnotamultipleofshorterobjectlengthseq(from=1,to=1,by=((to-from)/(length.out-1)),length.out=NULL,along.with=NULL,...)等差序列的創(chuàng)建seq()產(chǎn)生等距間隔的數(shù)列,其基本形式為:參數(shù)描述from等差數(shù)列的首項數(shù)據(jù),默認為1to等差數(shù)列的尾項數(shù)據(jù),默認為1by等差的數(shù)值length.out產(chǎn)生向量的長度>(seq(1,-9))[1]10-1-2-3-4-5-6-7-8-9>(seq(1,-9,length=5))[1]1.0-1.5-4.0-6.5-9.0>(seq(1,-9,by=-2))[1]1-1-3-5-7-9>(seq(1,10,2))[1]13579重復(fù)序列的創(chuàng)建rep()是重復(fù)函數(shù),其基本形式:rep(x,n)其中x是預(yù)重復(fù)的序列,n是重復(fù)的次數(shù)。>(rep(1:4,2))[1]12341234>(rep(1:4,each=2))[1]11223344>(rep(1:4,c(2,2,2,2)))[1]11223344>(rep(1:4,c(2,1,2,1)))[1]112334>(rep(1:4,each=2,len=4))[1]1122>(rep(1:4,each=2,times=3))[1]112233441122334411223344練習(xí)創(chuàng)建一個向量x,內(nèi)含等差數(shù)列:首位為1.7,等差為0.1,長度為5創(chuàng)建向量y,y為重復(fù)序列:元素為“red”、“orange”、“green”,各元素重復(fù)兩次,序列長度為5向量索引索引,用方括號[]來實現(xiàn),也稱之為子集、下標或切片。索引是R中最重要和最常用的運算符。索引用來選擇向量中部分或個別元素來構(gòu)成子向量。向量1[向量2]:向量1中索引為向量2的那些元素。atcbfgh1234567vector:index:向量索引

R語言中,提供如下多種索引方法。給向量傳入正數(shù),它會返回此位置上的向量元素切片。它的第一個位置是1(而不像其他某些語言一樣是0)。給向量傳入負數(shù),它會返回一個向量切片,它將包含除了這些位置以外的所有元素。給向量傳入一個邏輯向量,它會返回一個向量切片,里面只包含索引為TRUE的元素。對于已命名的向量,給向量傳入命名的字符向量,將會返回向量中包含這些名字的元素切片。向量索引x[n] 第n個元素x[-n] 除了第n個元素的xx[1:n] 前n個元素x[-(1:n)] 第n+1至最后的元素x[c(1,4,2)] 指定元素x["name"] 名為"name"的元素x[x>3] 所有大于3的元素x[x>3&x<5] 區(qū)間(3,5)的元素x[x%in%c("a","and","the")]給定組中的元素例向量索引>x<-c(2,4,6,8,1)>x[c(1,3,5)][1]261>x[c(-2,-4)][1]261>x[c(TRUE,FALSE,TRUE,FALSE,TRUE)][1]261>names(x)<-c('one','two','three','four','five')>x[c('one','three','four')]onethreefour268>x[c(1,-1)]Errorinx[c(1,-1)]:only0'smaybemixedwithnegativesubscripts如果給每個元素命名,該方法也將返回相同的值:三個索引方法都將返回相同的值:混合使用正負值是不允許的,會拋出一個錯誤:NA和NULL值NA:缺失值,NULL:不存在的值。subset()函數(shù),在向量中篩選符合條件的值,它可以自動過濾NA值。>x<-c(2,4,6,8,1,NA)>subset(x,x>5)[1]6,8>x[x>5][1]6,8,NA>x<-c(2,4,6,NA)>mean(x)[1]NA>mean(x,na.rm=T)[1]4>x<-c(2,4,6,NULL)>mean(x)4向量索引which()函數(shù)將返回邏輯向量中為TRUE的位置。which.min和which.max分別是which(min(x))和which(max(x))的簡寫:>x<-c(2,4,6,8,1)>which(x>3)[1]234>which.min(x)[1]5>which.max(x)[1]4向量編輯R語言可以對已經(jīng)創(chuàng)建好的向量直接進行元素擴展及刪除等編輯操作。向量中元素的刪除通過減號加元素下標的形式實現(xiàn)。例:向量元素的擴展及刪除#向量編輯>x<-c(1,2,3,4)#向量擴展>(x<-c(x,c(5,6,7)))[1]1234567#單個元素的刪除>(x<-x[-1])[1]234567#多個元素的刪除>(x<-x[c(3:5)])[1]456使用sort()等函數(shù)進行排序。向量排序sort()函數(shù)常用參數(shù)常用參數(shù)參數(shù)描述選項x

排序的對象排序的對象為數(shù)值型,也可以是字符型。decreasing

排序的順序默認設(shè)置為FALSE,即升序排序。設(shè)置為TRUE時,為降序排序。na.last

是否將缺失值放到序列的最末尾。默認設(shè)置為FALSE,設(shè)置為TRUE時將向量中的NA值放到序列的最末尾。向量vector用于描述一維數(shù)據(jù),是R語言中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)形式。矩陣matrix描述二維數(shù)據(jù),和向量相似,其內(nèi)部元素可以是實數(shù)、復(fù)數(shù)、字符、邏輯型數(shù)據(jù)。矩陣matrix使用兩個下標來訪問元素,A[i,j]表示矩陣A第i行、第j列的元素。多維數(shù)組array描述多維數(shù)據(jù)。array有一個特征屬性叫維數(shù)向量(dim屬性),它的長度是多維數(shù)組的維數(shù),dim內(nèi)的元素則是對應(yīng)維度的長度。矩陣是數(shù)組的特殊情況,它具有兩個維度。數(shù)據(jù)結(jié)構(gòu):矩陣和數(shù)組matrix()函數(shù),以向量形式輸入矩陣中的全部元素,使用ncol和nrow設(shè)置矩陣的行和列數(shù)。注意向量1~10是按列填充的,如果想要以行為單位填充,則可以將參數(shù)byrow設(shè)置為TRUE。矩陣創(chuàng)建>(w<-seq(1:10))[1]12345678910>(a<-matrix(w,nrow=5,ncol=2))[,1][,2][1,]16[2,]27[3,]38[4,]49[5,]510>(a<-matrix(w,nrow=5,ncol=2,byrow=T))[,1][,2][1,]12[2,]34[3,]56[4,]78[5,]910在創(chuàng)建矩陣時,也可以使用dimnames參數(shù)設(shè)置行和列的名稱。矩陣創(chuàng)建>(a<-matrix(w,nrow=5,ncol=2,byrow=T,dimnames=list(paste0('r',1:5),paste0('l',1:2))))l1l2r112r234r356r478r5910函數(shù)cbind()把其橫向拼成一個大矩陣,rbind()把其縱向拼成一個大矩陣。合并cbind()時高度(行數(shù))應(yīng)該相等。rbind()合并時寬度相等。如果參與合并的變量不一致,則循環(huán)不足后合并。矩陣合并>(x1<-cbind(c(1,2),c(3,4)))[,1][,2][1,]13[2,]24>(x1<-rbind(c(1,2),c(3,4)))[,1][,2][1,]12[2,]34>cbind(x1,1)[,1][,2][,3][1,]121[2,]341矩陣的拉直設(shè)A是一個矩陣,則函數(shù)as.vector(A)可以將矩陣轉(zhuǎn)化為向量。如:>(A<-matrix(1:6,2,3))[,1][,2][,3][1,]135[2,]246>as.vector(A)[1]123456矩陣的行或列計算colSums()對矩陣各列求和colMeans()求矩陣各列的均值rowSums()對矩陣各行求和rowMeans()求矩陣各列的均值>(A<-matrix(1:16,4,4))[,1][,2][,3][,4][1,]15913[2,]261014[3,]371115[4,]481216>colSums(A)[1]10264258>colMeans(A)[1]2.56.510.514.5>rowSums(A)[1]28323640>rowMeans(A)[1]78910R語言中有豐富的矩陣運算的函數(shù),包括四則運算、對矩陣各行列的求和、對矩陣各行列的求均值、轉(zhuǎn)置等。矩陣的運算函數(shù)功能+-*/四則運算,要求矩陣的維數(shù)相同,對對應(yīng)位置的各元素進行運算colSums()對矩陣的各列求和rowSums()對矩陣的各行求和colMeans()對矩陣的各列求均值rowMeans()對矩陣的各行求均值t()對矩陣的行列進行轉(zhuǎn)置det()求解方陣的行列式outer()求解矩陣的外積(叉積)%*%矩陣乘法,要求第一個矩陣的列數(shù)與第二個矩陣的行數(shù)相同diag()對矩陣取對角元素,若對象為向量,則生成以向量為對角元素的對角矩陣solve()對矩陣求解逆矩陣,要求矩陣可逆x[i,j] 下標為(i,j)的元素x[i,] 第i行x[,j] 第j列x[,c(1,3)]第1和3列x["name",]名為"name"的行矩陣索引數(shù)組是矩陣的擴展,它把數(shù)據(jù)的維度擴展到兩個以上。通過函數(shù)array()方便地創(chuàng)建數(shù)組。數(shù)組創(chuàng)建建立一個三維數(shù)據(jù)的數(shù)組,其維度是2*5*3。在結(jié)果中會依次展示3個2行5列的矩陣。>(w_array<-array(1:30,dim=c(2,5,3))),,1[,1][,2][,3][,4][,5][1,]13579[2,]246810,,2[,1][,2][,3][,4][,5][1,]1113151719[2,]1214161820,,3[,1][,2][,3][,4][,5][1,]2123252729[2,]2224262830對于矩陣和數(shù)組,dim()

函數(shù)將返回其維度的整數(shù)值向量:對于矩陣,函數(shù)nrow()

和ncol()

將分別返回行數(shù)和列數(shù):矩陣行、列和維度>a_matrix<-matrix(1:10,nrow=5,ncol=2)>w_array<-array(1:30,dim=c(2,5,3))>dim(a_matrix)[1]52>dim(w_array)[1]253>nrow(a_matrix)[1]5>ncol(a_matrix)[1]2建立下圖所示的矩陣:對第2行、第3列進行索引練習(xí)v1v2v3v4u112710u234811u356912數(shù)據(jù)框data.frame和列表list,也是一個二維數(shù)據(jù)。在使用R語言進行數(shù)據(jù)分析和挖掘的過程中,向量和數(shù)據(jù)框的使用頻率是最高的,list則在存儲較復(fù)雜的數(shù)據(jù)時作為數(shù)據(jù)對象類型。數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)框和列表數(shù)據(jù)框是僅次于向量的最重要的數(shù)據(jù)對象類型。在實際操作中,通常會用數(shù)據(jù)框的一列代表某一變量屬性的所有取值,用一行代表某一樣本數(shù)據(jù)。data.frame()函數(shù)可以直接把多個向量建立為一個數(shù)據(jù)框,并為列設(shè)置名稱。數(shù)據(jù)框創(chuàng)建>(my.datasheet<-data.frame(site=c('A','B','A','A','B'),+season=c('winter','summer','summer','spring','fall'),+pH=c(7.4,6.3,8.6,7.2,8.9)))siteseasonpH1Awinter7.42Bsummer6.33Asummer8.64Aspring7.25Bfall8.9可以通過names(<數(shù)據(jù)框>)來讀取并編輯列名稱。數(shù)據(jù)框創(chuàng)建>names(my.datasheet)[1]"site""season""pH">names(my.datasheet)[1]<-'type'>names(my.datasheet)[1]"type""season""pH"索引列<數(shù)據(jù)框?qū)ο?gt;[,列下標向量],直接獲取相應(yīng)列的所有元素,并以數(shù)據(jù)框?qū)ο笮问椒祷亍@篿ris[,2]索引行<數(shù)據(jù)框?qū)ο?gt;[行下標,],直接獲取相應(yīng)行的所有元素,例如:iris[1:2,]數(shù)據(jù)框索引列名稱索引列下標索引<數(shù)據(jù)框?qū)ο?gt;$列名稱<數(shù)據(jù)框?qū)ο?gt;[[“名稱”]]<數(shù)據(jù)框?qū)ο?gt;[[列下標]]<數(shù)據(jù)框?qū)ο?gt;[,列下標]iris$Sepal.Lengthiris[["Sepal.Length"]]iris[[2]]iris[,2]iris[1:2,]list()可以用于創(chuàng)建列表對象。例:以下對象my.list由三個成分組成:第一個是名稱為stud.id的數(shù)值,第二個是名稱為的字符串,第三個是名稱為stud.marks的數(shù)值向量。列表創(chuàng)建>(my.list<-list(stud.id=34453,+='張三',+stud.marks=c(14.3,12,15,19)))$stud.id[1]34453$[1]"張三"$stud.marks[1]14.312.015.019.0可以使用函數(shù)length()來檢查列表成分的個數(shù)可以通過函數(shù)unlist()把列表中的所有元素轉(zhuǎn)換為向量元素,轉(zhuǎn)換后的向量元素的個數(shù)和列表中所有數(shù)據(jù)對象的個數(shù)相同。列表創(chuàng)建>unlist(my.list)stud.idstud.marks1stud.marks2stud.marks3stud.marks4"34453""張三""14.3""12""15""19“>length(my.list)[1]3列表索引索引x[n] 列表顯示元素nx[[n]] 列表的第n個元素x[["name"]]名為"name"的元素x$name 同上.因子提供了一個簡單而又緊湊的形式來處理分類數(shù)據(jù)。因子用level(水平)來表示所有可能的取值。如果數(shù)據(jù)集有取值個數(shù)固定的分類變量,因子特別有用。通過factor()函數(shù)創(chuàng)建因子,使用格式:factor(x=character(),levels,labels=levels,exclude=NA,ordered=is.ordered(x),nmax=NA)數(shù)據(jù)結(jié)構(gòu):因子通過factor()函數(shù)創(chuàng)建因子,參數(shù)如下。創(chuàng)建因子參數(shù)描述x表示需要創(chuàng)建為因子的數(shù)據(jù),是一個向量levels表示所創(chuàng)建的因子數(shù)據(jù)的水平,如果不指定的話,就是x中不重復(fù)的所有值labels用來標識這一水平的名稱,與水平一一對應(yīng),方便用戶識別exclude表示有哪些水平是不需要的ordered一個邏輯值,若為TRUE,表示有序因子,為FALSE則表示無序因子nmax表示水平個數(shù)的上限通過gl()函數(shù)創(chuàng)建因子。創(chuàng)建因子使用格式:gl(n,k,length=n*k,labels=seq_len(n),ordered=FALSE)參數(shù)描述n表示因子水平的個數(shù)k表示每個水平的重復(fù)數(shù)length表示生成的序列的長度labels一個n維向量,表示因子水平ordered一個邏輯值,若為TRUE,表示有序因子,為FALSE則表示無序因子通過下面的例子,可以加深理解因子的儲存形式。因子型數(shù)據(jù)的儲存原理>chr<-c('R','Python','R','Ruby','Lisp','R')>class(chr)[1]"character">(f<-factor(chr))[1]RPythonRRubyLispRLevels:LispPythonRRuby>class(f)[1]"factor">storage.mode(f)[1]"integer">as.numeric(f)[1]323413>levels(f)[1]"Lisp""Python""R""Ruby"通過這個例子,可以知道f的類型是整數(shù)形式,并且1對應(yīng)的是“Lisp”,2對應(yīng)的是“Python”,3對應(yīng)的是“R”,4對應(yīng)的是“Ruby”,這些是按照字母順序排序的。小結(jié)數(shù)據(jù)類型數(shù)值型(numeric)、字符型(character)、復(fù)數(shù)型(complex)、邏輯型(logical)、特殊值數(shù)據(jù)結(jié)構(gòu)向量(vector)、數(shù)組(array)、矩陣(matrix)、數(shù)據(jù)框(dataframe)、列表(list)、因子(factor)綜合實驗鞏固R語言數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)的概念。掌握數(shù)據(jù)對象轉(zhuǎn)換和辨別函數(shù)的使用方法。掌握向量、矩陣、數(shù)組、數(shù)據(jù)框、列表、因子的常用方法,并能靈活綜合運用。熟悉集成開發(fā)環(huán)境RStudio。能夠通過help方法自學(xué)函數(shù)及其中參數(shù)的用法。實驗?zāi)繕说?章講義中的案例第2章綜合實驗第2章使用的函數(shù)第2章思考與練習(xí)實驗內(nèi)容及資料目標:掌握數(shù)據(jù)對象轉(zhuǎn)換和辨別函數(shù)的使用方法。內(nèi)容:學(xué)習(xí)R中常見數(shù)據(jù)類型的辨別與轉(zhuǎn)換函數(shù),從中選擇3-5個函數(shù)編程實現(xiàn),并分析數(shù)據(jù)對象的類型。思路:數(shù)據(jù)類型的辨別與轉(zhuǎn)換數(shù)據(jù)類型的查看實驗1:數(shù)據(jù)對象的轉(zhuǎn)換數(shù)據(jù)類型辨別函數(shù)轉(zhuǎn)換函數(shù)數(shù)值型(numeric)is.numeric()as.numeric()字符型(character)is.character()as.character()邏輯型(logical)is.logical()as.logical()復(fù)數(shù)型(complex)plex()plex()整數(shù)型(integer)eger()eger()浮點型(double)is.double()as.double()特殊值(NA)is.na()as.na()mode()class()typeof()目標:學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握向量的運用。內(nèi)容:實驗2:向量A班《微積分》與《線性代數(shù)》成績?nèi)缦拢何⒎e分

1008877665544線性代數(shù)997060873191(1)利用R語言向量求出班里人數(shù)(2)求出微積分成績的最大值和最小值length(x)#判斷向量的長度which.min(x)#求向量的最小值所在的位置x[which.min(x)]#索引最小值位置的數(shù)值目標:學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握矩陣的運用。內(nèi)容:實驗3:矩陣1.創(chuàng)建矩陣(1)將已有數(shù)據(jù)轉(zhuǎn)化為矩陣(2)特殊矩陣的快捷創(chuàng)建方法2.矩陣的查看(1)查看矩陣的維數(shù)(2)提取矩陣的行數(shù)與列數(shù)(3)引用元素(4)給行列命名(5)調(diào)用行列名3.矩陣的運算(1)將多個矩陣合并(2)矩陣的加減乘(3)矩陣的逆(4)矩陣的轉(zhuǎn)置(5)特征值分解實驗3:矩陣matrixmatrix(0,nrow=3,ncol=3)diag(rep(1,4)))#創(chuàng)建一個對角線上全是1的矩陣,diag為對角矩陣diag(1:4)#創(chuàng)建一個對角線上元素不同的矩陣dim()#查看矩陣的維數(shù)nrow()#查看矩陣的行數(shù)ncol()#查看矩陣的列數(shù)colnames(M)=paste0(“x_”,1:4)#給矩陣的列命名rownames(M)=1:3#給矩陣的行命名rbind(A,B)#將矩陣列對齊,行相加(r代表行,row)cbind(A,B)#將矩陣行對齊,列相加(c代表列,col)solve()#矩陣的逆t()#矩陣的轉(zhuǎn)置實驗3:矩陣設(shè)有如下所示矩陣(1)創(chuàng)建矩陣,將上述矩陣存入變量x中;(2)將列向量(2,3,4)合并到矩陣x中得到矩陣y;(3)求矩陣y與yT(可以將yT命名為z)之和m,并在m中檢索出下標為[2,3]的元素輸出。122335matrix(c(1,2,3,2,3,5),nrow=3)cbind(x,c(2,3,4))#矩陣和合并z<-t(y)#求y的轉(zhuǎn)置m<-y+z#求和目標:學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握數(shù)組的運用。內(nèi)容:實驗4:數(shù)組(1)創(chuàng)建數(shù)組(2)數(shù)組維度的查看(3)數(shù)組的復(fù)制(4)數(shù)組的四則運算(5)數(shù)組的調(diào)用(6)數(shù)組元素的訪問#創(chuàng)建數(shù)組,數(shù)組維數(shù)為3,各維度值為2,3,4array(1:24,c(2,3,4))array(1:6,c(1,2,3),dimnames=list(c("A1"),c("B1","B2"),c("C1","C2","C3")))dim(z)#查看數(shù)組維度a[1,,]#調(diào)用每一組矩陣中的第一行result<-apply(result,c(1),sum)#計算合計值實驗4:數(shù)組創(chuàng)建一個3維數(shù)組(數(shù)組中數(shù)據(jù)為連續(xù)整數(shù),從1開始),各維度下標的最大值為2,3,4。數(shù)組各維度的名稱定義如下:dim1:("A1","A2")dim2:("B1","B2","B3")dim3:("C1","C2","C3","C4")(1)按要求創(chuàng)建數(shù)組z;(2)查看數(shù)組維度;(3)索引下標為[2,3,2]的元素,索引維度名稱為["A2","B3","C2"]的元素并將其值修改為30。z["A2","B3","C2"]<-30#將["A2","B3","C2

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論