第一天: 1.在windows環(huán)境下下載和安裝R和RStudio,。 2.簡(jiǎn)單了解R包與R命令。 3.學(xué)會(huì)利用命令進(jìn)行文件操縱,。 4.學(xué)會(huì)簡(jiǎn)單的調(diào)試代碼,。 ……………………………………………………………………………………… ---------------------安裝----------------------- R包的維護(hù)工作由一個(gè)國(guó)際化可開(kāi)發(fā)者團(tuán)隊(duì)負(fù)責(zé),下載頁(yè)面叫做The ComprehensiveR Archive Network,,即CRAN(https://cran.),。頁(yè)面頂部有三個(gè)下載鏈接,分別對(duì)應(yīng):Windows,,Mac和Linux,。下載步驟為Download R for Windows?base,然后打開(kāi)新頁(yè)面中單擊頂端的第一個(gè)鏈接(類(lèi)似于Download R for 3.0.3 for Windows),,下載后安裝程序即可,。 RStudio是類(lèi)似于word的R語(yǔ)言編寫(xiě)幫助工具,可以從網(wǎng)址http://www./ide(需要翻墻)免費(fèi)下載RStudio,,只要單擊Download RStudio即可,。RStudio安裝上之后需要選擇已安裝的R包。
----------------------R包與R命令----------------------- R包的概念類(lèi)似于C/C++中的庫(kù)(library),,一個(gè)R包就是一些有用的函數(shù),,幫助文檔和數(shù)據(jù)集的集合。最常見(jiàn)的R包就是R基礎(chǔ)包(BaseR),,就是每次打開(kāi)R之后,,R默認(rèn)加載的所有函數(shù)。這些函數(shù)構(gòu)成了R的基石,,是不需要加載任何R包就可以使用的,。 要想使用其他的每個(gè)R包,必須先在計(jì)算機(jī)上安裝R包,,然后在當(dāng)前R會(huì)話中加載它,。安裝R包最簡(jiǎn)單的方法是利用install.packages函數(shù)。打開(kāi)R,,在命令行鍵入一下命令進(jìn)行下載和安裝: install.packages(“包名稱(chēng)”)#安裝單個(gè)包 install.package(c(“ggplot2”,”reshape2”,”dplyr”))#安裝多個(gè)包 然后輸入以下命令加載R包: library(包名稱(chēng)) library的作用是在當(dāng)前的R會(huì)話被關(guān)閉之前,,該包中所有的函數(shù),數(shù)據(jù)集和幫助文檔都可以被拿來(lái)使用,,在下一個(gè)會(huì)話中,,雖然不必再安裝該包,但是需要重新加載,。想要查看當(dāng)前R庫(kù)中存儲(chǔ)了那些R包,,可以運(yùn)行以下命令: library() 更新R包: updata.packages(“包名稱(chēng)”) R自帶了很多數(shù)據(jù)集,,被儲(chǔ)存在R基礎(chǔ)包的datasets包中,輸入以下指令查看每個(gè)數(shù)據(jù)集以及數(shù)據(jù)集簡(jiǎn)介: help(ackage=“datasets”) ---------------------------文件操縱---------------------------- 了解計(jì)算機(jī)上R的工作目錄及位置: getwd() 將某個(gè)文件夾設(shè)置位工作目錄: getwd(“絕對(duì)地址或相對(duì)地址”) 查看當(dāng)前工作目錄下所有文件: list.files() 如果想要打開(kāi)一個(gè)純文本文件,,可以使用read.table函數(shù),其中第一個(gè)參數(shù)應(yīng)該為代取文件名稱(chēng)(文件在工作目錄中)或者代取文件的路徑,,第二個(gè)參數(shù)sep告訴read.table需要使用什么分隔符,如果未設(shè)置sep,,則read.table函數(shù)會(huì)默認(rèn)空格為分隔符,,第三個(gè)參數(shù)header告訴函數(shù)是否將第一行作為變量名稱(chēng)而不是值如果是變量名稱(chēng),則header=TRUE,第四個(gè)參數(shù)代表使用什么表示缺失信息: poker<-read.table(“poker.csv”,sep=”,”,header=TRUE,na.strings=”.”) 使用skip告訴R在讀取數(shù)據(jù)時(shí)忽略開(kāi)頭的一些行,,nrow告訴R在讀多少個(gè)數(shù)據(jù)行之后不再讀取,。 read.table(“poker.csv”,sep=”,”,header=TRUE,na.strings=”.”,skip=3,nrow=5) 只要將參數(shù)stringAsFactors設(shè)置為FALSE即可確保R在保存字符串?dāng)?shù)據(jù)時(shí),不會(huì)強(qiáng)制將其轉(zhuǎn)換為因子型,,而是保留它的字符串類(lèi)型,。 更改全局設(shè)置來(lái)改變R將字符串轉(zhuǎn)換為因子型的行為: options(stringAsFactors=FALSE)#關(guān)閉 options(stringAsFactors=TRUE)#打開(kāi) 讀取CSV文件: poker<-read.csv(“poker.csv”) 有一種特殊的文件,它的每一行都占用文件的一行,,而每一列都開(kāi)始于固定位置,,這種類(lèi)型的文件被稱(chēng)為固定寬度文件(fixed_width file),.fwf在R中讀取fwf文件比普通文件多出一個(gè)widths參數(shù),用來(lái)表示得是第i個(gè)元素表示第i個(gè)列的寬度: poker<-read.fwf(“poker.fwf”,widths=c(10,7,6),header=TRUE) 打開(kāi)網(wǎng)絡(luò)文件: poker<-read.csv(“http://.../../poker.csv”) 保存純文本文件,第一個(gè)參數(shù)為要儲(chǔ)存的R對(duì)象,,第二個(gè)參數(shù)代表文件名或者絕對(duì)路徑,,row.names防止R在存儲(chǔ)純文本文檔時(shí)將行名稱(chēng)存儲(chǔ)為一列,即防止為每行加上行號(hào)(write函數(shù)無(wú)法創(chuàng)建新的文件夾): write.csv(poker,”data/poker.csv”,row.names=FALSE) 壓縮文件: write.csv(poker,file=bzfile(“data/poker.csv.bz2”),row.names=FALSE) R自帶的三個(gè)用來(lái)壓縮文件的輔助函數(shù): 函數(shù)名 壓縮文件類(lèi)型 bzfile bzip2 gzfile gnu zip(zip) xzfile xz壓縮 R的read函數(shù)可打開(kāi)任何一種壓縮文本文件,。 R本身提供了兩種文件格式,,分別是.RDS和.RData,RDS可以存儲(chǔ)單個(gè)R對(duì)象,,而RData文件可以存儲(chǔ)多個(gè)R對(duì)象,但是.RDS的可再現(xiàn)性好: 打開(kāi).RDS文件: saveRDS(a,file=”stuff.RDS”) 打開(kāi).RData文件: load(“file.RData”) 保存RData文件: save(a,b,c,file=”文件名或路徑”) 保存.RDS文件 saveRDS(a,file=”stuff.RDS”) 將剪貼板中的數(shù)據(jù)讀入R中: read.table(“clipboard”) -------------------------調(diào)試-------------------------- RStudio中完善了對(duì)錯(cuò)誤代碼的調(diào)試,,其中主要包括traceback(追溯),browser(瀏覽),,debug(調(diào)試),,debugonce,trace(追蹤),,recover(恢復(fù)),。 E1 traceback 在命令行鍵入traceback(),traceback會(huì)反回一個(gè)調(diào)用棧,,也就是被調(diào)用函數(shù)的有序列表,,最頂層就是出錯(cuò)的函數(shù),而且traceback顯示了函數(shù)調(diào)用的整個(gè)調(diào)用順序,,揭示了無(wú)限循環(huán)錯(cuò)誤,。 E2 browser 利用browser函數(shù)可以使得R在運(yùn)行時(shí)暫停,使你鍵入新的命令,。要使用browser函數(shù),,只要將browser()添加到函數(shù)體的對(duì)應(yīng)位置,,然后保存改函數(shù)即可。此時(shí)控制臺(tái)出現(xiàn)三個(gè)按鈕:NEXT(執(zhí)行下一行代碼)Continue(繼續(xù)執(zhí)行直到結(jié)束) Stop(立即停止運(yùn)行),。 E3 斷點(diǎn) 斷點(diǎn)就是可視化的添加browser函數(shù),,打開(kāi)R腳本,找到想要添加browser的行,,右鍵鼠標(biāo)就會(huì)出現(xiàn)一個(gè)空心紅點(diǎn),斷點(diǎn)添加成功,。 E4 debug debug函數(shù)的第一步就是在調(diào)試函數(shù)的第一行加入browser(),,它的使用方法是debug(函數(shù)名),解除方法是undebug(函數(shù)名),,利用isdebugged(函數(shù)名)判斷函數(shù)是否處于調(diào)試狀態(tài),。 E5 trace trace函數(shù)將一個(gè)函數(shù)插入其他函數(shù)的任意位置,第一個(gè)參數(shù)表示帶插入函數(shù)的名稱(chēng),,是一個(gè)字符串,。第二個(gè)參數(shù)代表要插入函數(shù)的R表達(dá)式。第三個(gè)參數(shù)at=代表將表達(dá)式插入函數(shù)第幾行,。 trace(“sample”,browser,at=4) 在對(duì)某個(gè)函數(shù)完成trace調(diào)試之后,,可以使用untrace將函數(shù)恢復(fù)原來(lái)狀態(tài): untrace(sample) E6 recover recover提供的代碼調(diào)試方式可以進(jìn)入調(diào)用棧的任意層級(jí),從而進(jìn)入某函數(shù)運(yùn)行時(shí)環(huán)境進(jìn)行調(diào)試,,輸入對(duì)應(yīng)棧編碼進(jìn)入函數(shù)環(huán)境,,輸入0推出調(diào)試: fifth<-function()recover() 運(yùn)行全局選項(xiàng),R會(huì)在每次報(bào)錯(cuò)時(shí)進(jìn)入recover()命令: options(error=recover) 直到關(guān)閉當(dāng)前R會(huì)話或者執(zhí)行以下命令前都有效: options(error=NULL) -----------------------------注------------------------------- 1.本學(xué)習(xí)記錄來(lái)自Garrett Grolemund先生所著《Hands-On Programming with R》(中文名R語(yǔ)言入門(mén)與實(shí)踐)一書(shū),。 2.R包為R語(yǔ)言環(huán)境,,需要第一個(gè)安裝。 3.R包既有32位也有64位版本,,兩個(gè)版本都使用32位整數(shù),,它們計(jì)算時(shí)具有相同的精度,二者的區(qū)別在于內(nèi)存管理方面分別使用了64位指針和32位指針,,這代表這64位有更大的使用和搜索的內(nèi)存空間,。從經(jīng)驗(yàn)上看32位要更快。 4.R包可以選擇中文版本,但是RStudio輸入中文會(huì)出現(xiàn)亂碼,。 5.許多R包并沒(méi)有在CRAN上托管,,如果想要安裝這些R包,可以借助devtools這樣一個(gè)R包,。這個(gè)包提供了install_github,,install_gitorious,install_bitbucket和install_url等函數(shù)來(lái)從其他安裝源安裝R包,。 6.常用網(wǎng)址: R包郵件列表: https://stat./mailman/listinfo/r-packages R-bloggers博客: RStudio下的實(shí)用R包列表: CRAN歸類(lèi)R包: |
|