You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言的for嵌套while循环中记录子迭代次数?

解决方案

你只需要在每个外层循环中添加一个子迭代计数器,记录while循环的执行次数即可,修改后的完整代码如下:

list_results <- list()

for (i in 1:100){
  num_1_i = num_2_i = num_3_i = 0
  sub_count <- 0  # 初始化子迭代次数计数器
  
  while(num_1_i + num_2_i + num_3_i < 150){
    num_1_i = runif(1,0,100)
    num_2_i = runif(1,0,100)
    num_3_i = runif(1,0,100)
    sub_count <- sub_count + 1  # 每次生成随机数后,计数器加1
  }
  
  # 构造包含子迭代次数的结果数据框,列名和目标格式对齐
  inter_results_i <- data.frame(
    index = i, 
    num_1 = num_1_i, 
    num_2 = num_2_i, 
    num_3 = num_3_i, 
    sub_index = sub_count
  )
  list_results[[i]] <- inter_results_i
}

# 将列表合并为最终的完整数据框
final_results <- do.call(rbind, list_results)
# 查看前几行结果
head(final_results)

关键修改说明

  • 在外层for循环内部初始化sub_count为0,专门用来统计当前外层迭代中while循环的执行次数。
  • 每次while循环生成完随机数后,给sub_count加1,确保每一次生成三个随机数的操作都被计数。
  • 调整结果数据框的列名,使其和你期望的输出格式完全匹配。
  • 最后用do.call(rbind, list_results)把所有子结果合并成一个统一的数据框,方便后续查看和分析。

内容的提问来源于stack exchange,提问作者stats_noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:06:21