Because a simList
works with an environment to hold all objects,
all objects within that slot are pass-by-reference.
That means it is not possible to simply copy an object with an assignment operator:
the two objects will share the same objects.
As one simList
object changes so will the other.
When this is not the desired behaviour, use this function.
# S4 method for class 'simList'
Copy(object, objects, queues, modules, ...)
An R object (likely containing environments) or an environment.
Whether the objects contained within the simList
environment
should be copied. Default TRUE
, which may be slow.
Logical. Should the events queues (events
, current
, completed
)
be deep copied via data.table::copy()
Logical. Should list of modules be copied.
Only used for custom Methods
a copy of object
simList
objects can contain a lot of information, much of which could be
in pass-by-reference objects (e.g., data.table
class), and objects that are
file-backed, such as some Raster*
-class objects. For all the objects that
are file-backed, it is likely very important to give unique file-backed
directories. This should be passed here, which gets passed on to the many methods
of Copy
in reproducible
.
uses capital C, to limit confusion with e.g., data.table::copy()
.