2017-09-01 143 views
1

我有我提供以下一个例子,如果简单线性回归一般功能:存储信息()

x = 1:30 
y = 0.7 * x + 32 
Data = rnorm(30, mean = y, sd = 2.5); 

lin = function(pars = c(grad,cons)) { 
    expec = pars[1] * x + pars[2]; 
    SSE = sum((Data - expec)^2) 
    return(SSE) 
} 

start_vals = c(0.2,10) 
lin(start_vals) 
estimates = optim(par = start_vals, fn = lin); 

## plot the data 
Fit = estimates$par[1] * x + estimates$par[2] 
plot(x,Data) 
lines(x, Fit, col = "red") 

所以这是直截了当。我想要的是存储对最后一组参数的期望,以便一旦完成优化,我就可以查看它们。我一直在使用一个全球集装箱并试图如果执行函数填充它尝试,但它不能正常工作,如

Expectation = c(); 
lin = function(pars = c(grad,cons)) { 
    expec = pars[1] * x + pars[2]; 
    Expectation = expec; 
    SSE = sum((Data - expec)^2) 
    return(SSE) 
} 

start_vals = c(0.2,10) 
estimates = optim(par = start_vals, fn = lin); 
Expectation ## print the expectation that would relate to estimates$par 

我知道,这是微不足道的功能之外做的,但我的实际问题(这与此类似)要复杂得多。基本上我需要返回无法追溯计算的内部信息。任何帮助深表感谢。

回答

1

,你应该在你的lin功能,Expectation <<- expec,使用<<-代替=运营商<<-->>通常只用在函数中,并导致通过母体环境中做了一个搜索赋值的变量的现有定义。