the problem.

It is easy to get "burned" by use of the ifelse statement. Its results have

the same "shape" as the first argument.

if ( .... ) {

> Dear all,

>

>

> I am using the DeSolve Package to simulate a system dynamics model. At the

> problematic point in the model, I basically want to decide how many

> products shall be produced to be sold. In order to determine the amount a

> basic forecasting model of using the average of the last 12 time periods

> shall be used. My code looks like the following.

>

> “ […]

>

> # Time units in month

> START<-0; FINISH<-120; STEP<-1

>

> # Set seed for reproducability

>

> set.seed(123)

>

> # Create time vector

> simtime <- seq(START, FINISH, by=STEP)

>

> # Create a stock vector with initial values

> stocks <- c([…])

>

> # Create an aux vector for the fixed aux values

> auxs <- c([…])

>

>

> model <- function(time, stocks, auxs){

> with(as.list(c(stocks, auxs)),{

>

> [… “lots of aux, flow, and stock functions” … ]

>

>

> aMovingAverage <- ifelse(exists("ResultsSimulation")=="FALSE",

> 10000,movavg(ResultsSimulation$TotalSales, 12, type = "s”))

>

>

> return (list(c([…]))

>

> })

> }

>

> # Call Solver, and store results in a data frame

> ResultsSimulation <- data.frame(ode(y=stocks, times=simtime, func = model,

> parms=auxs, method="euler"))

>

> […]”

>

> My problem is, that the moving average (function: movavg) is only computed

> once and the same value is used in every timestep of the model. I.e. When

> running the model for the first time, 10000 is used, running it for the

> next time the total sales value of the first timestep is used. Since only

> one timestep exists, this is logical. Yet I would expect the movavg

> function to produce a new value in each of the 120 timesteps, as it is the

> case with all other flow, stock and aux calculations as well.

>

> It would be great if you could help me with fixing this problem.

>

>

> Many thanks in advance!

>

> Yours,

>

> Jan

>

>

>

>

>

> [[alternative HTML version deleted]]

>

> ______________________________________________

>

[hidden email] mailing list -- To UNSUBSCRIBE and more, see

>

https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide

http://www.R-project.org/> posting-guide.html

> and provide commented, minimal, self-contained, reproducible code.