在本章,作者以两个骰子之和的期望值导入,为了进行以下的步骤:
- 得到所有可能出现的事件
- 计算出每一种事件响应的概率
- 将事件的值和响应概率的值相乘积和.
需要采取以下办法:
- 一开始使用的是 expand.grid() 函数实现组合的循环定义,
- 同时借助自定义的 prob[]查找表得到相应的数值,
- 最后引出函数的重复需要借助循环语句,即 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]
}
注意:
- in 后跟的是一个 object,其可以是字符串向量,或其他向量(包括整数的序列,如 1:100)
- chunk 中的赋值语句将改变原来向量中的值
功能
用于执行特定的次数,重复执行 chunk 中的语句
while 循环
格式:
while(cash > 0){
n <- n+ 1
}
功能:
用于执行不定次数的迭代过程
repeat 循环
格式
repeat{
[chunk]
}
if(condition){
break}
}
功能:
初级的循环函数,当遇到 break 命令时跳出循环.