我原来的函数体现了几个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!那怎么可能?