View source: R/nimbleFunction_Rexecution.R
nfVar | R Documentation |
Access or set a member variable of a specialized nimbleFunction, i.e. a variable passed to or created during the setup
function that is used in run code or preserved by setupOutputs
. Works in R for any variable and in NIMBLE for numeric variables.
nfVar(nf, varName)
nfVar(nf, varName) <- value
nf |
a specialized nimbleFunction, i.e. a function returned by executing a function returned from |
varName |
a character string naming a variable in the |
value |
value to set the variable to. |
Internal way to access or set a member variable of a nimbleFunction created during setup
. Normally in NIMBLE code you would use nf$var
instead of nfVar(nf, var)
.
When nimbleFunction
is called and a setup
function is provided, then nimbleFunction
returns a function. That function is a generator that should be called with arguments to the setup
function and returns another function with run
and possibly other member functions. The member functions can use objects created or passed to setup
. During internal processing, the NIMBLE compiler turns some cases of nf$var
into nfVar(nf, var)
. These provide direct access to setup variables (member data). nfVar
is not typically called by a NIMBLE user or programmer.
For internal access to methods of nf
, see nfMethod
.
For more information, see ?nimbleFunction
and the NIMBLE User Manual.
whatever varName is in the nimbleFunction nf.
NIMBLE development team
nfGen1 <- nimbleFunction(
setup = function(A) {
B <- matrix(rnorm(4), nrow = 2)
setupOutputs(B) ## preserves B even though it is not used in run-code
},
run = function() {
print('This is A', A, '\n')
})
nfGen2 <- nimbleFunction(
setup = function() {
nf1 <- nfGen1(1000)
},
run = function() {
print('accessing A:', nfVar(nf1, 'A'))
nfVar(nf1, 'B')[2,2] <<- -1000
print('accessing B:', nfVar(nf1, 'B'))
})
nf2 <- nfGen2()
nf2$run()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.