關卡 1

這門課程要讓大家透過互動式的內容,上手R語言。

關卡 2

這份文件中的格式採用和Markdown相容的語法。為了讓大家快速上手,這裡先說明一些常見的Markdown語法所有的程式碼,都會用`來包覆。例如:當swirl提示要各位輸入:sessionInfo()`就代表各位同學要在console輸入:sessionInfo()

關卡 3

所有的超連結,都會用<>來包覆。例如:https://www.google.com代表要請大家打開https://www.google.com

關卡 4

本文的內容都取自於help.start()中的AnIntroductiontoR。

關卡 5

那我們就開始吧!

關卡 6

我們跳過介紹R語言的部分,直接學習操作R的部分。在R中,是可以隨時獲得一個函數的細節說明。舉例來說,如果我們要查詢solve這個函數的詳細說明,就輸入:help(solve)。另一種比較簡單的方式是:?solve

關卡 7

現在請各位同學查詢chol2inv的說明。

help(chol2inv)

關卡 8

在R中,每一段指令都是一個expression。舉例來說,剛剛我們輸入的:help(chol2inv)就是一個有效的expression。

關卡 9

help(chol2inv少了一個)是無效的expression,需要完整的輸入help(chol2inv)

關卡 10

通常每一個給R的指令,不是一個expression,就是一個assignment

關卡 11

舉例來說,a<-1就是一個assigment的動作。請各位同學在console輸入a<-1

a <- 1

關卡 12

通常R在收到一個expression之後,它會做出以下的動作:

關卡 13

R會evaluate這個expression,然後把結果顯示到螢幕上。舉例來說,請同學輸入:a+1

a + 1

關卡 14

R在收到a+1這個expression之後,會進行計算,查到a的值是1,再和1做相加,最後把2顯示到螢幕上。

關卡 15

現在,請各位同學讓a的值變成2。

a <- 2

關卡 16

有沒有注意到,R並沒有在螢幕上顯示任何東西呢?

關卡 17

這裡測試一下同學懂不懂assignment的意思。請問現在如果我們在R的console中輸入a-1,會顯示什麼呢?

1

關卡 18

相信大家到這邊,對於expression和assignment有一些初步的認識。未來我們就是要寫大量的expression和assignment,來利用R達成複雜的任務。

關卡 19

我們可以把多個expression用{}包覆起來,變成一個大的expression。

關卡 20

我們也可以在程式碼中插入註解:#。所有在#之後的輸入,R都會略過。

關卡 21

如果有一個expression還沒有完成,(可能是少了)}),那R會在console的開頭用+來提示你。

關卡 22

我們也可以用上下的按鍵來快速瀏覽輸入過的expression。

關卡 23

要把指令輸入到R,也不一定要在console上一個字一個字的打。我們可以透過source指令,來載入一個撰寫R指令的文件,並且執行文件中的expressions。

關卡 24

請各位同學看一下source的說明。輸入之後,使用R一般界面的同學會看到跳出的說明視窗,內容則是R對source的官方說明。。使用Rstudio的同學則請檢查右下角的視窗是否有切換至source的官方說明。

help(source)

關卡 25

在各位同學安裝swirl的過程中,我們可能已經用過source來執行講師預先寫好的expressions來設定環境了。

關卡 26

剛剛我們也有跟各位同學介紹過assignment。在R裡面,這些我們存放資料的東西,例如剛剛的a,都叫做object。object可以是一個變數,也可以是一連串的數字,文字,甚至是函數,以及更複雜的東西。

關卡 27

在R中,我們可以利用objects()ls()來列出所有目前存在的object的名字。請同學嘗輸入objects()ls()

objects()

關卡 28

我們可以刪除已經存在的物件。舉例來說,如果我們要刪除a,就只要輸入:rm(a)。請同學試試看:

rm(a)

關卡 29

第一章的內容就到此結束了。