• 沒有找到結果。

03流程控制及自訂函數.pdf

N/A
N/A
Protected

Academic year: 2021

Share "03流程控制及自訂函數.pdf"

Copied!
20
0
0

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

全文

(1)

03 流程控制及自訂函數

王元俊

(2)

教材

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

(3)

命令

• R 程式的命令是由函數與運算式構成。 • 指定運算「 <− 」:物件 <− 運算式 • 例如 • 直接顯示執行結果,將命令用小括弧「( )」包 圍住。

(4)

區塊 (block)

• 大括弧 {運算式1; …; 運算式n} 表示區塊。 • 傳回值為區塊最後一個運算式的傳回值。

(5)

條件 (condition)

1. if 敘述 2. if-else 敘述 3. ifelse( ) 函數 4. switch( ) 函數 • 關係運算:==、!=、>=、<=、>、< • 邏輯運算:&&、||、!

(6)

if-else 敘述

• 語法:if (條件) 運算式1 else 運算式2 • 範例:

(7)

ifelse( ) 函數

• 語法:ifelse (條件, a, b)

若條件為真,傳回 a;否則傳回 b。 • 範例:

(8)

switch( ) 函數

• 語法:switch (條件, 運算式1¸ …, 運算式n) • 範例 1:

• 範例 2:

(9)

迴圈 (loop)

1. for 敘述 2. while 敘述 3. repeat 敘述 4. break:結束迴圈 5. next:結束目前的迴圈,進入下一個迴圈。

(10)

for 敘述

• 語法: for (索引變數 in 運算式) {運算式1; …; 運算式m} • 範例 1: • 範例 2: • 範例 3:

(11)

while 敘述

• 語法:while (條件) {運算式1; …; 運算式m} • 範例:計算 1 + 2 + … + 10

(12)

repeat 敘述

• 語法:repeat {運算式; …; if (條件) break} • 範例:計算 1 + 2 + … + 10

(13)

next

• next 跳過剩下運算式的執行,直接進入迴圈下 一輪執行。

(14)

R 語言的迴圈

• R 語言的迴圈效率較差,所以應盡量避免。 • R 語言有些函數,例如 apply( )、lapply( ) 及

sapply( ) 等,可以更有效率執行類似迴圈的功 能。

(15)

apply( )

• apply(X, MARGIN, FUN, ...)

– 對陣列或矩陣的列或行執行指定函數的計算 – X:陣列或矩陣 – MARGIN:1 表示列,2 表是行 – FUN:執行函數 • 範例:利用 sum( ) 函數計算陣列的 每一列與每一行 的總和

(16)

lapply( )

• lapply(X, FUN, ...) – 對向量或串列的每一元素執行同一函數,傳 回與 X 相同長度的串列物件 – X:向量或串列 – FUN:要執行的函數 • 範例:

(17)

sapply( )

• sapply(X, FUN, ...) – 類似 lapply( ) 函數,但是傳回值是一個向量 或矩陣物件。 – X:向量或串列 – FUN:要執行的函數 • 範例:

(18)

自訂函數 (1)

• 語法: 函數名稱 <− function(參數1, 參數2, …) {運算式1; …; 運算式m} • R 預設將函數內的最後一個運算式當作傳回值。 也可以使用 return( ) 函將值傳回。 • 範例 1:

(19)

自訂函數 (2)

• 參數給予預設值。 • 範例 2:

(20)

自訂函數 (3)

• R 的自訂函數中,若要修改函數外部物件的值, 要使用「<<−」才能改變自訂函數外部的值。

參考文獻

相關文件

電子 、 機械系 、 環工系 、 高分子、光電、電腦與通訊 本學程共計 7 學科, 18 學分,必須修畢全部學分,始

1.推(自)薦表紙本1份及推(自)薦資料電子檔,電子檔格式包括 word 檔(或 odt 檔)及 pdf

可程式控制器 (Programmable Logic Controller) 簡稱 PLC,是一種具有微處理機功能的數位電子 設備

數位計算機可用作回授控制系統中的補償器或控制

前一章我們學過了一次函數,本章將繼續延伸到二次函數。二次函數的函數圖形為拋

前一章我們學過了一次函數,本章將繼續延伸到二次函數。二次函數的函數圖形為拋

 for…迴圈自初值開始判斷 &lt;條件判斷&gt; 是否為 true,若為 true 則執行 for 迴圈內的敘述,並依 &lt;增量值&gt;,每次增 加 (或減少) 指定的增量值,直至 &lt;條件判斷&gt;

[r]