R語言傻瓜教程——1基礎(共15頁)_第1頁
R語言傻瓜教程——1基礎(共15頁)_第2頁
R語言傻瓜教程——1基礎(共15頁)_第3頁
R語言傻瓜教程——1基礎(共15頁)_第4頁
R語言傻瓜教程——1基礎(共15頁)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Liu ChenR語言傻瓜教程1基礎0. 約定陰影為代碼或R的輸出內容。1. 安裝1.1 安裝R和RStudio(1)從下載R語言相應版本,雙擊安裝;(2)從下載RStudio安裝。1.2 說明(1)R語言本身僅提供了命令行工具,一般用戶可能會覺得使用不便,所以用RStudio作為工具來使用R語言;(2)RStudio僅為R的IDE(集成開發(fā)環(huán)境),依賴于R;(2)在蘋果系統(tǒng)中,啟動RStudio時要求安裝command line tools,在彈出窗口中選擇安裝即可);(3)R和RStudio都是免費開放源代碼的,所以盡可能在官方網(wǎng)站上下載(R在全球有很多鏡像,等同于官網(wǎng),上述下載地址即其在

2、北京交通大學的鏡像)。2. 運行2.1 運行R語言如果不使用RStudio,雙擊R語言圖標(如下圖)即可啟動。啟動后如下圖所示,在提示符處輸入R語言命令。1.2 RStudio啟動RStudio相對于R語言自身提供的命令行工具,使用要便捷得多。RStudio圖標如下圖。啟動后RStudio的環(huán)境如下圖所示。左側為同啟動R時一樣的命行窗口;右上側為“環(huán)境”和“歷史”。環(huán)境是指當前R語言的運行環(huán)境,也稱為工作空間,在使用過程中所創(chuàng)建的變量、數(shù)據(jù)都在這里列出,而用戶在使用過程中輸入的命令都在“歷史”子窗口中列出。右側包括“文件”、“繪圖”、“擴展包”、“幫助”、“視圖”等子窗口。相關功能在后續(xù)使用過

3、程中再詳細說明。除此之外RStudio還有很多默認沒有顯示的子窗口,通過頂部菜單view中的選項可以選擇顯示它們。1.3 退出在退出時,R和RStudio默認都會彈出窗口詢問是否保存工作空間,如果選擇保存,則R或RStudio會保存全部的變量、數(shù)據(jù)等,下次打開R或RStudio時還可以繼續(xù)使用而不用再次輸入。如下分別為R和RStudio退出時的彈出窗口。3. R語言運算符號運算符號:+(加)、-(減)、*(乘)、/(除)、(乘方)、%/%整除、%求余;邏輯判斷符號:(大于)、=(大于等于)、=(小于等于)、!=(不等)、 =(相等)邏輯運算符號:&(邏輯與)、|(邏輯或,Enter鍵上邊的豎線

4、)賦值符號:示例:在命令窗口輸入xa的功能與a-2一樣。賦值符號也可以用=替代,但是在某些情況下會出錯,所以不建議在R語言中使用。4. R語言數(shù)據(jù)類型4.1 基本數(shù)據(jù)類型R語言中基本數(shù)據(jù)類型是指僅包含一個數(shù)值的數(shù)據(jù)類型,主要包括數(shù)值型、字符型、邏輯型、空值等。(1)數(shù)值型如1,3.14等能夠進行數(shù)學運算的數(shù)字。(2)字符型即文本數(shù)據(jù),需放在雙引號或單引號之間,如a”、abc、張三。特別提示,這里的單引號和雙引號都是英文輸入法下的雙引號和單引號,中文的符號只能算是普通文本。在各種編程語言中,中文標點都只能作為同普通文本一樣的字符使用,代碼中不應出現(xiàn),如下代碼會出現(xiàn)錯誤:x-“hello R”y-

5、hello R下面是正確代碼(注意引號):x-hello Ry- hello R用中文標點符號替代英文符號是初學編程的人最容易出現(xiàn)的錯誤,需特別注意以免打擊學習積極性。(3)邏輯型邏輯型數(shù)據(jù)只有兩個取值TRUE和FALSE,TRUE和FALSE必須是大寫的。TRUE和FALSE可以分別簡寫為T和F,也必須大寫。如:x-TRUEy-FALSE(4)空值在統(tǒng)計數(shù)據(jù)中常常會出現(xiàn)一些缺失的值,R語言中用一個特殊的值NA(大寫)來表示。NA與其他數(shù)據(jù)的運算結果都是NA。如:x-NA有時候,不能確定一個變量是否是空值,R語言提供了一個函數(shù)is.na()用來判斷是否空值,如:x-NAis.na(x)結果為T

6、RUE。4.2 數(shù)據(jù)對象R語言中數(shù)據(jù)對象是指包含一組數(shù)值的數(shù)據(jù)類型,主要包括向量、矩陣、數(shù)組、列表、數(shù)據(jù)框。(1)向量向量是由相同基本類型數(shù)值組成的序列,可以認為其等同于數(shù)學中的向量,在R語言中向量的使用相當頻繁。在R語言中使用函數(shù)c()來創(chuàng)建一個向量,如:x-c(1,2,3,4,5)x輸出為:1 1 2 3 4 5其中1為輸出內容的行號。a. 向量運算向量的加減乘除運算是對向量元素的加減乘除運算。輸入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ù)值向量時,為了避免手工輸入的麻煩,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上述利用“:”只能生成步長為1的向量,若要生成任意步長的向量需要使用函數(shù)seq(),它有三個參數(shù),(最小值,最大值,步長)。如:輸入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別外一個函數(shù)rep()可以通過重復一個基本數(shù)值或數(shù)值對象多次來

8、創(chuàng)建一個較長的向量,它有二個參數(shù),(數(shù)據(jù),重復次數(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ù)值元素的下標,用來引用向量中的單個數(shù)值,用方括號表示,如:輸入x-c(1,2,3,4,5)x1輸出1 1向量索引除了引用單個值之外,還起過濾的作用,如:輸入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長度length(x)1 5var方差var(x)1 2.5sd標準差sd(x)1 1.581139median中位數(shù)median(x)1 3quantile五個分位數(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語言文檔。例如,當不知道replace函數(shù)的功能時,輸入help(replace),在RStudio右下的help窗口中即顯示repalce函數(shù)的詳細說明。(2)矩陣矩陣運算雖然是統(tǒng)計理論的重要工具,但與基本統(tǒng)計方法的應用關系不大,因此沒有矩陣運算基礎可以跳過本部分。R語言中的矩陣基本等同與數(shù)學中的矩陣。R語言中使用matrix函數(shù)創(chuàng)建一個矩陣。matrix函數(shù)有三個參數(shù),(數(shù)值向量,行數(shù),列數(shù))。如:輸入x-matrix(c(1,2,3,4),2,2)x輸出兩行兩

11、列的矩陣及其行號和列號 ,1 ,21, 1 32, 2 4matrix還有第四個參數(shù)byrow,即數(shù)據(jù)向量轉為矩陣時數(shù)據(jù)的排列順序,其默認值為FALSE,如:輸入x-matrix(c(1,2,3,4),2,2,TRUE)輸出 ,1 ,21, 1 22, 3 4a. 矩陣運算矩陣的+-*/運算是對矩陣元素的運算,如:輸入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矩陣運乘法運算符號為%*%,如:輸入

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. 矩陣下標矩陣下標類似向量的下標。所不同的是,向量是兩維的,下標包括兩個數(shù)字,表示相應元素所在的行和列,如:輸入x-matrix(c(1,2,3,4),2,2)x1,2輸出第一行第二列元素1 3c. 常用的矩陣函數(shù)函數(shù)名功能diag取對角元素/生成對角陣solve求逆/解線性方程組eigen求特征向量/特征值rank求秩(元素位置,矩陣秩可用qr()$rank)t轉置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)等價于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ù)組相比,列表沒有下標號,但是每個數(shù)據(jù)都有一個名字。數(shù)組使用下標來引用元素,而列表用名字來引用元素,如:輸入x-list(a=1,b=2,c=3)x$a輸出1 1列表與向量、矩陣和數(shù)組的另一個重要區(qū)別是,向量、矩陣和數(shù)組的元素只能是一個簡單基本數(shù)據(jù),而列表的元素還可以是其他的其他各種數(shù)據(jù)對象,比如向量、矩陣、數(shù)組或者另一個列表,如:輸入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這是一個復雜的列表,a為數(shù)字,b為向量,c為字符,d為字符向量,e為矩陣,而f為另一個列表。輸出為$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ù)對象。簡單來說,一個數(shù)據(jù)框包含多個向量,向量的數(shù)據(jù)類型可以不一樣。因此,數(shù)據(jù)框是介于數(shù)組和列表之間的一種數(shù)據(jù)對象,與矩陣相比它可有不同數(shù)據(jù)類型,與列表相比它只能包含向量,而且這些向量的長度通常是相等的。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ù)導入導出分別介紹利用RStudio導入數(shù)據(jù),利用R函數(shù)導入導出數(shù)據(jù)。初學者可以忽略后一種方法。假設有文件student.txt以及student.csv,csv文件是以Ta

17、b符號分隔的文本文件,Excel數(shù)據(jù)可以另存為csv文件(Mac 系統(tǒng)中建議使用Numbers編輯、導出csv文件,以避免出現(xiàn)亂碼)。這兩個文件內容相同:姓名 性別 分數(shù)張三 男 89李四 女 90王五 女 78趙六 男 675.1 利用RStudio導入數(shù)據(jù)頂部菜單選擇tools-Import Dataset-From Local File,彈出窗口選擇要導入的數(shù)據(jù)文件,然后彈出如下窗口:因為數(shù)據(jù)文件中包含了列名,所以Heading選擇yes;文件中列是用逗號分隔的,所以Separator選擇Comma,點擊Import即可導入數(shù)據(jù)并保存入student對象。其他格式文件的導入方法一樣。5.

18、2 導入R包中的數(shù)據(jù)R的擴展包中常常包含樣例數(shù)據(jù),這些數(shù)據(jù)有助于學習擴展包的功能。此外,datasets包中包含大量的數(shù)據(jù),可以用來學習R語言。要想利用這些數(shù)據(jù),就要將它們導入到當前工作空間中來。可以利用data函數(shù)導入擴展包中的數(shù)據(jù),如:輸入data(package=datasets)該命令導入datasets包中的全部數(shù)據(jù)。輸入data()查看當前工作空間的數(shù)據(jù)。輸入data(Nile,package=datasets)該命令僅將datasets包中的Nile數(shù)據(jù)導入工作空間。此外,R語言在工作空間中使用擴展包前,要加載相應的擴展包,使用函數(shù)library可加載擴展包,如:library(

19、datasets)加載擴展包后,其中的數(shù)據(jù)集就會全部加載到工作空間中,可直接使用。5.3 利用R語言函數(shù)導入數(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ù)文件不在當前工作目錄中,需要加上正確的相對或絕對路徑。5.4 導出數(shù)據(jù)(1)導出為文本write.table(student,student.txt)(2)導出為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ù)據(jù)data)data-1, #刪除第一行datac(-1,-2), #刪除第一行和第二行data-1:-3, #刪除第一行到第三行h. 刪除矩陣或data

21、frame的列 (假設有數(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ù)編輯器,點擊變量名可以對其進行修改。方法2:names()函數(shù)。names()函數(shù)可以顯示dataframe的變量名,也可以通過賦值進行修改,下述代碼將第一列變量名字改為ne

22、w_name:names(dataframe)1-new_namec. 變量類型判斷與轉換類型判斷轉換數(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)建一個腳本文件。上述小節(jié)中在命令行中輸入的指令都要以放入腳本中。需要注意的是,R語言腳本每行只能入一條指令。如果一定要在一行中放置多條指令則需要用“;”隔開(英文輸入法下的分號)。點擊RStuio工具欄中的圖標也可以創(chuàng)建R腳本。在原生的R語言中,創(chuàng)建腳本選擇頂部菜單中File-New Document可以創(chuàng)建腳本。R語言腳本的擴展名為R。R語言為腳本提供了完整的程序語言語法,如if、for、while等語句,以及函數(shù)function定義等,有興趣可以查找相關資

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論