R是專門用於數據分析和統計的腳本語言,廣泛應用在每一個需要統計和數據分析的領域。使用R做數據建模、數據統計和分析是一個發現未知和驚喜的旅程,前提,你必須邁出第一步,去學習R語言。R是一種解釋型語言,這意味着代碼在運行之前不需要編譯,在學習R語言時,首先需要安裝R,訪問網站 https://www.r-project.org/,下載適合操作系統的R安裝包,我下載的是用於Windows操作系統中的 R 3.4.2 版本;其次,一款好用的IDE,是學習路上的好助手,我推薦使用RStudio,這是一款專門用於R開發的開源集成開發環境(IDE),官方下載地址是:RStudio,RStudion集成了控制台程序(終端),本文通過控制台介紹R的使用。
R是一種區分大小寫的解釋性語言,R語句的分隔符是分號“;”,或換行符,當語句結束時,可以不使用分號“;”,R語言會自動識別語句結束的位置。R語言只支持單行注釋,注釋由符號#開頭,當前行出現在#之后的任何文本都會被R解釋器忽略。R腳本的一次執行叫做一個會話(Session),可以通過函數quit()退出當前的會話,
quit(save = "default", status = 0, runLast = TRUE) q(save = "default", status = 0, runLast = TRUE)
在當前會話中創建的任何R對象(數據、函數、圖形等)都保存在內存中。創建的變量都需要存儲到到環境中,即環境是存儲變量的地方,通常情況下,不需要直接跟環境打交道,R會自動創建環境來存儲變量,例如,當分配一個變量時,該變量會自動存儲到全局環境中,當調用函數時,R自動創建一個環境,用於存儲與該函數相關的變量。
一,管理工作空間
工作空間(WorkSpace)是當前R的工作環境,存儲着用戶定義的所有對象(向量,矩陣,函數,數據框,列表,函數等)。在一個R會話結束時,用戶可以把當前的工作空間保存導一個鏡像(image)文件中,並在下次啟動R時自動載入。
1,保存工作空間
把工作空間保存到鏡像文件中,擴展名默認是.RData。
save.image("myfile")
2,載入工作空間
從鏡像文件中讀取數據,把工作空間讀取到當前的會話中
load("myfile")
3,列出當前工作空間的對象
在當前工作空間中創建的變量都存儲在內存中,ls()和objects() 用於列出指定環境中的對象:
ls(pattern)
參數 pattern是正則表達式,只有名稱匹配該pattern的變量才會返回。缺失該參數(ls()),表示返回當前環境中的所有變量名。
4,移除當前工作空間的對象
rm()和 remove() 用於移除工作空間中的對象,這兩個函數的定義和作用是一樣的:
rm (..., list = character(), pos = -1, envir = as.environment(pos), inherits = FALSE)
移除當前工作空間中的所有內存變量:
rm(list=ls())
5,空間空間選項
例如,空間小數位數為2,digits: controls the number of digits to print when printing numeric values.
options(digits=2)
二,工作目錄
工作目錄(Working Directory)是R用來讀取文件和保存結果的默認目錄,如果需要讀取一個不在當前工作目錄下的文件,則需要在調用語句中寫明完整的路徑。
1,查看當前的工作目錄
getwd()
2,設置當前的工作目錄
setwd("mydirectory")
在Windows系統中,R將反斜杠(\)視為一個轉移字符,setwd("c:\myfile")會報錯,兩個反斜杠"\\"代表一個反斜杠,正確的寫法是:
setwd("c:/myfile") setwd("c:\\myfile")
三,輸入和輸出
用戶可以執行寫在一個腳本文件中的命令,並可以直接把結果輸出到不同的目標文件中。
1,執行腳本文件
函數source("file"),在當前會話中執行一個R腳本,如果文件名中不包括路徑,R會到當前的工作目錄中查找腳本文件。R引擎執行腳本文件之后,把結果保存到內存中,需要重定向輸出,才能看到輸出的文本或圖形。
source("myfile")
2,重定向文件輸出
函數sink("file")把輸入重定向到文件中,默認情況下,如果文件已經存在,則它的內容會被覆蓋。使用參數append=TRUE可以把輸出的數據追加到文件的末尾,而不是覆蓋。參數split=TRUE,指定把輸出同時發送到屏幕和文件中,不加參數調用命令sink(),將僅向屏幕返回輸出結果。
sink("file")
3,重定向圖形輸出
用於保存圖形輸出的常用函數有如下三個:
bmp("file.bmp") jpeg("file.jpg") pdf("file.pdf")
最后使用dev.off()把圖形輸出,返回到終端。
四,控制台操作
在控制台(Console)中輸入的任何命令,都被記錄下來,用戶可以通過上/下方向鍵查看(上翻/下翻)已輸入的命令。
當輸入的命令很多時,可以通過快捷鍵 Ctrl+L 可以清空控制台,但不會清空命令的歷史記錄。
五,獲取幫助
help("function")函數用於查看函數的幫助,引號可以省略,也直接使用?fun來獲取幫助:
help("q") ?q
如果使用RStudio,可以直接通過Help菜單獲取幫助:
六,加載示例數據集
step1,使用data()函數列出當前已經加載包中所有的所有可用示例數據集,例如
->data()
step2,把示例數據集載入到當前的會話中,也就是把dataset_name對應的對象加載到當前會話中,用戶可以直接在會話中通過dataset_name直接引用:
>data("dataset_name") >data(dataset_name)
當對系統數據集進行編輯之后,想要恢復(restore)該數據集,做法是刪除該數據集:
rm(dataset.name)
這是因為R環境的處理方式決定的,R_GlobalEnv 環境(“全局變量環境”)把全局變量隱藏在庫中,但它們不會被覆蓋。 當GlobalEnv環境中的變量名稱被清除后,該庫將再次成為評估該變量名稱的默認結果。
七,調整畫布設備
在Windows操作系統中,執行以下代碼調整畫布的大小:
win.graph(width=4.875, height=2.5,pointsize=8)
參考文檔: