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





posted @   FBshark  阅读(376)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示