R 是一個功能強大的科學計算機,其本身內建非常大量的數學運算功能,本篇將介紹它的基本使用方式。

R 是一個功能非常豐富的程式語言,而在實際開始學習 R 語言之前,我們先粗略的瀏覽一下 R 的一些基本功能與使用方式,讓大家對於 R 有一些基本的認識與了解,等大家熟悉 R 的操作之後,再繼續學習後續的細部觀念與更深入的課題。

以下是 R 的一些基本操作介紹。

R 使用者介面

R 是一個使用指令操作的軟體,在學習 R 語言之前,我們先熟悉一下他的操作介面。

將 R 打開之後,可以看到一個 R Console 視窗,裡面會有一些 R 的版本與相關使用條款的資訊,往後所有的指令都是在這個 R Console 視窗中做輸入,而所有的文字輸出也都是在這裡,他是 R 中最主要的操作介面。

install-r-in-windows-17

我們可以在 R Console 中直接輸入我們想要計算的數學式子,把 R 當作一般的計算機使用:

12 + 3 * 6

然後按下 Enter 鍵之後,就可以得到計算的結果:

[1] 30

這裡的 30 就是計算結果,而開頭用中括號包起來的數字是標示這個數值是在向量中的位置編號(這個部分稍後會介紹,目前可先忽略它)。

R 支援很多種格式的輸入,例如:

(43.43 * 2^4 + 1.23e3) / 384.23

其中 2^4 是 (2^4),而 1.23e3 則是 (1.23 times 10^3),這樣的輸出為:

[1] 5.009708

變數

我們可以建立變數,將數值或各種資料儲存起來:

foo <- 23;

其中 <- 為 R 特有的指定運算子(assignment operator),在大多數的情況下也可以使用等號 = 取代,就像這樣:

foo = 23;

這樣就會在 R 中建立一個變數 foo,而它的值是 23,這時候我們可以輸入變數的名稱來乾看這個變數的值:

foo
[1] 23

尋找變數

如果您在使用 R 時想要找尋之前建立的變數,但是一時忘記完整的變數名稱,這時候就可以使用 apropos 這個函數來搜尋,他可以使用關鍵字來搜尋所有的變數,列出所有符合的變數名稱。假設我們有一個 very_long_name 變數:

very_long_name <- 38

若我們只記得一部份的變數名稱,就可以使用 apropos 搜尋一下:

apropos("long")
[1] "longley"        "seq_along"      "very_long_name"

這樣就可以很快找出我們需要的變數。

呼叫函數

除了簡單的數值運算之外,R 中內建非常多的功能函數,善用這些功能函數可以幫助我們進行各式各樣複雜的運算,例如計算從 110 的總和,就可以使用 sum 這個功能函數:

sum(1:10)

輸出為

[1] 55

這裡的冒號 : 是一個可以產生連續數列的運算子,1:10 會產生從 110 的數列,接著我們將這個數列交給 sum 這個計算總和的函數,計算出從 110 的總和。

這裡 1:10 所產生的數列稱為一個向量(vector),而我們所呼叫的 sum 則稱為函數(function),函數在呼叫時需要傳入的資料就稱為函數的參數(argument)。

R 中有內建非常多的數學運算函數以及常數,例如三角函數與 (pi):

sin(pi/2)
[1] 1

絕對值:

abs(-34)
[1] 34

指數:

exp(1)
[1] 2.718282

中位數:

median(1:5)
[1] 3

註解與多個指令

適當的在程式碼中加入註解,對於程式的易讀性會很有幫助,在 R 的每一行程式碼中,所有在 # 之後的文字都會被視為註解,例如:

foo <- 23;  # 建立 foo 變數

也可以把註解寫成獨立一行:

# 建立 bar 變數
bar <- 86;

如果要在一行 R 程式碼中一次輸入多個指令,可以使用分號 ; 將不同的指令區分開來,例如:

a <- 1; b <- 2; c <- 3;

這樣的寫法等同於

a <- 1
b <- 2
c <- 3

有時候將多個簡短的指令合併成一行,可以讓程式碼更簡潔、也更容易閱讀。

Demo

剛開始使用 R 時,如果想要看看 R 可以處理些問題,可以使用 R 內建的 demo 函數,執行 R 內建的範例程式,首先執行 demo 列出可以選用的主題:

demo()

接著執行 demo 並指定想要觀看的主題:

demo(graphics)

線上說明

在 R 中如果想要查詢某個函數的使用方式,可以輸入一個問號 ? 再加上要查詢的函數名稱:

?sum

這樣就可以查詢 sum 這個函數的詳細使用方式。除了函數之外,也可以查詢 R 的關鍵字或運算子的說明:

?"+"
?"if"

如果您不知道確切的函數名稱,可以使用兩個問號 ?? 加上關鍵字來搜尋相關的主題:

??plotting
??"regression model"

除了 ??? 之外,也可以使用 help 來查詢,兩者功能是相同的:

help("sum")
help("+")
help("if")
help.search("plotting")
help.search("regression model")

Vignettes

R 將許多的功能模組化,以套件(packages)的方式來管理,有些套件會包含一些自己的說明文件(vignettes),執行 browseVignettes 可以瀏覽自己電腦中套件的說明文件:

browseVignettes()

我們也可以直接開啟特定主題的說明文件(不過這需要記得說明文件的名稱):

vignette("Sweave", package = "utils")

網路資源

使用 helpvignette 都是從自己電腦有安裝的說明文件中來查詢,如果想要尋找更豐富的資料,可以透過網路上的一些資源: