1. 程式人生 > >《R語言入門與實踐》第九章:循環

《R語言入門與實踐》第九章:循環

命令 結果 入門 不定 循環函數 var 期望 bre grid

在本章,作者以兩個骰子之和的期望值導入,為了進行以下的步驟:

  1. 得到所有可能出現的事件
  2. 計算出每一種事件響應的概率
  3. 將事件的值和響應概率的值相乘積和.

需要采取以下辦法:

  1. 一開始使用的是 expand.grid() 函數實現組合的循環定義,
  2. 同時借助自定義的 prob[]查找表得到相應的數值,
  3. 最後引出函數的重復需要借助循環語句,即 for, while, repeat 來進行計算.

expand.grid() 函數

格式:

(投擲兩次骰子,得到的所有組合的結果)
die <- c(1,2,3,4,5,6)
expand.grid(die, die)

可選參數

stringAsFactors = FALSE
定義:避免將所有可能的組合以因子的形式儲存在數據框中

功能:

計算出 n 個向量元素的所有組合.

查找表

格式:

prob <- c("1" = 1/6, "2" = 1/6,"3" = 1/6,"4" = 1/6,"5" = 1/6,"6" = 1/6)
使用查找表:
prob[rolls$Var1]

功能:

參數為一個向量,使用 [] 的形式,得到每一個值映射的值.

for 循環

格式:

for (value in object){
[chunk]
}

註意:

  1. in 後跟的是一個 object,其可以是字符串向量,或其他向量(包括整數的序列,如 1:100)
  2. chunk 中的賦值語句將改變原來向量中的值

功能

用於執行特定的次數,重復執行 chunk 中的語句

while 循環

格式:

while(cash > 0){
n <- n+ 1
}

功能:

用於執行不定次數的叠代過程

repeat 循環

格式

repeat{
[chunk]
}
if(condition){
break}
}

功能:

初級的循環函數,當遇到 break 命令時跳出循環.





《R語言入門與實踐》第九章:循環