Skip to contents

Create a matrix mapper, for a given number of columns

Usage

bru_mapper_matrix(labels)

# S3 method for class 'bru_mapper_matrix'
ibm_n(mapper, ...)

# S3 method for class 'bru_mapper_matrix'
ibm_values(mapper, ...)

# S3 method for class 'bru_mapper_matrix'
ibm_jacobian(mapper, input, state = NULL, inla_f = FALSE, ...)

Arguments

labels

Column labels for matrix mappings; Can be factor, character, or a single integer specifying the number of columns for integer column indexing.

mapper

A mapper S3 object, inheriting from bru_mapper.

...

Arguments passed on to other methods

input

Data input for the mapper.

state

A vector of latent state values for the mapping, of length ibm_n(mapper, inla_f = FALSE)

inla_f

logical; when TRUE for ibm_n() and ibm_values(), the result must be compatible with the INLA::f(...) and corresponding INLA::inla.stack(...) constructions. For ibm_{eval,jacobian,linear}, the input interpretation may be different. Implementations do not normally need to do anything different, except for mappers of the type needed for hidden multicomponent models such as "bym2", which can be handled by bru_mapper_collect.

Examples

m <- bru_mapper_matrix(labels = c("a", "b"))
ibm_values(m)
#> [1] a b
#> Levels: a b
ibm_eval2(m, input = matrix(1:6, 3, 2), state = 2:3)
#> $offset
#> [1] 14 19 24
#> 
#> $jacobian
#> 3 x 2 Matrix of class "dgeMatrix"
#>      a b
#> [1,] 1 4
#> [2,] 2 5
#> [3,] 3 6
#> 

m <- bru_mapper_matrix(labels = 2L)
ibm_values(m)
#> [1] 1 2
ibm_eval2(m, input = matrix(1:6, 3, 2), state = 2:3)
#> $offset
#> [1] 14 19 24
#> 
#> $jacobian
#> 3 x 2 Matrix of class "dgeMatrix"
#>      1 2
#> [1,] 1 4
#> [2,] 2 5
#> [3,] 3 6
#>