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

如何在R中实现循环:生成均值100、sd=5的随机值,<80时终止并维护向量A

解决R语言循环生成随机数并终止的问题

首先得纠正你代码里的一个小错误:rnorm <- set.seed(999)这种写法是不对的,set.seed()是用来设置随机数种子(保证结果可复现)的函数,不需要赋值给任何变量,单独执行就好。

接下来直接给你实现需求的完整代码,再一步步解释:

# 设置随机种子,确保每次运行得到的随机数一致
set.seed(999)

# 初始化空向量A,用来存储符合条件的随机值
A <- NULL

# 使用repeat循环(适合这种"直到满足条件才停止"的场景)
repeat {
  # 生成1个均值为100、标准差为5的正态分布随机数
  rand_num <- rnorm(n = 1, mean = 100, sd = 5)
  
  # 判断:如果生成的数小于80,立刻终止循环
  if (rand_num < 80) {
    break
  }
  
  # 否则把这个数追加到向量A里
  A <- c(A, rand_num)
}

# 循环结束后打印向量A
A

补充说明:

  • 为什么用repeat循环?因为我们不确定循环会执行多少次,只有当生成的随机数小于80时才停止,repeat天生就是为这种"无限循环直到触发退出条件"的场景设计的。
  • 你也可以用while循环实现,写法稍微不同,但逻辑一样:
set.seed(999)
A <- NULL
# 先生成第一个随机数
rand_num <- rnorm(1, 100, 5)

# 当随机数>=80时继续循环
while (rand_num >= 80) {
  A <- c(A, rand_num)
  # 生成下一个随机数
  rand_num <- rnorm(1, 100, 5)
}

A

两种写法都能实现你的需求,选你觉得更直观的就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:07:54