R 流程控制與函數

計次迴圈

MPG.Sum <- 0.0 # 計次迴圈 for (i in seq(1:length(mtcars$mpg))) { MPG <- mtcars$mpg[i] MPG.Sum <- MPG.Sum + MPG } # 數值比較 if (isTRUE(all.equal(MPG.Sum, sum(mtcars$mpg)))) { print("相等") } else { print("不相等") }

計次迴圈

MPG.Sum <- 0.0 # 計次迴圈 for (i in seq(1:length(mtcars$mpg))) { MPG <- mtcars$mpg[i] MPG.Sum <- MPG.Sum + MPG } # 數值比較 if (doCompare(MPG.Sum, sum(mtcars$mpg))) { print("相等") } else { print("不相等") }

定義函數

doCompare <- function(x, y) { OK <- isTRUE(all.equal(x, y)) }

條件迴圈

MPG.Sum <- 0.0 # 計數器 i <- 1 while (i <= length(mtcars$mpg)) { MPG <- mtcars$mpg[i] MPG.Sum <- MPG.Sum + MPG i <- i + 1 } # 數值比較 if (isTRUE(all.equal(MPG.Sum, sum(mtcars$mpg)))) { print("相等") } else { print("不相等") }

條件迴圈

MPG.Sum <- 0.0 # 計數器 i <- 1 while (i <= length(mtcars$mpg)) { MPG <- mtcars$mpg[i] MPG.Sum <- MPG.Sum + MPG i <- i + 1 } # 數值比較 if (doCompare(MPG.Sum, sum(mtcars$mpg))) { print("相等") } else { print("不相等") }

向量函數計算

# 使用者自訂函數 UDF <- function(x) { if (x %% 2 == 0) { y = 0.5 * x } else { y = 0.2 * x } y } # 產生 100 個隨機樣本 numArr <- sample(1:100) # 向量函數計算:調用 UDF numArr_2 <- sapply(numArr, UDF) numArr_2