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

R语言仿真模拟代码运行时month_cost_vec向量存在NA值问题求助

错误原因

你编写的月度成本计算、month_cost_vec向量赋值逻辑全部放在了for循环的外部,执行流程如下:

  • for循环迭代过程中,仅会每次生成perc_machines_down、time_spent、var_costs三个变量,新的迭代会直接覆盖上一轮的变量值,不会做任何计算存储操作
  • 当for循环完全执行结束后,迭代变量i的值为5000,此时仅会用最后一轮迭代生成的三个变量值计算总成本,也只会给month_cost_vec的第5000位赋值,剩下4999个位置都会保留初始的NA值。
修正方案

把成本计算、向量赋值的代码全部移入for循环的大括号内部即可,修正后代码如下:

sim_times = 5000
month_cost_vec = rep(NA,sim_times)
n_machines = 100
labor_cost = 28
fixed_cost = 120

set.seed(0)
for (i in 1:sim_times) {
  perc_machines_down = sample(x=c(.08,.09,.1,.11,.12,.13),
                 size = 1, replace = TRUE,
                 prob = c(.3,.22,.2,.13,.12,.03))
  time_spent = sample(x=c(1,2,3,4),
                size = 1, replace = TRUE,
                prob = c(.25,.25,.25,.25))
  var_costs = rnorm(n=1,mean = 80,sd = 20)
  
  # 成本计算、赋值逻辑移入循环内部
  monthly_cost_of_labor = (n_machines*perc_machines_down)*(labor_cost*time_spent)
  monthly_fixed_cost_of_replacement_parts = (n_machines*perc_machines_down)*fixed_cost
  monthly_variable_cost_of_replacement_parts = (n_machines*perc_machines_down)*var_costs
  monthly_total_repair_costs = monthly_cost_of_labor + monthly_fixed_cost_of_replacement_parts + monthly_variable_cost_of_replacement_parts
  month_cost_vec[i] = monthly_total_repair_costs
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:45:04