nimble-R-functions: NIMBLE language functions for R-like vector construction

nimble-R-functionsR Documentation

NIMBLE language functions for R-like vector construction

Description

The functions c, rep, seq, which, diag, length, seq_along, is.na, is.nan, any, and all can be used in nimbleFunctions and compiled using compileNimble.

Usage

nimC(...)

nimRep(x, ...)

nimSeq(from, to, by, length.out)

Arguments

...

values to be concatenated.

x

vector of values to be replicated (rep), or logical array or vector (which), or object whose length is wanted (length), or input value (diag), or vector of values to be tested/checked (is.na, is.nan, any, all).

from

starting value of sequence.

to

end value of sequence.

by

increment of the sequence.

length.out

desired length of the sequence.

Details

For c, rep, seq, these functions are NIMBLE's version of similar R functions, e.g., nimRep for rep. In a nimbleFunction, either the R name (e.g., rep) or the NIMBLE name (e.g., nimRep) can be used. If the R name is used, it will be converted to the NIMBLE name. For which, length, diag, seq_along, is.na, is.nan, any, all simply use the standard name without "nim". These functions largely mimic (see exceptions below) the behavior of their R counterparts, but they can be compiled in a nimbleFunction using compileNimble.

nimC is NIMBLE's version of c and behaves identically.

nimRep is NIMBLE's version of rep. It should behave identically to rep. There are no NIMBLE versions of rep.int or rep_len.

nimSeq is NIMBLE's version of seq. It behaves like seq with support for from, to, by and length.out arguments. The along.with argument is not supported. There are no NIMBLE versions of seq.int, seq_along or seq_len, with the exception that seq_along can take a nimbleFunctionList as an argument to provide the index range of a for-loop (User Manual Ch. 13).

which behaves like the R version but without support for arr.ind or useNames arguments.

diag behaves like the R version but without support for the nrow and ncol arguments.

length behaves like the R version.

seq_along behaves like the R version.

is.na behaves like the R version but does not correctly handle NA values from R that are type 'logical', so convert these using as.numeric() before passing from R to NIMBLE.

is.nan behaves like the R version, but treats NA of type 'double' as being NaN and NA of type 'logical' as not being NaN.

any behaves like the R version but takes only one argument and treats NAs as FALSE.

all behaves like the R version but takes only one argument and treats NAs as FALSE.


nimble documentation built on March 18, 2022, 8:03 p.m.