R 語言,一種自由軟體程式語言與操作環境,主要用於統計分析、繪圖、資料探勘。R 是基於 S 語言的一個 GNU 計劃專案,所以也可以當作 S 語言的一種實現,通常用 S 語言編寫的代碼都可以不作修改的在 R 環境下執行。R 的語法是來自 Scheme。
R 的原始碼可自由下載使用,亦有已編譯的執行檔版本可以下載,R 可以在各種平台上運作,包含 Windows、Macintosh、Linux 等數十種平台。R 主要是以命令列操作,同時也有人開發了幾種圖形用戶介面。
由於 R 語言(S 語言)從 70 年代持續演變至今,經過了好幾個世代,並不像近代的新興程式語言(如微軟的 .Net)是全新設計的,所以 R 的語法在某些時候會讓人感覺很奇怪,或是同時允許好幾種不同的寫法,這個現象是一個語言經過長期自由發展之後所難以避免的。當然語言很自由也是有優點的,如果不喜歡 R 原本的功能,可以自己動手直接改寫功能,而且通常人們需要的功能都已經有人寫好了,人們的問題通常不是「R 可以處理這個問題嗎?」,反而是「這裡有三種實作版本,應該用哪一個?」。
R 語言本身是屬於高階的直譯式語言(interpreted language),所以在程式執行之前,使用者不需要自己編譯程式,使用者可以把心力全部投入在資料的分析上,不用去管太低階的電腦問題,就跟使用 Matlab 這類的程式語言類似。
R 本身支援混合式的程式設計模式,其內部核心中是以指令式程式設計(imperative programming)來撰寫的(就像一般的指令稿,一行接著一行執行),但它也支援物件導向程式設計(object-oriented programming)與函數式程式設計(functional programming),混合式的程式設計風格會讓一個問題有好幾種解決方式,程式設計師可以依自己的喜好來選擇。
R 語言的官方網站:https://www.r-project.org/
維基百科:https://en.wikipedia.org/wiki/R_(programming_language)
初學 R 語言的60分鐘,引導 R 語言初學者的投影片:https://www.slideshare.net/chenpanliao/slide-44171070
R 語言的入門教學、進階使用技巧與範例等相關文件:https://blog.gtwang.org/programming/r/
使用 R 語言直接取用 Yahoo Finance 裡各公司股價的歷史資料:http://www.bituzi.com/2014/12/Rbacktest6mins.html
在命令列執行以下指令:
> library(quantmod)
> getSymbols("AAPL")
> AAPL
說明:
1. "library(quantmod)" 是將 quantmod套件 引進函式庫。
2. "getSymbols("AAPL")" 是擷取 Yahoo Finance 裡蘋果 ( AAPL ) 股價的歷史資料。
3. 將資料擷取回來以後,再輸入 "AAPL",可得到 蘋果股價資料,包含每天開盤價 ( AAPL.Open )、最高價 ( AAPL.High )、最低價 ( AAPL.Low )、收盤價 ( AAPL.Close )、成交量 ( AAPL.Volume )、還原權值 ( AAPL.Adjusted ) 。
在命令列執行以下指令:
> chartSeries(AAPL)
說明:
使用 quantmod套件 的繪圖功能,繪製出股價走勢圖。
R 語言已內建 IBM Watson 人工智慧:https://read01.com/nj6y2N.html