1、R語言介紹

1.1R簡介與安裝
R是用于統(tǒng)計,繪圖的語言和操作環(huán)境。直接下載安裝就可以了。
1.2R的使用
(1)R是區(qū)分大小寫的解釋型語言
(2)在命令提示符>后輸入命令執(zhí)行一條命令
(3)可一次性執(zhí)行腳本文件中的一組命令
(4)R包括很多數(shù)據(jù)類型:向量、矩陣、數(shù)據(jù)框(與數(shù)據(jù)集類似)、列表(各種對象的集合)
(5)R的多數(shù)功能由程序內(nèi)置函數(shù)和用戶自編函數(shù)提供。
(6)一次交互式會話期間的所有數(shù)據(jù)都保存在內(nèi)存中
(7)基本函數(shù)是默認的,高級函數(shù)需要按需加載程序包
(8)R語句由函數(shù)和賦值構(gòu)成
(9)<- 為對象賦值的意思,例如a <- 5
(10-> 與<-是一樣的意思,只是反轉(zhuǎn)了賦值方向
(11)= 也可以賦值,但是等號賦值會出現(xiàn)問題,不推薦
(12)# 注釋
1.2.1新手上路
(1)c() 將參數(shù)組合成一個向量或列表,例如age <- c(1, 3, 5, 7, 9)就是將age這個對象賦予1,3,5,7,9這個數(shù)字列表
(2)mean() 均數(shù)
(3)sd() 標準差
(4)cor() 相關(guān)度
(5)plot() 散點圖圖表
(6)q() 退出R
(7)demo() 直接運行查看R所有能制作的圖形
(9)可單獨參看圖形:demo(graphics)、demo(Hershey)、demo(persp)、demo(image)
例如:
> age <- c(1,3,5,2,11,9,3,9,12,3)
> weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
> mean(weight)
[1] 7.06
> sd(weight)
[1] 2.077498
> cor(age,weight)
[1] 0.9075655
> plot(age,weight)
> q()
上面的例子是給age和weight分別賦予了兩個數(shù)字列表,求出了平均數(shù)7.06,標準差2.08和相關(guān)度0.91,畫出age和weight的散點圖,最后退出R。
1.2.2獲取幫助
help.start() 打開幫助首頁
help('foo')或?foo 查看函數(shù)foo的幫助(引號可以忽略)
help.search("foo")或??foo 以函數(shù)foo為關(guān)鍵詞搜索本地幫助文檔
example("foo") 函數(shù)foo的使用示例
RSiteSearch("foo") 以foo為關(guān)鍵詞搜索在線文檔和郵件列表存檔
apropos("foo", mode="function") 列出名稱中含有foo的所有函數(shù)
data() 列出當(dāng)前已加載所含的所有可用示例數(shù)據(jù)集
vignette() 列出當(dāng)前已安裝包中所有可用的vignette文檔
vignette() 為主題foo顯示指定的vignette文檔
1.2.4工作空間
工作空間
工作空間是R當(dāng)前的工作環(huán)境,可以儲存可以使用的所有對象(向量、矩陣、數(shù)據(jù)框和列表等)。結(jié)束R會話后可以保持為鏡像,下次直接調(diào)用,對于持續(xù)性的完成任務(wù)非常有用。
上下方向鍵查看已輸入命令的歷史記錄
如果需要讀入一個不在當(dāng)前目錄下的文件,需要輸入完整路徑,記得用引號閉合目錄名和文件名
目錄要使用正斜杠/,反斜杠\是作為轉(zhuǎn)義符
工作空間常用函數(shù)
getwd() 顯示當(dāng)前的工作目錄(工作空間儲存目錄)
setwd("mydirectory") 修改當(dāng)前的工作目錄為mydirectory
dir.create(C:/my) 在C盤中創(chuàng)建一個my的目錄
ls() 列出當(dāng)前工作空間中的對象
rm(objectlist) 移除(刪除)一個或多個對象
help(options) 顯示可用選項的說明
options() 顯示或設(shè)置當(dāng)前選項
history(#) 顯示最近使用過的#個命令(默認值為25)
savehistory("myfile") 保存命令歷史到文件myfile中(默認值為.Rhistory)
loadhistory("myfile") 載入一個命令歷史文件(默認值為Rhistory)
save.image("myfile") 保存工作空間到文件myfile中(默認值為.RData)
save(objectlist, file="myfile") 保存指定對象到一個文件中
load("myfile") 讀取一個工作空間到當(dāng)前會話中(默認值為.RData)
q(() 退出R,將詢問是否保存工作空間
用于管理R工作空間的命令使用示例:
setwd("C:/myprojects/projectl")
options()
options(digits=3)
x <- runif(20)
summary(x)
hist(x)
savehistory()
save.image()
q()
首先,當(dāng)前工作目錄被設(shè)置為C:/myprojects/project1,當(dāng)前的選項設(shè)置情況將顯示出來,而數(shù)字將被格式化,顯示為具有小數(shù)點后三位有效數(shù)字的格式。然后,我們創(chuàng)建了一個包含20個均勻分布隨機變量的向量(x <- runif(20)),生成了此數(shù)據(jù)的摘要統(tǒng)計量和直方圖(summary(x)、hist(x))。最后,命令的歷史記錄保存到文件.Rhistory中,工作空間(包含向量x)保存到文件.RData中,會話結(jié)束。
1.2.4輸入和輸出
輸入
source() 在當(dāng)前會話中執(zhí)行一個在當(dāng)前目錄下的R腳本文件
例如:source(myscript.R) 將執(zhí)行一個含在文件myscript.R中的R語句集合
文本輸出
sink("filename") 輸出重定向到文件filename中,默認會覆蓋以存在的文件
append=TRUE 將文本追加到文件后,而不是覆蓋
split=TRUE 將輸出同時發(fā)送到屏幕和輸出文件中,不加參數(shù)調(diào)用sink()將僅向屏幕返回輸出結(jié)果
圖形輸出
使用sink()只能重定向文本輸出對圖形沒影響,重定向圖形輸出,使用下面的函數(shù)列表即可,最后dev.off()將輸出返回到終端
pdf("filename.pdf") PDF文件
win.metafile("filename.wmf") Windows圖元文件
png("filename.png") PBG文件
jpeg("filename.jpg") JPEG文件
bmp("filename.bmp") BMP文件
postscript("filename.ps") PostScript文件
例子
source("script1.R") 執(zhí)行script1.R中的R代碼,結(jié)果打印在屏幕上
sink("myoutput, append=TRUE, split=TRUE")
pdf("mygraphs.pdf")
source(script2.R)
執(zhí)行script2.R中的R代碼,結(jié)果也打印在屏幕上,并且文本輸出將被追加到文件myoutput中,圖形輸出保存到文件mygraphs.pdf中
sink()
dev.off()
source("script3.R")
執(zhí)行script3.R中的R代碼,結(jié)果將打印在屏幕上。這一次沒有文本或圖形輸出保存到文件中。
整個過程如下圖:

1.3包
包是R函數(shù)、數(shù)據(jù)、預(yù)編譯代碼以一種定義完善的格式組成的集合。
庫是存儲包的目錄
.libPaths() 能夠顯示庫所在位置
library() 顯示庫中有那些包
search() 可以告訴你哪些包已加載并可使用
1.3.1包的安裝
R自帶了一些默認包,要使用高級函數(shù)就需要下載包
install.packages() ()不加參數(shù)的話,會顯示CRAN鏡像站點列表,選擇其中一個鏡像站點將看到可用包的列表,選擇其中一個包即可進行下載和安裝。
install.packages("gclus") 下載和安裝gclus包,知道其他包的名稱也可以直接輸入名稱進行下載和安裝
update.packages() 更新已經(jīng)安裝的包
installed.packages() 列出安裝的包以及版本號、依賴關(guān)系等信息
1.3.2包的載入
安裝好包只是放到了庫中,要在R會話中使用還需要載入。
library() 載入包
可以給R設(shè)置啟動時自動載入某些常用包
1.3.3包的使用
載入一個包后,就可以使用這個包中包含的函數(shù)和數(shù)據(jù)集了
包中往往提供了演示性的小型數(shù)據(jù)集和示例代碼,可以嘗試這些新功能
幫助系統(tǒng)包含了每一個函數(shù)的一個描述(同時帶有示例)
help(package="package_name") 輸出某個包的簡短描述以及包中的函數(shù)名稱和數(shù)據(jù)集名稱的列表
help() 可以查看其中任意函數(shù)或數(shù)據(jù)集的更多信息,這些信息也能從PDF幫助手冊的形式從CRAN下載。
1.4批處理
linux或OS系統(tǒng)下輸入命令:
R CMD BATCH options infile outfile
其中infile是包含了要執(zhí)行的R代碼所在文件的文件名,outfile是接收輸出文件的文件名,options部分則列出了控制執(zhí)行細節(jié)的選項。依照慣例,infile的擴展名是.R,outfile的擴展名為.Rout。
windows下輸入:
"C:\Program Files\R\R-2.13.0\bin\R.exe" CMD BATCH
--vanilla --slave "c:\my projects\myscript.R"
將路徑調(diào)整為R.exe所在的相應(yīng)位置和腳本文件所在位置。要進一步了解如何調(diào)用R,包括命令行選項的使用方法,請參CRAN(http://cran.r-project.org)上的文檔“Introduction to R”中文是R導(dǎo)論(https://cran.r-project.org/doc/contrib/Ding-R-intro_cn.pdf)
1.5將輸出用為輸入——結(jié)果的重用
R的一個非常實用的特點是,分析的輸出結(jié)果可輕松保存,并作為進一步分析的輸入使用。
1.6大數(shù)據(jù)的處理
大數(shù)據(jù)的處理要注意數(shù)據(jù)集的大小和要應(yīng)用的統(tǒng)計方法。R可以處理GB級到TB級的數(shù)據(jù)分析問題,但需要專門的手段。
1.7示例
help.start()
install.packages("vcd")
help(package="vcd")
library(vcd)
help(Arthritis)
Arthritis
example(Arthritis)
q()
(1)打開幫助首頁
(2)安裝vcd包
(3)列出這個包可用函數(shù)和數(shù)據(jù)集
(4)載入包并閱讀數(shù)據(jù)集Arthritis
(5)顯示Arthritis的內(nèi)容
(6)運行Arthritis自帶示例
(7)退出