Copying function for NIMBLE
Copies values from a NIMBLE model or modelValues object to another NIMBLE model or modelValues. Work in R and NIMBLE. The NIMBLE keyword copy
is identical to nimCopy
nimCopy(from, to, nodes = NULL, nodesTo = NULL, row = NA, rowTo = NA, logProb = FALSE, logProbOnly = FALSE)
from |
Either a NIMBLE model or modelValues object |
to |
Either a NIMBLE model or modelValues object |
nodes |
Vector of one or more node names of object |
nodesTo |
Vector of one or more node names of object |
row |
If |
rowTo |
If |
logProb |
A logical value indicating whether the log probabilities of the given nodes should also be copied (i.e. if |
logProbOnly |
A logical value indicating whether only the log probabilities of the given nodes should be copied (i.e. if |
This function copies values from one or more nodes (possibly including log probabilities for nodes) between models and modelValues objects. For modelValues objects, the row must be specified. This function allows one to conveniently copy multiple nodes, avoiding having to write a loop.
Clifford Anderson-Bergman
# Building model and modelValues object simpleModelCode <- nimbleCode({ for(i in 1:100) x[i] ~ dnorm(0,1) }) rModel <- nimbleModel(simpleModelCode) rModelValues <- modelValues(rModel) #Setting model nodes rModel$x <- rnorm(100) #Using nimCopy in R. nimCopy(from = rModel, to = rModelValues, nodes = 'x', rowTo = 1) #Use of nimCopy in a simple nimbleFunction cCopyGen <- nimbleFunction( setup = function(model, modelValues, nodeNames){}, run = function(){ nimCopy(from = model, to = modelValues, nodes = nodeNames, rowTo = 1) } ) rCopy <- cCopyGen(rModel, rModelValues, 'x') ## Not run: cModel <- compileNimble(rModel) cCopy <- compileNimble(rCopy, project = rModel) cModel[['x']] <- rnorm(100) cCopy$run() ## execute the copy with the compiled function ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.