• 沒有找到結果。

01簡介.pdf

N/A
N/A
Protected

Academic year: 2021

Share "01簡介.pdf"

Copied!
37
0
0

加載中.... (立即查看全文)

全文

(1)

01 簡介

王元俊

Wang Yuan-Jiun

[email protected]

(2)

教材

• R 語言資料分析:從機器學習、資料探勘、文 字探勘到巨量資料分析 [第二版] • 作者:李仁鐘、李秋緣 • 出版社:博碩文化股份有限公司 • 書號:MP31714 • 出版日期:2017 年 6 月 2 日 • 範例檔案下載

(3)

R

• R 是統計軟體,也是一種程式設計語言。主要 用於統計分析、繪圖、資料探勘。

• R 由 Ross Ihha 與 Robert Gentlemn 所開發。

• R 有 Windows、Unix、Linux 及 MacOS 等作業 系統的版本。 • R 目前開發的核心團隊由世界各地不同機構所 組成,網站位於 http://www.r-project.org。 3 R 語言資料分析

(4)

R 軟體

• The R Project for Statistical Computing

http://www.r-project.org/

• CRAN: Comprehensive R Archive Network (R 綜合典藏網)https://cran.r-project.org/

• RStudio

(5)

安裝與執行 R 軟體

• 下載

– https://cran.r-project.org/

– Download R for Windows

– base Binaries for base distribution. – Download R 3.4.3 for Windows

• 安裝

– R-3.4.3-win.exe • 執行

(6)
(7)

安裝與執行 RStudio

• 下載

– https://www.rstudio.com/products/rstudio/

– DOWNLOAD RSTUDIO DESKTOP – RStudio 1.1.423 - Windows Vista/7/8/10 • 安裝

– RStudio-1.1.423.exe • 執行

(8)
(9)

RStudio 視窗操作

• R Script : File → New File → R Script • Console

• Environment / History

• Files / Plots / Packages / Help / Viewer • 網路教學,參閱

http://deepgreat08.blogspot.tw/2015/08/r-studio-20150821.html

(10)

R 套件 (Packages)

• 套件是一些有用的程式,能幫助我們快速完成 要做的工作。 • https://cran.r-project.org/web/packages/ • 查詢已經安裝的套件 • 安裝套件 • 使用套件 • 移除套件 • 更新套件

(11)

查詢已經安裝的套件

• 顯示比較多的資訊 – 指令:installed.packages() • 顯示簡易資訊 – 指令:library() • RStudio 視窗操作 R 語言資料分析 11

(12)

安裝套件

• 指令:install.packages("套件名稱") • R Console 視窗操作

– 程式套件 → 安裝程式套件…

– 程式套件 → Install package(s) from local files… • RStudio 視窗操作

(13)

使用套件

• 指令:library("套件名稱")

(14)

移除套件

• 指令:remove.packages("套件名稱") • RStudio 視窗操作

(15)

更新套件

• 指令:update.packages() • R Console 視窗操作

– 程式套件 → 更新程式套件…

• RStudio 視窗操作

– Tools → Check for Package Updates…

(16)

物件

• R 語言透過物件 (object) 來運作。 1. 物件使用名稱 (name) 和值 (content) 來描述 其特性。 2. 物件不需要事先宣告(物件名稱)。 3. 指定 (assignment) 運算:<− 或 = 例:> x <− 10 (註:> 為提示符號) 4. 顯示物件的值:直接寫出物件名稱或用 print( ) 函數 例:> x > print(x)

(17)

物件名稱(變數)

• 命名可以使用英文字母、數字、句點「.」、 底線「_」。 • 物件名稱第一個字母必須是英文字母或句點。 • 若以句點當物件的第一個字母,則其後面接的 第一個字元不能為數字。 • 英文字母大小寫是不同的。 • 有保留字,例如「c」與「NA」等。 R 語言資料分析 17

(18)

清除物件名稱

• 使用 rm( ) 函數

例: > rm(x) # 若已經有一個 x 物件

• 清除所有的物件名稱

例:> rm( list = ls( all = TRUE ) ) 或

> rm( list = ls( ) ) RStudio

(19)

物件的屬性

• 所有物件都有兩個內在屬性 – 資料型態 (mode) – 長度 (length) • 可以透過函數取得,例如 > mode(x) > length(x) (註:長度就是元素個數) R 語言資料分析 19

(20)

資料型態

• R 語言有四種表示「資料」的基本資料型態: 1. 數值 (numeric):例如 100、3.14

2. 文字 (character):例如 "Good"、"早安" 3. 複數 (complex):例如 3 + 2i、5 − 4i

4. 邏輯 (logical):僅有 TRUE (T) 與 FALSE (F) • 其他資料型態

– 函數 (function)

(21)

程式撰寫

• 執行多個指令於同一列中,使用分號「;」隔開。 例如 > x <− 10; y <− x^2; z <− sqrt(y); z • 註解:井字號「#」 R 語言資料分析 21

(22)

物件型態

• R 語言是物件導向,常用物件型態: 1. 向量 (vector) 2. 陣列 (array) 3. 矩陣 (matrix) 4. 因子 (factor) 5. 資料框架 (data frame) 6. 串列 (list)

(23)

向量 (1)

• 向量是由包含相同資料型態的元素組成。 1. 使用 c( ) 函數 (combine) 建立,例如 > V1 <− c(10, 5, 3.1, 6.4, 9.2, 21.7) 2. 使用 assign( ) 函數指定給物件,例如 > assign("V2", c(10, 5, 3.1, 6.4, 9.2, 21.7)) 注意:assign( ) 函數第一個參數必須使用引號。 3. 使用「:」建立,例如 > V3 <− 100:105,也就是 > V3 <− c(100, 101, 102, 103, 104, 105) 4. 向量元素為遺失值時,可給予 NA(大寫) > V <− c(10, 5, NA, 6.4, 9.2, 21.7) R 語言資料分析 23

(24)

向量 (2)

5. 用中括號 [] 存取向量中的特定元素,例如

> V1[2] # 注意索引 (index) 從 1 開始。

6. Inf、-Inf、NaN (Not a Number)、NULL

> V <− c(1, -2, 0) > V/0

[1] Inf -Inf NaN

> V <− NULL # 物件的長度為 0 > length(V)

(25)

陣列 (1)

• 陣列是多維度的向量。 1. 例如,一個三維的陣列 X 用 X[i, j, k] 表示 特定元素。 2. 使用 dim( ) 函數指定陣列維度 (dimension)。 例如: > x <− 1:24 # 指定向量的元素 > dim(x) <− c(3, 4, 2) # 指定陣列維度 3. R 語言陣列元素是以行為主 (column major) 的方式排列。 R 語言資料分析 25

(26)

陣列 (2)

4. 使用 array( ) 函數建立,例如 > X <− array(1:24, dim = c(3, 4, 2)) 或 > X <− array(1:24, c(3, 4, 2)) # 參數名稱 dim 可省略 5. 使用 rbind( ) 或 cbind( ) 函數建立:例如 > X1 <− c(1, 2, 3, 4) > X2 <− c(5, 6, 7, 8) > X <− rbind(X1, X2) > Y <− cbind(X1, X2) # X 與 Y 是兩個不同的陣列

(27)

矩陣 (1)

• 矩陣就是一個二維的陣列。

1. 使用 matrix( ) 函數建立,例如

> X <− matrix(1:24, 4, 6, TRUE)

說明:matrix(data, nrow, ncol, byrow, dimnames)

2. 使用 rbind( ) 與 cbind( ) 函數建立矩陣。 例如: > X1 <− c(1, 2, 3); X2 <− c(4, 5, 6) > X3 <− c(7, 8, 9) > X <− cbind(X1, X2, X3) 3. 矩陣轉置 (transposition):t( ) 函數,例如 > Y <− t(X) R 語言資料分析 27

(28)

矩陣 (2)

4. 矩陣的列數與行數:nrow( )、ncol( ) 函數 > m <− nrow(Y) > n <− ncol(Y) 5. 顯示矩陣 X 的第一列元素 > X[1, ] 6. 顯示矩陣 X 的第一行元素 > X[, 1] 7. 顯示矩陣 X 的第一及三列元素 > X[c(1, 3), ] 8. 移除矩陣 X 的第一行元素

(29)

矩陣 (3)

9. 計算方陣的特徵值 (eigenvalues) 和特徵向 量 (eigenvectors):eigne( ) 函數,例如 > objEigen <− eigen(M) 10. 矩陣相乘使用「%*%」運算子,例如 > Z <− Y %*% X

11. 修改矩陣的行名稱,例如

> colnames(z) <− c("c1", "c2", "c3")

12. 修改矩陣的列名稱,例如

> rownames(z) <− c("r1", "r2", "r3") R 語言資料分析 29

(30)

資料框架 (1)

• 資料框架是二維,觀念上就是「表格」。 • 資料框架中,同一列的各元素可以有不同的資 料型態,但同一行的資料型態與長度必須相同。 • 資料框架的每一列是一組觀察值 (observation) 或稱為案例 (case)。每行定義變數名稱表示。 1. 範例: > id <− c(1, 2, 3, 4) > age <− c(25, 30, 35, 40) > sex <− c("M", "M", "F", "F") > pay <− c(30000, 40000, 45000, 50000)

(31)

資料框架 (2)

2. 取得某一位置的元素,例如 > X[3, 2] 3. 取得某一行所有的元素,例如 > X$age 4. 取得某一行的名稱與所有元素,例如 > X[2] 5. 類似 Excel 介面的編輯器,建立或修改資 料框架的值,使用 edit( ) 函數,例如 > X <− edit(X) # 在儲存格中按滑鼠右鍵兩下, 才能開始編輯或修改 R 語言資料分析 31

(32)

因子

• 因子是一種特殊的向量,用來將向量中的離散 資料分群組 (grouping)。 • Levels 屬性表示群組的所有離散值。 – 範例: > sex <− factor(c(1, 1, 0, 0, 1, 2, 4)) # 建立因子 > sex [1] 1 1 0 0 1 2 4 Levels: 0 1 2 4 • 若資料是字串,顯示時不會印出雙引號「"」。

(33)

串列(或稱為列表)(1)

• 串列是一個有序序列 (order sequence),其中的 組成元素 (component) 可以是不同型態的物件。 • 串列中組成的元素可以包括數值、邏輯、文字、 複數、向量、矩陣、因子及資料框架等。 • 使用 list( ) 函數建立。 R 語言資料分析 33

(34)

串列 (2)

1. 範例:

> id <− c(1, 2, 3)

> sex <− c("M", "M", "F")

> pay <− c(30000, 40000, 45000) > Y <− data.frame(id, sex, pay)

> gender <− factor(c("男", "男", "女"))

> Paul.Family <− list(name = "Paul", wife = "Iris", no.kids = 3, kids.age = c(25, 28, 30), gender, Y)

• 注意:list( ) 中使用「=」設定元素值

(35)

串列 (3)

2. 取得或參照到串列的某一元素名稱及內容, 使用「[序號值]」,例如 > Paul.Family[4] $kids.age [1] 25 28 30 R 語言資料分析 35

(36)

串列 (4)

3. 取得或參照到串列的某一元素,使用 「$參數名稱」或「[[序號值]]」,例如 > Paul.Family$kids.age [1] 25 28 30 > Paul.Family[[4]] [1] 25 28 30 > Paul.Family[[4]][2] 或 > Paul.Family$kids.age[2] [1] 28

(37)

物件轉換

• 不同物件之間的轉換函數 – as.vector( ) − as.array( ) – as.matrix( ) − as.factor( ) – as.data.frame( ) − as.list( ) – 範例 > id <− c(1, 2, 3, 4); > x <− data.frame(id) > matrix.x = as.matrix(x) # 轉換資料框架物件 # 為矩陣物件 > vector.x = as.vector(matrix.x) # 轉換矩陣物件 # 為向量物件 R 語言資料分析 37

參考文獻

相關文件

以下透過 透過 透過 透過五年級 五年級 五年級 五年級「 「 「 「中華大地任我行 中華大地任我行 中華大地任我行 中華大地任我行」 」 」 」為例 為例 為例作 為例 作 作說明 作 說明 說明

就知識及相關理論的最新發展,體育教師可運用他們的專業知識,把新元素例如資訊素養、企 業家精神、人文素養,以及

1 宙斯 Zeus Jupiter 天神之父,地上萬物的最高統治者,奧林匹 斯之主,諸神之神。. 2 希拉 Hera Juno

故事內容大概如下:在山西普救寺借宿的書生張珙(字君瑞)

而且嘲諷扁鵲說:「你既無上古名醫俞跗的本事,反而說你能救活太子,就是不懂事的

推行 (Implement) 評估 (Evaluate)...

以下就 BCG Matrix 中的四個象限做簡短說明。Question Marks

[r]