为什么重复循环会改变循环优化的结果?

时间:2019-05-31 11:14:40

标签: r loops optimization

我原来的函数体现了几个optimize()函数,当我第一次使用该函数与第二次使用该函数时,得到的结果不同。

我尝试了this,但是我确保返回的值是一维的。

fn = function(A,P){
  l_fn = function(x) {
    L <- x[1]
    -((A*L*P)-(P*L^2)) # -1 because optimize-function finds minimum
  }
  l_opt <- as.numeric(optimize(l_fn,c(0,1000))[2]) # get objective output
  return(l_opt)
}

f <- data.frame(x=c(10:20))

for (i in 1:length(f)) { # run this part 2 times!
  f$test <- sin(f$x) # this is how I expect a function to behave
  f$out[i] <- fn(f$x[i],100) 
}

第一次运行代码会产生f $ out都相等(很奇怪)的代码。即使输入参数保持不变,再次运行for循环也会更改f $ out!那怎么可能?

0 个答案:

没有答案