'Error in optim$par : object of type 'closure' is not subsettable

I am trying to otpimmize a function that minimizes the root mean square error with the code below:

data_optim <- select(data,daily_mean_temp,log_demand)
weather_fun.optim <- function(x, data_optim){
  #assigning parameters
  w0 <- x[1]
  b0 <- x[2]
  b1 <- x[3]
  b2 <- x[4]
  b3 <- x[5]
  #Calculations
  for (i in 1:(length(data_optim$log_demand))){
      data_optim <- mutate(data_optim,fit_val = ifelse(daily_mean_temp <= w0,b0+b1*daily_mean_temp,b2+b3*daily_mean_temp))
  }
  data_optim = mutate(data_optim,residual= log_demand-fit_val)
  rmse = sqrt(sum((data_optim$residual)**2)/length(data_optim$log_demand))
  return (rmse)
}
DEoptim(fn = weather_fun.optim,data = data_optim,control=list(parVar=c("w0","b0","b1","b2","b3"),packages=c("dplyr")),lower=c(0,-20,-10,-20,-10),upper=c(20,20,10,20,10))

When i run it i get an error:

Error in optim$par : object of type 'closure' is not subsettable

How do i fix it?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source