簡易指南帶你啟動 R 語言學習之旅
選自TowardsDataScience
作者:Vihar Kurama
機器之心編譯
參與:劉曉坤、許迪
R 語言是結合了 S 編程語言的計算環境,可用於實現對數據的編程;它有很強大的數值分析工具,對於處理線性代數、微分方程和隨機學的問題非常有用。通過一系列內建函數和庫,你可以用 R 語言學習數據可視化,特別是它還有很多圖形前端。本文將簡單介紹 R 語言的編程基礎,帶你逐步實現第一個可視化案例。
代碼地址:https://github.com/aaqil/r-lang-fundamentals
R 語言最近剛剛擁有了TensorFlow 介面,目前最好的 R 語言版本是 R Studio。在學習之前,你需要了解一下 R 語言本身。
為什麼要學習 R 語言?
R 很靈活;
R 很強大;
R 不僅是個統計計算工具包,它還是一門編程語言;
R 可以針對問題的形式設計程序;
R 可以高效地處理和存儲數據。
R 語言的代碼通用性較好,微調任務後只需要再微調代碼就可以直接應用。
R 安裝
選擇你喜歡的 CRAN 鏡像進行安裝:https://cran.r-project.org/mirrors.html
R Studio
R Studio 是很高效的版本,它包括一個代碼編輯器、調試和可視化工具。它是一個集成開發環境,包括一個控制台、支持直接代碼執行的語法高亮顯示編輯器,以及繪圖、歷史查詢、調試和工作區管理的工具。
R Studio 下載地址:https://www.rstudio.com/products/rstud
R Studio 快照
交互使用 R 語言
成功安裝 R 語言之後,在終端或 shell 里點擊「R」啟動互動式 shell。
你可以將 R shell 當成計算器使用,執行簡單的數學,甚至高級的機器學習演算法。
執行以下命令退出 R 程序:
你可以點擊「y」保存工作區會話,如果直接點擊「n」,則不保存直接返回終端/shell。
我們從在 R 互動式 shell 中輸出「Hello World!」開始學習。
在 R 中我們使用 print() 函數返回參數中給定的字元串:
R 語言的命令
R 語言支持命令,而這些命令會被解釋器忽略。
以下是一些 R 語言的命令的例子:
變數
R 語言的變數可以保存一個原子向量(atomic vector)、一組原子向量或多個 R 對象的組合。R 語言的命名區分大小寫。在為數據結構命名的時候,我們需要遵循以下規則:
以. 起始的命名是系統命名,並且使用 ls() 函數時這些命名不總是可見。
上面的代碼聲明了一個變數「a」並分配了值 3。
typeof() 函數返回變數的數據類型。
R 語言的數據類型
numeric(實數或十進位數):十進位值在 R 語言中被稱為 numeric,是默認的計算數據類型。
此外還包括 integer(整數)、charater(字元串)、logical(邏輯值)、complex(複數)等,以下是這些數據類型的定義代碼示例:
使用命令「Rscript filename.R」在 shell 上執行 R 文件。
注意:R 語言的字元串是 Character 類型的。
算術運算
R 語言可以執行所有基本的算術運算,例如加、減、乘、除等。
R 語言中的數據結構
原子向量
在 R 語言中,向量是最常用的數據結構。向量是相同類型的數據元素的序列。向量成員的正式名稱是成分(component)。向量的元素的數據類型可以是 character、logical、integer 或 numeric。
我們使用 vector() 函數創建一個空向量,以下代碼展示了如何聲明一個向量:
列表
R 語言的列表作為容器,是包含其它對象的通用向量。和原子向量不同,列表中的變數不局限於單一的數據類型,可以包含任意的數據類型的混合。一個列表可以包含其它列表。
R 語言中的列表可以用 list() 函數創建。
矩陣
在 R 語言中,矩陣是一種特殊類型的向量。矩陣是數據元素以二維矩形排布的集合,矩陣有行和列。
現在我們創建一個 2x2 矩陣,使用 matrix 函數並以行和列作為參數。行數以 nrow 表示,列數以 ncol 表示。
數據幀(data frame)
數據幀是 R 語言里最常用的數據結構之一。數據是由帶有行和列的數據表格表示的。
我們通常在數據幀里讀取一個 csv 文件,使用 read.csv() 或 read.table() 函數,然後把 csv 文件的名字作為參數輸入函數里來實現的。
我們也可以用 data.frame() 函數來創建一個數據幀。
這裡有幾個重要的函數,應用到數據幀得出其結構信息等。
head() 用來看前 6 行
tail() 用來看後 6 行
dim() 用來看維度
nrow() 行的數量
ncol() 列的數量
str() 每一列的結構
因子(factor)
因子是帶標籤的整數。因子看起來像字元矢量,但實際上是整數,當你把它們當成字元來對待時,需要特別謹慎。一些字元處理方法會強制把因子轉換成字元,而其他的字元處理方法會報錯。
因子可以用 factor() 函數創建。輸入一般是字元矢量。
控制結構
以下是控制函數的腳本執行流程的常用結構,包括:
1. if, else
2. for
3. while
4. repeat
5. break
if-else
我們經常需要可以檢查一個程序的狀態和改變這個程序的行為的功能。條件語句可以提供這樣的功能,最簡單的形式是 if 語句。
例子
for 循環
R 語言里的 for 循環可以在任何列表或矢量中執行。
上述代碼是在 R 語言里聲明 for 循環的例子,for 循環讓循環變數 i 在給定的範圍內迭代。
幾種實現 for 循環的方法。
while
一個 R 語言里的 while 循環會反覆的執行目標語句,只要給定的條件一直是真。不像 for 循環,while 循環不會確定循環次數,而會一直跑直到條件不滿足。
while 循環句法
這是一個例子,我們實現一個簡單的 while 循環。
repeat 和 break
一個 repeat 循環是用來反覆執行一段代碼的,其中沒有檢查條件然後退出的機制。
repeat 和 break 的句法
現在,讓我們用 repeat 和 break 來輸出前五個數字。
函數
在任何編程語言中函數的主要作用就是可復用性。函數是一系列聲明的組合以執行特殊的任務。在 R 語言里有很多內建的函數,例如 sum()、min()、max()、mean() 等。
R 語言中聲明函數的句法
現在讓我們創建一個函數來輸出一系列的數字。
R 語言里的可視化
數據可視化是對決策至關重要的參考。R 語言為了創建數據儲存和可視化兒提供了最好的內置函數和庫。
現在,讓我們用 R Studio 里的 ggplot2 來創建一個簡單的線圖,我們需要安裝 ggplot2 包,你會在左角找到控制台,執行命令安裝包(「package_name」):
我們現在導入一個內置的數據集(mpg),然後畫一個簡單的圖。
關於 mpg 數據集:這是一個關於燃料經濟的數據集,包含了從 1999 年到 2008 年 38 種流行車款的數據。
1. 一個 234 行和 11 個變數的數據幀;
2. displ-發動機排量,以升為單位;
3. hwy-高速公路耗油量,英里每加侖。
本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。
------------------------------------------------


※阿里巴巴提出極限低比特神經網路,用於深度模型壓縮和加速
※AI創業公司融資新記錄,三大國有銀行共同投資第四範式
TAG:機器之心 |