《R语言入门与实践》第九章:循环

在本章,作者以两个骰子之和的期望值导入,为了进行以下的步骤:

  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 命令时跳出循环.





原文地址:https://www.cnblogs.com/FBsharl/p/10826204.html