




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Liu ChenR語言傻瓜教程1基礎(chǔ)0. 約定陰影為代碼或R的輸出內(nèi)容。1. 安裝1.1 安裝R和RStudio(1)從下載R語言相應(yīng)版本,雙擊安裝;(2)從下載RStudio安裝。1.2 說明(1)R語言本身僅提供了命令行工具,一般用戶可能會(huì)覺得使用不便,所以用RStudio作為工具來使用R語言;(2)RStudio僅為R的IDE(集成開發(fā)環(huán)境),依賴于R;(2)在蘋果系統(tǒng)中,啟動(dòng)RStudio時(shí)要求安裝command line tools,在彈出窗口中選擇安裝即可);(3)R和RStudio都是免費(fèi)開放源代碼的,所以盡可能在官方網(wǎng)站上下載(R在全球有很多鏡像,等同于官網(wǎng),上述下載地址即其在
2、北京交通大學(xué)的鏡像)。2. 運(yùn)行2.1 運(yùn)行R語言如果不使用RStudio,雙擊R語言圖標(biāo)(如下圖)即可啟動(dòng)。啟動(dòng)后如下圖所示,在提示符處輸入R語言命令。1.2 RStudio啟動(dòng)RStudio相對(duì)于R語言自身提供的命令行工具,使用要便捷得多。RStudio圖標(biāo)如下圖。啟動(dòng)后RStudio的環(huán)境如下圖所示。左側(cè)為同啟動(dòng)R時(shí)一樣的命行窗口;右上側(cè)為“環(huán)境”和“歷史”。環(huán)境是指當(dāng)前R語言的運(yùn)行環(huán)境,也稱為工作空間,在使用過程中所創(chuàng)建的變量、數(shù)據(jù)都在這里列出,而用戶在使用過程中輸入的命令都在“歷史”子窗口中列出。右側(cè)包括“文件”、“繪圖”、“擴(kuò)展包”、“幫助”、“視圖”等子窗口。相關(guān)功能在后續(xù)使用過
3、程中再詳細(xì)說明。除此之外RStudio還有很多默認(rèn)沒有顯示的子窗口,通過頂部菜單view中的選項(xiàng)可以選擇顯示它們。1.3 退出在退出時(shí),R和RStudio默認(rèn)都會(huì)彈出窗口詢問是否保存工作空間,如果選擇保存,則R或RStudio會(huì)保存全部的變量、數(shù)據(jù)等,下次打開R或RStudio時(shí)還可以繼續(xù)使用而不用再次輸入。如下分別為R和RStudio退出時(shí)的彈出窗口。3. R語言運(yùn)算符號(hào)運(yùn)算符號(hào):+(加)、-(減)、*(乘)、/(除)、(乘方)、%/%整除、%求余;邏輯判斷符號(hào):(大于)、=(大于等于)、=(小于等于)、!=(不等)、 =(相等)邏輯運(yùn)算符號(hào):&(邏輯與)、|(邏輯或,Enter鍵上邊的豎線
4、)賦值符號(hào):示例:在命令窗口輸入xa的功能與a-2一樣。賦值符號(hào)也可以用=替代,但是在某些情況下會(huì)出錯(cuò),所以不建議在R語言中使用。4. R語言數(shù)據(jù)類型4.1 基本數(shù)據(jù)類型R語言中基本數(shù)據(jù)類型是指僅包含一個(gè)數(shù)值的數(shù)據(jù)類型,主要包括數(shù)值型、字符型、邏輯型、空值等。(1)數(shù)值型如1,3.14等能夠進(jìn)行數(shù)學(xué)運(yùn)算的數(shù)字。(2)字符型即文本數(shù)據(jù),需放在雙引號(hào)或單引號(hào)之間,如a”、abc、張三。特別提示,這里的單引號(hào)和雙引號(hào)都是英文輸入法下的雙引號(hào)和單引號(hào),中文的符號(hào)只能算是普通文本。在各種編程語言中,中文標(biāo)點(diǎn)都只能作為同普通文本一樣的字符使用,代碼中不應(yīng)出現(xiàn),如下代碼會(huì)出現(xiàn)錯(cuò)誤:x-“hello R”y-
5、hello R下面是正確代碼(注意引號(hào)):x-hello Ry- hello R用中文標(biāo)點(diǎn)符號(hào)替代英文符號(hào)是初學(xué)編程的人最容易出現(xiàn)的錯(cuò)誤,需特別注意以免打擊學(xué)習(xí)積極性。(3)邏輯型邏輯型數(shù)據(jù)只有兩個(gè)取值TRUE和FALSE,TRUE和FALSE必須是大寫的。TRUE和FALSE可以分別簡(jiǎn)寫為T和F,也必須大寫。如:x-TRUEy-FALSE(4)空值在統(tǒng)計(jì)數(shù)據(jù)中常常會(huì)出現(xiàn)一些缺失的值,R語言中用一個(gè)特殊的值NA(大寫)來表示。NA與其他數(shù)據(jù)的運(yùn)算結(jié)果都是NA。如:x-NA有時(shí)候,不能確定一個(gè)變量是否是空值,R語言提供了一個(gè)函數(shù)is.na()用來判斷是否空值,如:x-NAis.na(x)結(jié)果為T
6、RUE。4.2 數(shù)據(jù)對(duì)象R語言中數(shù)據(jù)對(duì)象是指包含一組數(shù)值的數(shù)據(jù)類型,主要包括向量、矩陣、數(shù)組、列表、數(shù)據(jù)框。(1)向量向量是由相同基本類型數(shù)值組成的序列,可以認(rèn)為其等同于數(shù)學(xué)中的向量,在R語言中向量的使用相當(dāng)頻繁。在R語言中使用函數(shù)c()來創(chuàng)建一個(gè)向量,如:x-c(1,2,3,4,5)x輸出為:1 1 2 3 4 5其中1為輸出內(nèi)容的行號(hào)。a. 向量運(yùn)算向量的加減乘除運(yùn)算是對(duì)向量元素的加減乘除運(yùn)算。輸入xc(1,2,3,4)x+1x輸出為1 2 3 4 5輸入x-c(1,2,3,4)y-c(1,1,1,1)x+y輸出為1 2 3 4 5。b. 快速生成有序向量(函數(shù)seq和rep)在需要大量有
7、序數(shù)值向量時(shí),為了避免手工輸入的麻煩,R語言提供了快速生成的方法。如:輸入x-1:10x輸出為1 1 2 3 4 5 6 7 8 9 10輸入x-10:1x輸出為1 10 9 8 7 6 5 4 3 2 1上述利用“:”只能生成步長(zhǎng)為1的向量,若要生成任意步長(zhǎng)的向量需要使用函數(shù)seq(),它有三個(gè)參數(shù),(最小值,最大值,步長(zhǎng))。如:輸入x-seq(1,20,2)x輸出為1 1 3 5 7 9 11 13 15 17 19輸入x-seq(1,5,0.5)x輸出為1 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0別外一個(gè)函數(shù)rep()可以通過重復(fù)一個(gè)基本數(shù)值或數(shù)值對(duì)象多次來
8、創(chuàng)建一個(gè)較長(zhǎng)的向量,它有二個(gè)參數(shù),(數(shù)據(jù),重復(fù)次數(shù))。如:輸入x-rep(1,10)x輸出1 1 1 1 1 1 1 1 1 1 1輸入x-rep(c(1,2,3),3)x輸出1 1 2 3 1 2 3 1 2 3c. 向量索引向量索引也稱為向量中數(shù)值元素的下標(biāo),用來引用向量中的單個(gè)數(shù)值,用方括號(hào)表示,如:輸入x-c(1,2,3,4,5)x1輸出1 1向量索引除了引用單個(gè)值之外,還起過濾的作用,如:輸入x3輸出x中大于3的數(shù)值1 4 5d. 常用的向量函數(shù)函數(shù)名功能示例,已知x-c(2,1,5,3,4),y-c(8,9)輸入輸出sum求和sum(x)1 15max最大值max(x)1 5min
9、最小值min(x)1 1mean均值mean(x)1 3length長(zhǎng)度length(x)1 5var方差var(x)1 2.5sd標(biāo)準(zhǔn)差sd(x)1 1.581139median中位數(shù)median(x)1 3quantile五個(gè)分位數(shù)quantile(x)0% 25% 50% 75% 100% 1 2 3 4 5sort排序sort(x)sort(x,TRUE)1 1 2 3 4 51 5 4 3 2 1rev倒序rev(x)1 4 3 5 1 2append添加append(x,8)append(x,y)1 2 1 5 3 4 81 2 1 5 3 4 8 9replace替換replac
10、e(x,1,7)replace(x,c(1,2),7)1 7 1 5 3 41 7 7 5 3 4提示:利用help函數(shù)可以查看R語言文檔。例如,當(dāng)不知道replace函數(shù)的功能時(shí),輸入help(replace),在RStudio右下的help窗口中即顯示repalce函數(shù)的詳細(xì)說明。(2)矩陣矩陣運(yùn)算雖然是統(tǒng)計(jì)理論的重要工具,但與基本統(tǒng)計(jì)方法的應(yīng)用關(guān)系不大,因此沒有矩陣運(yùn)算基礎(chǔ)可以跳過本部分。R語言中的矩陣基本等同與數(shù)學(xué)中的矩陣。R語言中使用matrix函數(shù)創(chuàng)建一個(gè)矩陣。matrix函數(shù)有三個(gè)參數(shù),(數(shù)值向量,行數(shù),列數(shù))。如:輸入x-matrix(c(1,2,3,4),2,2)x輸出兩行兩
11、列的矩陣及其行號(hào)和列號(hào) ,1 ,21, 1 32, 2 4matrix還有第四個(gè)參數(shù)byrow,即數(shù)據(jù)向量轉(zhuǎn)為矩陣時(shí)數(shù)據(jù)的排列順序,其默認(rèn)值為FALSE,如:輸入x-matrix(c(1,2,3,4),2,2,TRUE)輸出 ,1 ,21, 1 22, 3 4a. 矩陣運(yùn)算矩陣的+-*/運(yùn)算是對(duì)矩陣元素的運(yùn)算,如:輸入x-matrix(c(1,2,3,4),2,2)x*2輸出 ,1 ,21, 2 62, 4 8輸入x-matrix(c(1,2,3,4),2,2)y-matrix(c(5,6,7,8),2,2)x+y輸出 ,1 ,21, 6 102, 8 12矩陣運(yùn)乘法運(yùn)算符號(hào)為%*%,如:輸入
12、x-matrix(c(1,2,3,4),2,2)y-matrix(c(5,6,7,8),2,2)x%*%y輸出 ,1 ,21, 23 312, 34 46Why:X11=1*5+3*6=23b. 矩陣下標(biāo)矩陣下標(biāo)類似向量的下標(biāo)。所不同的是,向量是兩維的,下標(biāo)包括兩個(gè)數(shù)字,表示相應(yīng)元素所在的行和列,如:輸入x-matrix(c(1,2,3,4),2,2)x1,2輸出第一行第二列元素1 3c. 常用的矩陣函數(shù)函數(shù)名功能diag取對(duì)角元素/生成對(duì)角陣solve求逆/解線性方程組eigen求特征向量/特征值rank求秩(元素位置,矩陣秩可用qr()$rank)t轉(zhuǎn)置det行列式(3)數(shù)組R語言中,數(shù)組
13、是向量和矩陣的推廣,向量和矩陣是數(shù)組的特殊形式。向量是一維數(shù)組,而矩陣是二維數(shù)組。利用array()函數(shù)創(chuàng)建數(shù)組,其參數(shù)為(數(shù)據(jù)向量,維數(shù)向量)如:輸入x-array(c(1,2,3,4),c(2,2)x上述語句輸入數(shù)據(jù)為1,2,3,4,生成兩行兩列的數(shù)組,輸出為 ,1 ,21, 1 32, 2 4所以,array(c(1,2,3,4),c(2,2)等價(jià)于matrix(c(1,2,3,4),2,2)。利用array函數(shù)可以生成更高維的數(shù)組。注意:向量、矩陣和數(shù)組中也可以包含其他的數(shù)據(jù)類型,如字符型、邏輯型、空值。(4)列表向量、矩陣和數(shù)組要求元素必須為同一基本數(shù)據(jù)類型。如果一組數(shù)據(jù)需要包含多種
14、類型的數(shù)據(jù),則可以使用列表,如:輸入x-list(a=1,b=2,c=3)輸出為$a1 1$b1 2$c1 3與向量、矩陣和數(shù)組相比,列表沒有下標(biāo)號(hào),但是每個(gè)數(shù)據(jù)都有一個(gè)名字。數(shù)組使用下標(biāo)來引用元素,而列表用名字來引用元素,如:輸入x-list(a=1,b=2,c=3)x$a輸出1 1列表與向量、矩陣和數(shù)組的另一個(gè)重要區(qū)別是,向量、矩陣和數(shù)組的元素只能是一個(gè)簡(jiǎn)單基本數(shù)據(jù),而列表的元素還可以是其他的其他各種數(shù)據(jù)對(duì)象,比如向量、矩陣、數(shù)組或者另一個(gè)列表,如:輸入x-list(a=1,b=c(1,2,3),c=ab,d=c(a,c,c),e=matrix(c(1,2,3,4),2,2),f=list
15、(a=1,b=2)x這是一個(gè)復(fù)雜的列表,a為數(shù)字,b為向量,c為字符,d為字符向量,e為矩陣,而f為另一個(gè)列表。輸出為$a1 1$b1 1 2 3$c1 a$d1 a c c$e ,1 ,21, 1 32, 2 4$f$f$a1 1$f$b1 2列表的名字可以連續(xù)引用,輸入x$f$a輸出為1 1(5)數(shù)據(jù)框數(shù)據(jù)框是另一種可以有不同基本數(shù)據(jù)類型元素的數(shù)據(jù)對(duì)象。簡(jiǎn)單來說,一個(gè)數(shù)據(jù)框包含多個(gè)向量,向量的數(shù)據(jù)類型可以不一樣。因此,數(shù)據(jù)框是介于數(shù)組和列表之間的一種數(shù)據(jù)對(duì)象,與矩陣相比它可有不同數(shù)據(jù)類型,與列表相比它只能包含向量,而且這些向量的長(zhǎng)度通常是相等的。a. 創(chuàng)建數(shù)據(jù)框R語言使用data.fram
16、e()來創(chuàng)建數(shù)據(jù)框,如:輸入x-c(張三,李四,王五,趙六)y-c(男,女,女,男)z-c(89,90,78,67)data.frame(x,y,z)輸出為 x y z1 張三 男 892 李四 女 903 王五 女 784 趙六 男 67其中,每行行首的數(shù)字是該行名字,可以使用s()來重新為每行命名。輸入s(student)80,輸出 x y za 張三 男 89b 李四 女 905. 數(shù)據(jù)導(dǎo)入導(dǎo)出分別介紹利用RStudio導(dǎo)入數(shù)據(jù),利用R函數(shù)導(dǎo)入導(dǎo)出數(shù)據(jù)。初學(xué)者可以忽略后一種方法。假設(shè)有文件student.txt以及student.csv,csv文件是以Ta
17、b符號(hào)分隔的文本文件,Excel數(shù)據(jù)可以另存為csv文件(Mac 系統(tǒng)中建議使用Numbers編輯、導(dǎo)出csv文件,以避免出現(xiàn)亂碼)。這兩個(gè)文件內(nèi)容相同:姓名 性別 分?jǐn)?shù)張三 男 89李四 女 90王五 女 78趙六 男 675.1 利用RStudio導(dǎo)入數(shù)據(jù)頂部菜單選擇tools-Import Dataset-From Local File,彈出窗口選擇要導(dǎo)入的數(shù)據(jù)文件,然后彈出如下窗口:因?yàn)閿?shù)據(jù)文件中包含了列名,所以Heading選擇yes;文件中列是用逗號(hào)分隔的,所以Separator選擇Comma,點(diǎn)擊Import即可導(dǎo)入數(shù)據(jù)并保存入student對(duì)象。其他格式文件的導(dǎo)入方法一樣。5.
18、2 導(dǎo)入R包中的數(shù)據(jù)R的擴(kuò)展包中常常包含樣例數(shù)據(jù),這些數(shù)據(jù)有助于學(xué)習(xí)擴(kuò)展包的功能。此外,datasets包中包含大量的數(shù)據(jù),可以用來學(xué)習(xí)R語言。要想利用這些數(shù)據(jù),就要將它們導(dǎo)入到當(dāng)前工作空間中來。可以利用data函數(shù)導(dǎo)入擴(kuò)展包中的數(shù)據(jù),如:輸入data(package=datasets)該命令導(dǎo)入datasets包中的全部數(shù)據(jù)。輸入data()查看當(dāng)前工作空間的數(shù)據(jù)。輸入data(Nile,package=datasets)該命令僅將datasets包中的Nile數(shù)據(jù)導(dǎo)入工作空間。此外,R語言在工作空間中使用擴(kuò)展包前,要加載相應(yīng)的擴(kuò)展包,使用函數(shù)library可加載擴(kuò)展包,如:library(
19、datasets)加載擴(kuò)展包后,其中的數(shù)據(jù)集就會(huì)全部加載到工作空間中,可直接使用。5.3 利用R語言函數(shù)導(dǎo)入數(shù)據(jù)(1)讀入文本文件read.table(student.txt,header=T,sep=,)(2)讀入csv文件read.csv(student.csv,header=T,sep=,)(3)讀入SPSS數(shù)據(jù)read.spss(dataname.sav)注意:如果數(shù)據(jù)文件不在當(dāng)前工作目錄中,需要加上正確的相對(duì)或絕對(duì)路徑。5.4 導(dǎo)出數(shù)據(jù)(1)導(dǎo)出為文本write.table(student,student.txt)(2)導(dǎo)出為csv文件write.csv(student,studen
20、t.csv)6. 工作空間數(shù)據(jù)管理6.1 查看、刪除、編輯數(shù)據(jù)a.列出工作空間全部數(shù)據(jù)變量名ls()b. 刪除數(shù)據(jù)rm(dataname)c. 查看數(shù)據(jù)(注意大小寫)View(dataname)d. 查看dataframe前10行head(dataframe)e. 查看dataframe后10行tail(dataframe)f. 編輯數(shù)據(jù)edit(dataname)或者fix(dataname)g. 刪除矩陣或dataframe的行(假設(shè)有數(shù)據(jù)data)data-1, #刪除第一行datac(-1,-2), #刪除第一行和第二行data-1:-3, #刪除第一行到第三行h. 刪除矩陣或data
21、frame的列 (假設(shè)有數(shù)據(jù)data)data,-1 #刪除第一行data,c(-1,-2) #刪除第一行和第二行data,-1:-3 #刪除第一行到第三行6.2 變量處理a. dataframe添加一列或合并dataframedata.frame(old_dataframe,new_column)data.frame(dataframe1,dataframe2)b. 變量重命名方法1:edit()或fix()函數(shù)打開數(shù)據(jù)編輯器,點(diǎn)擊變量名可以對(duì)其進(jìn)行修改。方法2:names()函數(shù)。names()函數(shù)可以顯示dataframe的變量名,也可以通過賦值進(jìn)行修改,下述代碼將第一列變量名字改為ne
22、w_name:names(dataframe)1-new_namec. 變量類型判斷與轉(zhuǎn)換類型判斷轉(zhuǎn)換數(shù)值型is.numericas.numeric字符型is.characteras.character向量is.vectoras.vector矩陣is.matrixas.matrix數(shù)據(jù)框is.data.frameas.data.frame邏輯型is.logicalas.logical示例:輸入x-c(1,2,3,4)is.vector(x)輸出TRUE輸入xNew File-R Script即可以在RStudio中創(chuàng)建一個(gè)腳本文件。上述小節(jié)中在命令行中輸入的指令都要以放入腳本中。需要注意的是,R語言腳本每行只能入一條指令。如果一定要在一行中放置多條指令則需要用“;”隔開(英文輸入法下的分號(hào))。點(diǎn)擊RStuio工具欄中的圖標(biāo)也可以創(chuàng)建R腳本。在原生的R語言中,創(chuàng)建腳本選擇頂部菜單中File-New Document可以創(chuàng)建腳本。R語言腳本的擴(kuò)展名為R。R語言為腳本提供了完整的程序語言語法,如if、for、while等語句,以及函數(shù)function定義等,有興趣可以查找相關(guān)資
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)習(xí)心理與教學(xué)方法的優(yōu)化研究
- 混合學(xué)習(xí)未來教育的創(chuàng)新模式
- 全球化背景下國際教育的政策支持研究
- 中國教育培訓(xùn)機(jī)構(gòu)市場(chǎng)競(jìng)爭(zhēng)策略分析
- 心理驅(qū)動(dòng)教育心理學(xué)在學(xué)生自我管理中的應(yīng)用
- 教育技術(shù)趨勢(shì)報(bào)告提升教學(xué)效果的科技工具
- 基于創(chuàng)新教育政策的科技產(chǎn)業(yè)未來規(guī)劃及戰(zhàn)略部署探討
- 智慧辦公未來校園管理的新趨勢(shì)
- 商業(yè)培訓(xùn)中的教育創(chuàng)新提升培訓(xùn)效果的方法
- 教育科技與心理輔導(dǎo)的結(jié)合策略探索
- 湖北省黃岡市2024-2025學(xué)年高一下學(xué)期期末質(zhì)量監(jiān)測(cè)數(shù)學(xué)試卷
- 醫(yī)保drg付費(fèi)課件培訓(xùn)
- 彩妝知識(shí)培訓(xùn)
- 《食品生產(chǎn)經(jīng)營(yíng)企業(yè)落實(shí)食品安全主體責(zé)任監(jiān)督管理規(guī)定》解讀與培訓(xùn)
- 2025年日歷表(A4版含農(nóng)歷可編輯)
- 高空作業(yè)車外墻施工方案
- GB/T 5782-2016六角頭螺栓
- GB/T 23445-2009聚合物水泥防水涂料
- GB/T 13451.2-1992著色顏料相對(duì)著色力和白色顏料相對(duì)散射力的測(cè)定光度計(jì)法
- GB/T 11264-2012熱軋輕軌
- 山東省中小學(xué)校檔案管理暫行辦法
評(píng)論
0/150
提交評(píng)論