一、R語言簡介
這節課我們會初步學習R的功能和使用。 我們會學習怎樣在不同的操作系統安裝R。 我們會在開始控制台內使用R,並且分別用交互式和批處理的方式使用R。 最后,在這節課,我們會討論怎樣用包來擴展R。
1、R的功能和使用。R是一個優秀的數據分析和制圖的軟件環境。 它最初由Ross Ihaka和Robert Gentleman1993年在新西蘭,奧克蘭大學創建。 它們將R創建為一種幫助教學生統計初步的語言。 它們的R基於更早的1970年在貝爾實驗室開發的S語言。 一段時間之后,他們把R開源了出去。 目前世界上存在着一個非常活躍的R社區。
1) 因為主要被設計為數據分析,R被看作是領域專用語言。 R程序主要使用函數來創建,程序由R翻譯器來執行。
2)R不僅僅是一種編程語言,它有與生俱來的對創建高質量的數據可視化的支持。 在課程中,我們會 怎樣觀察數據提取信息。 R被用在許多行業,比如醫療,零售,和金融分析。 R可以被用來分析結構化和非結構化數據集。 本課程我們會集中在使用R分析文件中而不是數據庫中的數據。 R可以幫助你探索一個數據集,並且執行描述性分析。 R在創建預測模型上也很出色。
為什么學習R有益,有許多原因? 作為一個數據分析師或者數據科學家 -- R可以比單獨用基於電子表格的工具 更深入地挖數據。作為軟件開發人員 -- R能夠用最小的努力能夠在新的或者現有的應用中 加入數據分析計算或者圖形。隨着大數據爆炸,有許多場景使用R是解決客戶需求的優秀的選擇。 作為數據分析師,R可以用來進行經典的統計測試和預測模型。 R對時間序列數據集也有與生俱來的支持。 分類和聚類模型能被用來更好地發現數據模式。 這門課程你會學到一些最常用的R函數。 但是有許多功能我們沒有時間在一門介紹性的課程中覆蓋到。作為一個開發R是一個強大的功能性編程工具。在這門課程你會學習怎樣創建和測試R程序。注意程序 通常被稱作腳本,因為R腳本是解釋性語言,而且鼓勵交互式開發方法。 R腳本通常是用表達式和內置函數書寫。 R對多種數據結構提供與生俱來的支持。在其它課里面這些數據結構都會被介紹到。也可以用外部包或者庫來擴展R的能力。當你的R技能提高,你可以開始定義你自己的函數和 和新的類來達到用戶需求。
2、怎樣在不同的操作系統安裝R。安裝R非常簡單。 簡單導航到R的項目頁面,單擊復雜R CRAN是世界上的一些服務器用來保存R的相同的,最新的,代碼版本和文檔。 有針對Windows, Linux,和Mac OS的二進制安裝工具。也可以從源代碼編譯,但是最好避免。 這門課中,你可以選擇任何一個平台來安裝R。 Windows上安裝R包括下載MSI文件,並且執行。 有32位和64位的安裝選項。我選擇64位。 在我們的課程作業中,能被使用的內存上限更高。 R一旦安裝好,你可以通過啟動R命令行環境或者圖形工具界面開始,R界面為用戶提供一些R命令行之后的有用的產品功能。 在Linux下安裝R使用以下之一:從CRAN網站下載合適的RPM文件 或者使用一個Linux包管理工具例如YUM。 注意你必須以root賬號登陸,或者在Linux上有sudo權限 來完成安裝。 一旦在系統中安裝了任何用戶可以使用R。 缺省,有一個R命令行和GUI提供,但是許多R用戶更傾向使用更復雜的集成開發環境 例如RCmdr或者RStudio。 RStudio是R自帶的RGui工具的一個優秀的替代品。RStudio適合 Linux, Mac OS X, 和Windows系統。在這個配置里我們通過瀏覽器在Linux服務器使用RStudio。 對偶爾使用R的用戶來說這是一個理想環境,因為他們不會在自己的機器上安裝 R。在左上角我們可以看到2013_cars.csv數據文件,和一個R資源文件叫做cars.R。 在左下角我們有R控制台。 在右上角我們接觸到現在R工作區的對象,和一個現在使用R命令的歷史記錄。在右下角我們有一個直方圖 以及R幫助功能。 當你學習R的時候,安裝一個IDE比如R是值得的。
3、之前我們聲明R可以用包來擴展。 CRAN有4000個不同包,更多包被頻繁地添加。CRAN的包, 在這門課中我們將主要使用內置或者標准包,但是你可能想嘗試更多的額外的包。 基本的R環境為數據分析師提供一個重要的函數集,但是 R社區有許多優秀的包可用。 新的包可以通過使用install.packages()函數安裝。 你可以搜索CRAN獲得包,或者使用CRAN沒有的包。 簡單地使用相同的函數,指向 新包的壓縮文件即可。 這里我們看到RJDBC包被安裝以便通過JDBC驅動連接到數據庫 庫服務,如Informix or DB2。 如果你開發一個R腳本,使用R以外的函數,你的腳本的第一行應該包含library() 或者 require() 函數 這樣包在運行時能被加載到內存。
二、R控制台介紹
歡迎。本課程介紹怎樣使用R控制台和R表達式。 希望你已經安裝了R,可以使用它進行練習。
4、控制台內使用R,並且分別用交互式和批處理的方式使用R。讓我們開始。 R腳本能在R控制台內或者之外以批操作執行。 我們檢查簡單R表達式,學習怎樣獲得幫助。 每個R使用者都以R控制台開始。 R控制台可以用來進行交互式的R函數或者表達式。 大於號是R的缺省提示符。 當一個R表達式是完整的,在R控制台可以執行。 如果表達式不完整,R控制台提示符變為加號。 每個R的會話有一個工作目錄。 一個工作目錄包含一個工作文件,名字是.Rdata,包含一系列的R對象。 R也保留歷史R命令的記錄。 R工作目錄能用setwd()函數來改變。 可以用getwd()函數獲得當前目錄。 當你完成一次R控制台會話,你會提示是否要保存工作區。你可能想保存工作區以便你可以回到上次分析的地方。但是從控制台創建R腳本總是一個好的習慣 這樣你的工作區文件不必重寫。 在R控制台之外執行R腳本可以幫助自動化數據分析活動。
讓我們考慮一個場景,你創建了一個進行數據分析的R腳本並且生成了一系列數據圖pdf文件。最好是自動化這個任務並且避免同時使用R控制台。 有一些不同的方法以批處理方式執行R腳本。命令R CMD BATCH可以在整個平台使用。也有一個工具叫做Rscript,可以在整個平台在控制台之外運行腳本。這個工具給你這個能力,當腳本執行的時候獲得輸入,如果需要的話。在Linux上,R腳本文件能通過在腳本的第一行簡單地添加一個引用來改變為一個可執行腳本。當使用這個方法的時候,請確信 改變你的腳本的文件權限為可執行。 缺省地,對發送到標准輸出的任何信息,都會創建一個輸出文件。 輸出文件名和腳本相同,后綴名為.Rout。讓我們考慮把R當作一個簡單的計算器。R程序包含一系列表達式。 這些表達式被分類為:數據,計算,或者控制流操作。在第一個例子我們保存了數值5為一個對象,或者變量a。對象的數據類型被R自動決定。顯示地聲明數值的數據類型是可能的,但是現在我們令R 決定。R里推薦的賦值運算符是小於符跟着一個破折號。可以用一個簡單的等號,但是不推薦這樣。附加的運算符是一個內置R函數,我們看到兩個數相加的結果。有各種R函數能被用來描述一個對象。 例如,我們對對象a的數據類型感興趣,並且我們發現 R決定a的數據類型是一個雙精度浮點型數值。 我們會在后面的課程中學到,讓對象a中數值限制為整型是可能的。當我們對R更熟悉的時候,知道哪里去尋求幫助很重要。help.start()函數會啟動一個連接到不同R引用材料的當地的web服務器。如果你知道一個R函數的名字,當你不能記住輸入參數 或者輸出,使用help()函數或者一個問號來獲取更多信息。一系列兩個問號跟着一個搜索詞可以用來搜索你系統里所有安裝的R包。 一些函數有內置的例子,來幫助你理解怎樣使用它們。 可以用example()函數來獲取內置例子。 當你准備結束R控制台的一個會話,使用q()或者quit()函數。
R有個優秀的支持,很容易可以創建高質量的圖表。 有一些簡單的例子。首先,我們有一個散點圖,顯示從1917年到2010年出生在加拿大渥太華的女孩命名趨勢。Emma是這個圖選出來的。下一個例子為一個箱線圖,顯示加拿大2013年的車輛耗油量。 數據根據車輛的汽缸數目分類。最后一個圖是一個簡單的餅圖,顯示2013年加拿大4,6,8缸汽車的分布。我們會在將來的課程中學習怎樣創建圖形。 謝謝完成這節課。 進入下一課前花些時間熟悉R控制台,表達式,腳本。