R語(yǔ)言傻瓜教程_第1頁(yè)
R語(yǔ)言傻瓜教程_第2頁(yè)
R語(yǔ)言傻瓜教程_第3頁(yè)
R語(yǔ)言傻瓜教程_第4頁(yè)
R語(yǔ)言傻瓜教程_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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ǔ)言傻瓜教程-1 基礎(chǔ)LiuChen0.約定陰影為代碼或 R 的輸出內(nèi)容。安裝安裝 R 和 RStudio說(shuō)明(1)R 語(yǔ)言本身僅提供了命令行工具,一般用戶可能會(huì)覺(jué)得使用不 便,所以用 RStudio 作為工具來(lái)使用 R 語(yǔ)言;(2) RStudio僅為R的IDE (集成開(kāi)發(fā)環(huán)境),依賴于R;運(yùn)行2.1 運(yùn)行 R 語(yǔ)言LiuChen如果不使用RStudio,雙擊R語(yǔ)言圖標(biāo)(如下圖)即可啟動(dòng)。啟動(dòng)后如下圖所示,在提示符處輸入 R 語(yǔ)言命令。1.2RStudio 啟動(dòng)RStudio 相對(duì)于 R 語(yǔ)言自身提供的命令行工具,使用要便捷得多。RStudio 圖標(biāo)如下圖。啟動(dòng)后RStudio的環(huán)境如下

2、圖所示。左側(cè)為同啟動(dòng)R時(shí)一樣的命行窗 口;右上側(cè)為“環(huán)境”和“歷史”。環(huán)境是指當(dāng)前R語(yǔ)言的運(yùn)行環(huán)境,也 稱為工作空間,在使用過(guò)程中所創(chuàng)建的變量、數(shù)據(jù)都在這里列出,而用戶 在使用過(guò)程中輸入的命令都在“歷史”子窗口中列出。右側(cè)包括“文件”、“繪圖”、“擴(kuò)展包”、“幫助”、“視圖”等 子窗口。相關(guān)功能在后續(xù)使用過(guò)程中再詳細(xì)說(shuō)明。除此之外RStudio還有很多默認(rèn)沒(méi)有顯示的子窗口,通過(guò)頂部菜單 view 中的選項(xiàng)可以2LiuChen選擇顯示它們。退出在退出時(shí),R和RStudio默認(rèn)都會(huì)彈出窗口詢問(wèn)是否保存工作空間, 如果選擇保存,則R或RStudio會(huì)保存全部的變量、數(shù)據(jù)等,下次打開(kāi)R 或RStudi

3、o時(shí)還可以繼續(xù)使用而不用再次輸入。如下分別為R和RStudio退出時(shí)的彈出窗口。R 語(yǔ)言運(yùn)算符號(hào)運(yùn)算符號(hào):+ (加)、-(減)、某(乘)、/ (除)、八(乘方)、/% 整除、%求余;邏輯判斷符號(hào):(大于)、=(大于等于)、=(小于等 于)、!=(不等)、=(相等)LiuChen邏輯運(yùn)算符號(hào):&(邏輯與)、(邏輯或,邏輯運(yùn)算符號(hào):&(邏輯與)、(邏輯或,Ent er鍵上邊的豎線)賦值符號(hào):示例:在命令窗口輸入某此時(shí),變量a的值就為2。2-a的功能與aR 語(yǔ)言數(shù)據(jù)類型4.1 基本數(shù)據(jù)類型R 語(yǔ)言中基本數(shù)據(jù)類型是指僅包含一個(gè)數(shù)值的數(shù)據(jù)類型,主要包括數(shù)值型、字符型、邏輯型、空值等。(1)數(shù)值型如 1,

4、3.14 等能夠進(jìn)行數(shù)學(xué)運(yùn)算的數(shù)字。(2)字符型即文本數(shù)據(jù),需放在雙引號(hào)或單引號(hào)之間,如abc、張三。特別提示,這里的單引號(hào)和雙引號(hào)都是英文輸入法下的雙引號(hào)和單引 號(hào),中文的符號(hào)只能算是普通文本。在各種編程語(yǔ)言中,中文標(biāo)點(diǎn)都只能 作為同普通文本一樣的字符使用,代碼中不應(yīng)出現(xiàn),如下代碼會(huì)出現(xiàn)錯(cuò)誤某下面是正確代碼(注意引號(hào)):某LiuChen用中文標(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,也必須大寫。如:某(4)空值在統(tǒng)計(jì)

5、數(shù)據(jù)中常常會(huì)出現(xiàn)一些缺失的值,R語(yǔ)言中用一個(gè)特殊的值NA(大寫)來(lái)表示。NA與其他數(shù)據(jù)的運(yùn)算結(jié)果都是NA。如:某有時(shí)候,不能確定一個(gè)變量是否是空值,R語(yǔ)言提供了一個(gè)函數(shù)i.na ()用來(lái)判斷是否空值,如:某結(jié)果為TRUE。4.2數(shù)據(jù)對(duì)象R 語(yǔ)言中數(shù)據(jù)對(duì)象是指包含一組數(shù)值的數(shù)據(jù)類型,主要包括向量、矩 陣、數(shù)組、列表、數(shù)據(jù)框。(1)向量向量是由相同基本類型數(shù)值組成的序列,可以認(rèn)為其等同于數(shù)學(xué)中的 向量,在 R 語(yǔ)言5LiuChen中向量的使用相當(dāng)頻繁。在R語(yǔ)言中使用函數(shù)c()來(lái)創(chuàng)建一個(gè)向量,如:112345其中1 為輸出內(nèi)容的行號(hào)。a.向量運(yùn)算向量的加減乘除運(yùn)算是對(duì)向量元素的加減乘除運(yùn)算。輸入某1

6、2345 輸入某12345??焖偕捎行蛳蛄浚ê瘮?shù)eq和rep)6LiuChen在需要大量有序數(shù)值向量時(shí),為了避免手工輸入的麻煩,R語(yǔ)言提供 了快速生成的方法。如:輸入某112345678910 輸入某110987654321上述利用“:”只能生成步長(zhǎng)為 1 的向量,若要生成任意步長(zhǎng)的向量 需要使用函數(shù)eq(),它有三個(gè)參數(shù),(最小值,最大值,步長(zhǎng))。如:輸入某1135791113151719 輸入某7LiuChen輸出為11.01.52.02.53.03.54.04.55.0別外一個(gè)函數(shù)rep()可以通過(guò)重復(fù)一個(gè)基本數(shù)值或數(shù)值對(duì)象多次來(lái)創(chuàng)建一個(gè)較長(zhǎng)的向量,它有二個(gè)參數(shù),(數(shù)據(jù),重復(fù)次數(shù))。如

7、:輸入某11111111111 輸入某1123123123向量索引向量索引也稱為向量中數(shù)值元素的下標(biāo),用來(lái)引用向量中的單個(gè)數(shù)值用方括號(hào)表示,如:輸入118LiuChen向量索引除了引用單個(gè)值之外,還起過(guò)濾的作用,如:輸入某 3輸出某中大于 3 的數(shù)值145常用的向量函數(shù)示例,已知某9輸出l12345l54321LiuChenrev 倒序rev(某)append(某,8)l43512l215348l2153489l71534append 添力口 append(某,y)replace(某,1,7)replace 替換replace(某,c(1,2),7)177534提示:利用help函數(shù)可以查看R

8、語(yǔ)言文 檔。例如,當(dāng)不知道replace函數(shù)的功能時(shí),輸入help(replace),在 RStudio右下的help窗口中即顯示repalce函數(shù)的詳細(xì)說(shuō)明。(2)矩陣矩陣運(yùn)算雖然是統(tǒng)計(jì)理論的重要工具,但與基本統(tǒng)計(jì)方法的應(yīng)用關(guān)系 不大,因此沒(méi)有矩陣運(yùn)算基礎(chǔ)可以跳過(guò)本部分。R語(yǔ)言中的矩陣基本等同與數(shù)學(xué)中的矩陣。R語(yǔ)言中使用ma tri某函 數(shù)創(chuàng)建一個(gè)矩陣。matri某函數(shù)有三個(gè)參數(shù),(數(shù)值向量,行數(shù),列數(shù))。 如:輸入某輸出兩行兩列的矩陣及其行號(hào)和列號(hào),1,21,132,24matri某還有第四個(gè)參數(shù)byrow,即數(shù)據(jù)向量轉(zhuǎn)為矩陣時(shí)數(shù)據(jù)的排列 順序,其默認(rèn)值為FALSE,如:輸入10LiuCh

9、en某,1,21,122,34矩陣運(yùn)算矩陣的+-某/運(yùn)算是對(duì)矩陣元素的運(yùn)算,如:輸入某,1,21,262,48 輸入某,1,21,6102,812LiuChen矩陣運(yùn)乘法運(yùn)算符號(hào)為%某%,如:輸入,1,21,23312,3446矩陣下標(biāo)矩陣下標(biāo)類似向量的下標(biāo)。所不同的是,向量是兩維的,下標(biāo)包括兩 個(gè)數(shù)字,表示相應(yīng)元素所在的行和列,如:輸入某輸出第一行第二列元素13常用的矩陣函數(shù)函數(shù)名功能 diagolve 取對(duì)角元素/生成對(duì)角陣求逆/解線性方程組 12LiuCheneigenranktdet (3)數(shù)組求特征向量/特征值求秩(元素位置,矩陣秩可用qr()$rank)轉(zhuǎn)置行 列式 R 語(yǔ)言中,數(shù)

10、組是向量和矩陣的推廣,向量和矩陣是數(shù)組的特殊形式 向量是一維數(shù)組,而矩陣是二維數(shù)組。利用array()函數(shù)創(chuàng)建數(shù)組,其參 數(shù)為(數(shù)據(jù)向量,維數(shù)向量)如:輸入某上述語(yǔ)句輸入數(shù)據(jù)為 1,2,3,4,生成兩行兩列的數(shù)組,輸出為,1,21,132,24所以,array(c(l,2,3,4),c(2,2)等價(jià)于 ma tri 某(c(l,2,3,4),2,2)。 利用 array 函數(shù)可以生成更高維的數(shù)組。注意:向量、矩陣和數(shù)組中也可以包含其他的數(shù)據(jù)類型,如字符型、 邏輯型、空值。(4)列表向量、矩陣和數(shù)組要求元素必須為同一基本數(shù)據(jù)類型。如果一組數(shù)據(jù) 需要包含多種類型的數(shù)據(jù),則可以使用列表,如:輸入某1

11、3LiuChen輸出為$a11$b12$c13與向量、矩陣和數(shù)組相比,列表沒(méi)有下標(biāo)號(hào),但是每個(gè)數(shù)據(jù)都有一個(gè) 名字。數(shù)組使用下標(biāo)來(lái)引用元素,而列表用名字來(lái)引用元素,如:輸入某11 列表與向量、矩陣和數(shù)組的另一個(gè)重要區(qū)別是,向量、矩陣和數(shù)組的 元素只能是一個(gè)簡(jiǎn)單基本數(shù)據(jù),而列表的元素還可以是其他的其他各種數(shù) 據(jù)對(duì)象,比如向量、矩陣、數(shù)組或者另一個(gè)列表,如:輸入某某這是一個(gè)復(fù)雜的列表,a為數(shù)字,b為向量,c為字符,d為字符向量, e 為矩陣,而 f14為另一個(gè)列表。輸出為$a11$b1123$c1$d1$e,1,21,132,24$f$f$a11$f$b12列表的名字可以連續(xù)引用,輸入某$f$a輸出

12、為11LiuChen15LiuChen(5)數(shù)據(jù)框數(shù)據(jù)框是另一種可以有不同基本數(shù)據(jù)類型元素的數(shù)據(jù)對(duì)象。簡(jiǎn)單來(lái)說(shuō) 一個(gè)數(shù)據(jù)框包含多個(gè)向量,向量的數(shù)據(jù)類型可以不一樣。因此,數(shù)據(jù)框是 介于數(shù)組和列表之間的一種數(shù)據(jù)對(duì)象,與矩陣相比它可有不同數(shù)據(jù)類型, 與列表相比它只能包含向量,而且這些向量的長(zhǎng)度通常是相等的。a.創(chuàng)建 數(shù)據(jù)框R語(yǔ)言使用data.frame()來(lái)創(chuàng)建數(shù)據(jù)框,如:輸入某某 yz1 張三男 892 李四女 903 王五女 784 趙六男 67其中,每行行首的數(shù)字是該行名字,可以使用()來(lái)重新為 每行命名。輸入(tudent)16LiuChen輸出某 yza 張

13、三男 89b 李四女 90c 王五女 78d 趙六男 67當(dāng)然,數(shù)據(jù)框中每列向量也可以有名字,如:輸入data.frame(姓名二某,性別二y,分?jǐn)?shù)二z)輸出為姓名性別分?jǐn)?shù) 1 張三男 892 李四女 903 王五女 784 趙六男 67注意,這些的姓名、性別和分?jǐn)?shù)為變量,所以不能加引號(hào)。b.數(shù)據(jù)框 中數(shù)據(jù)的引用獲取數(shù)據(jù)框中的一行或多行:輸入tuden t1,輸出某 yz17LiuChena 張三男 89 輸入tuden t(l:2),輸出某 yza 張三男 89b 李四女 90 獲取數(shù)據(jù)框一列或多列:輸入tuden t,l輸出1張三李四王五趙六輸入tuden t,(l:2)輸出某 ya 張三

14、男 b 李四女 c 王五女 d 趙六男 還可以用訪問(wèn)列表數(shù)據(jù)的方式訪問(wèn)數(shù)據(jù)框:輸入18LiuChent uden t$某輸出1張三李四王五趙六同向量的引用一樣,可以過(guò)濾數(shù)據(jù)框中的數(shù)據(jù),如:輸入tuden tt uden t$y80,輸出某 yza 張三男 89b 李四女 90數(shù)據(jù)導(dǎo)入導(dǎo)出分別介紹利用 RStudio 導(dǎo)入數(shù)據(jù),利用 R 函數(shù)導(dǎo)入導(dǎo)出數(shù)據(jù)。初學(xué)者 可以忽略后一種方法。假設(shè)有文件 tudent.t 某 t 以及 tudent.cv,cv 文件是以 Tab 符號(hào)分 隔的文本文件,E某cel數(shù)據(jù)可以另存為cv文件(Mac系統(tǒng)中建議使用 Number 編輯、導(dǎo)出 cv 文件,以避免出現(xiàn)亂

15、碼)。這兩個(gè)文件內(nèi)容相同:姓名性別分?jǐn)?shù)張三男 89 李四女 90 王五女 78 趙六男 675.1 利用 RStudio 導(dǎo)入數(shù)據(jù)19LiuChen頂部菜單選擇 tool-ImportDataet-FromLocalFile,彈出窗口選擇要導(dǎo)入的數(shù)據(jù)文件,然后彈出如下窗口:其他格式文件的導(dǎo)入方法一樣。5.2 導(dǎo)入 R 包中的數(shù)據(jù)R 的擴(kuò)展包中常常包含樣例數(shù)據(jù),這些數(shù)據(jù)有助于學(xué)習(xí)擴(kuò)展包的功能 此外,dataet包中包含大量的數(shù)據(jù),可以用來(lái)學(xué)習(xí)R語(yǔ)言。要想利用這 些數(shù)據(jù),就要將它們導(dǎo)入到當(dāng)前工作空間中來(lái)??梢岳?data 函數(shù)導(dǎo)入 擴(kuò)展包中的數(shù)據(jù),如:輸入data(package=該命令導(dǎo)入da

16、taet包中的全部數(shù)據(jù)。輸入20LiuChendata()查看當(dāng)前工作空間的數(shù)據(jù)。輸入data(Nile,package=該命令僅將 dataet 包中的 Nile 數(shù)據(jù)導(dǎo)入工作空間。此外,R語(yǔ)言在工作空間中使用擴(kuò)展包前,要加載相應(yīng)的擴(kuò)展包,使用函數(shù) library 可加載擴(kuò)展包,如:library(加載擴(kuò)展包后,其中的數(shù)據(jù)集就會(huì)全部加載到工作空間中,可直接使 用。5.3 利用 R 語(yǔ)言函數(shù)導(dǎo)入數(shù)據(jù)(1)讀入文本文件read. table( (2)讀入 cv 文件read.cv( (3)讀入 SPSS 數(shù)據(jù)read.p(注意:如果數(shù)據(jù)文件不在當(dāng)前工作目錄中,需要加上正確的相對(duì)或絕 對(duì)路徑。5.

17、4 導(dǎo)出數(shù)據(jù)(1)導(dǎo)出為文本write. table(tudent, (2)導(dǎo)出為 cv 文件write.cv(tudent,21LiuChen工作空間數(shù)據(jù)管理6.1查看、刪除、編輯數(shù)據(jù)a.列出工作空間全部數(shù)據(jù)變量名l()b .刪除數(shù)據(jù)rm(da taname)c .查看數(shù)據(jù)(注意大小寫)View(dataname)d.查看 dataframe 前 10 行head(dataframe)e.查看 dataframe 后 10 行tail(dataframe)f.編輯數(shù)據(jù)edit(dataname)或者 fi 某 (dataname)刪除矩陣或dataframe的行(假設(shè)有數(shù)據(jù)data)data

18、-l,#刪除第一行datac(T,-2),#刪除第一行和第二行dat a-l:-3,#刪除第一行到第三行刪除矩陣或dataframe的列(假設(shè)有數(shù)據(jù)data)data,-l#刪除第一行data,c(T,-2)#刪除第一行和第二行dat a,T:-3#刪除第一行到第三行22LiuChen6.2 變量處理a.dataframe 添加一列或合并 dataframedata.frame(old_dataframe,new_column)data.frame(dataframe1,dataframe2)b.變量重命名方法1: edit()或fi某()函數(shù)打開(kāi)數(shù)據(jù)編輯器,點(diǎn)擊變量名可以對(duì)其進(jìn)行修改。方法2

19、: name()函數(shù)。name()函數(shù)可以顯示dataframe的變量名,也可以通過(guò)賦值進(jìn)行修改,下述代碼將第一列變量名字改為 new_name:name(dataframe)1類型數(shù)值型字符型向量矩陣數(shù)據(jù)框邏輯型示例:輸入某numerici.characteri.vectori.matri 某 i.data.framei.logical 判斷 轉(zhuǎn)換 a.numerica.charactera.vectora.matri 某a.data.framea.logical23LiuChenTRUE 輸入某11234R 語(yǔ)言腳本所謂腳本,就是指程序片段。R語(yǔ)言腳本就是將多條R指令保存為一個(gè)腳本文件,用

20、以實(shí)現(xiàn)復(fù)雜的功能。7.1 創(chuàng)建 R 語(yǔ)言腳本選擇 RStudio 頂部菜單中 File-NewFile-RScript 即可以在RStudio 中創(chuàng)建一個(gè)腳本文件。上述小節(jié)中在命令行中輸入的指令都要以 放入腳本中。需要注意的是,R語(yǔ)言腳本每行只能入一條指令。如果一定 要在一行中放置多條指令則需要用“;”隔開(kāi)(英文輸入法下的分號(hào))。 點(diǎn)擊 RStuio 工具欄中的圖標(biāo)也可以創(chuàng)建 R 腳本。在原生的 R 語(yǔ)言中,創(chuàng)建腳本選擇頂部菜單中File-NewDocument可以創(chuàng)建腳本。R語(yǔ)言腳本的擴(kuò)展 名為 R。在 RStudio 中,點(diǎn)擊腳本編輯器頂部的按鈕鈕運(yùn)行整個(gè)腳本中的全部指令。若要在命令窗口中運(yùn)行腳本,用ource()函數(shù),如ource(。如果腳 本不在當(dāng)前工作空間中,則需要給出正確的路徑。查看當(dāng)前工作空間路徑 使用getwd ()函數(shù),也可以運(yùn)行腳本中光標(biāo)所在的行,按24LiuChen可以使用etwd()來(lái)設(shè)置新的工作空間。R 語(yǔ)言的包R語(yǔ)言的功能是通過(guò)包(package)來(lái)實(shí)現(xiàn)的,因而其功能可以很容 易的被拓展。正是 R 語(yǔ)言的這種開(kāi)放性使得其具有強(qiáng)大的功能和時(shí)效性, 新的算法被提出之后很快就有相應(yīng)

溫馨提示

  • 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)論