第1章 R語言介紹
1.3 R的使用
- R是一種區分大小寫的解釋型語言。
- 對象可以是任何東西(數據、函數、圖形、分析結
果,等等)。每一個對象都有一個類屬性,類屬性可以告訴R怎麼對之進行處理。 - R允許使用=爲對象賦值,但是這樣寫的R程序並不多,因爲它不是標準語法。一些情況下,用等號賦值會出現問題,R程序員可能會因此取笑你。你還可以反轉賦值方向。例如,
rnorm(5) -> x
與上面的語句等價。重申一下,使用等號賦值的做法並不常見,在本書中不推薦使用。
1.3.1 新手上路
1.demo() R功能演示
1.3.2 獲取幫助
#R中的幫助函數
1. help.start() 打開幫助文檔首頁
2. help("foo")或?foo 查看函數foo 的幫助(引號可以省略)
3. help.search("foo")或??foo 以foo 爲關鍵詞搜索本地幫助文檔
4. example("foo") 函數foo 的使用示例(引號可以省略)
5. RSiteSearch("foo") 以foo 爲關鍵詞搜索在線文檔和郵件列表存檔
6. apropos("foo", mode="function") 列出名稱中含有foo 的所有可用函數
7. data() 列出當前已加載包中所含的所有可用示例數據集
8. vignette() 列出當前已安裝包中所有可用的vignette 文檔
9. vignette("foo") 爲主題foo 顯示指定的vignette 文檔
# 由函數vignette()函數返回的vignette文檔一般是
PDF格式的實用介紹性文章。不過,並非所有的包都提供了vignette文檔。
1.3.3 工作空間
1.工作空間(workspace)就是當前R的工作環境,它存儲着所有用戶定義的對象(向量、矩陣、函數、數據框、列表)
2.當前的工作目錄(working directory)是R用來讀取文件和保存結果的默認目錄。我們可以使
用函數getwd()來查看當前的工作目錄,或使用函數setwd()設定當前的工作目錄。如果需要讀入一個不在當前工作目錄下的文件,則需在調用語句中寫明完整的路徑。記得使用引號閉合這些目錄名和文件名。
# 用於管理R工作空間的函數
getwd()
顯示當前的工作目錄
setwd("mydirectory")
修改當前的工作目錄爲mydirectory
ls()
列出當前工作空間中的對象
rm(objectlist)
移除(刪除)一個或多個對象
help(options)
顯示可用選項的說明
options()
顯示或設置當前選項
history(#)
顯示最近使用過的#個命令(默認值爲25)
savehistory("myfile")
保存命令歷史到文件myfile 中(默認值爲.Rhistory)
loadhistory("myfile")
載入一個命令歷史文件(默認值爲.Rhistory)
save.image("myfile")
保存工作空間到文件myfile 中(默認值爲.RData)
save(objectlist, file="myfile")
保存指定對象到一個文件中
load("myfile")
讀取一個工作空間到當前會話中(默認值爲.RData)
q()
退出R。將會詢問你是否保存工作空間
- 注意setwd()命令的路徑中使用了正斜槓(/)。R將反斜槓(\)作爲一個轉義符。
- 函數setwd()不會自動創建一個不存在的目錄。如果必要的話,可以使用函數dir.create()來創建新目錄,然後使用setwd()
將工作目錄指向這個新目錄。
1.3.4 輸入和輸出
1. 輸入
函數source(“filename”)可在當前會話中執行一個腳本。如果文件名中不包含路徑,R將假設此腳本在當前工作目錄中。舉例來說,source(“myscript.R”)將執行包含在文件myscript.R中的R語句集合
2.文本輸出
函數sink(“filename”)將輸出重定向到文件filename中。默認情況下,如果文件已經存在,則它的內容將被覆蓋。使用參數append=TRUE可以將文本追加到文件後,而不是覆蓋它。參數split=TRUE可將輸出同時發送到屏幕和輸出文件中。不加參數調用命令sink()將僅向屏幕返回輸出結果。
3.圖形輸出
#用於保存圖形輸出的函數
bmp("filename.bmp") BMP 文件
jpeg("filename.jpg") JPEG 文件
pdf("filename.pdf") PDF 文件
png("filename.png") PNG 文件
postscript("filename.ps") PostScript 文件
svg("filename.svg") SVG 文件
win.metafile("filename.wmf") Windows圖元文件
dev.off()將輸出返回到終端
1.4 包
1.4.1 什麼是包
- 包是R函數、數據、預編譯代碼以一種定義完善的格式組成的集合。計算機上存儲包的目錄稱爲庫(library)。
- 函數.libPaths()能夠顯示庫所在的位置, 函數library()則可以顯示庫中有哪些包。
- 命令search()可以告訴你哪些包已加載並可使用。
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.3/Resources/library"
1.4.2 包的安裝
install.packages()
不加參數執行命令install.packages()將顯示一個CRAN鏡像站點的列表,選擇其中一個鏡像站點之後,將看到所有可用包的列表,選擇其中的一個包即可進行下載和安裝。update.packages()可以更新已經安裝的包。
要查看已安裝包的描述installed. packages()
列出安裝的包,以及它們的版本號、依賴關係等信息
1.4.3 包的載入
可以自定義啓動環境以自動載入會頻繁使用的那些包
1.4.4 包的使用方法
- help(package=”package_name”)
輸出某個包的簡短描述以及包中的函數名稱和數據集名稱的列表 - help()可以查看其中任意函數或數據集的更多細節
1.5 批處理
Linux或Mac OS X系統
終端窗口中使用如下命令:
R CMD BATCH options infile outfile
其中infile是包含了要執行的R代碼所在文件的文件名
outfile是接收輸出文件的文件名
options部分則列出了控制執行細節的選項。
infile的擴展名是.R,outfile的擴展名爲.Rout
對於Windows,則需使用:
"C:\Program Files\R\R-3.1.0\bin\R.exe" CMD BATCH . --vanilla --slave "c:\my projects\myscript.R"
將路徑調整爲R.exe所在的相應位置和腳本文件所在位置。