[R-sig-eco] Packaging simecol object into package

Thomas Petzoldt Thomas.Petzoldt at tu-dresden.de
Thu Jun 9 14:24:33 CEST 2011


Dear Rainer,

there are several methods to do this and they are, in principle, 
described in Section 1.3 of the simecol vignette "Dierent ways to store 
simObjects".


1) In package simecol, all example objects are simply stored as .Rdata 
in the /data  directory. Just create your objects, then run 
package.skeleton() and move the data objects to your package.

However, method (1) had some drawbacks, therefore:

2) in package simecolModels, I use a "generator" function (see example 
below), similarly to your makeASM() idea.


The package simecolModels, that is available from

R-Forge http://r-forge.r-project.org/projects/simecol/

(or http://www.simecol.de).

may serve as a template.

Hope it helps

Thomas





genLV <- function() {
   new("odeModel", main = function(time, x, p) {
     dx1 <- p["k1"] * x[1] - p["k2"] * x[1] * x[2]
     dx2 <- -p["k3"] * x[2] + p["k2"] * x[1] * x[2]
     list(c(dx1, dx2))
  },
  parms = c(k1 = 0.2, k2 = 0.2, k3 = 0.2), times = c(from = 0,
  to = 100, by = 0.5), init = c(prey = 0.5, predator = 1),
  solver = "lsoda")
}

Now, the function contains the instruction, how R can create a new 
instance of such a model.

The simecol object is not created yet, but a call to the creator 
function can bring it to live:

lv1 <- genLV()
plot(sim(lv1))



-- 
Dr. Thomas Petzoldt
(limnology and ecological modelling)

Technische Universitaet Dresden
Faculty of Forest, Geo and Hydro Sciences
Institute of Hydrobiology
01062 Dresden, Germany

E-Mail: thomas.petzoldt at tu-dresden.de
http://tu-dresden.de/Members/thomas.petzoldt



More information about the R-sig-ecology mailing list