Description
Native 'R' interface to 'TMB' (Template Model Builder) so models can be written entirely in 'R' rather than 'C++'. Automatic differentiation, to any order, is available for a rich subset of 'R' features, including linear algebra for dense and sparse matrices, complex arithmetic, Fast Fourier Transform, probability distributions and special functions. 'RTMB' provides easy access to model fitting and validation following the principles of Kristensen, K., Nielsen, A., Berg, C. W., Skaug, H., & Bell, B. M. (2016) <DOI:10.18637/jss.v070.i05> and Thygesen, U.H., Albertsen, C.M., Berg, C.W. et al. (2017) <DOI:10.1007/s10651-017-0372-4>.
Downloads
1.1K
Last 30 days
3539th
1.1K
Last 90 days
1.1K
Last year
CRAN Check Status
Show all 14 flavors
| Flavor | Status |
|---|---|
| r-devel-linux-x86_64-debian-clang | ERROR |
| r-devel-linux-x86_64-debian-gcc | ERROR |
| r-devel-linux-x86_64-fedora-clang | ERROR |
| r-devel-linux-x86_64-fedora-gcc | ERROR |
| r-devel-macos-arm64 | ERROR |
| r-devel-windows-x86_64 | ERROR |
| r-oldrel-macos-arm64 | NOTE |
| r-oldrel-macos-x86_64 | NOTE |
| r-oldrel-windows-x86_64 | NOTE |
| r-patched-linux-x86_64 | OK |
| r-release-linux-x86_64 | OK |
| r-release-macos-arm64 | OK |
| r-release-macos-x86_64 | OK |
| r-release-windows-x86_64 | OK |
Check details (19 non-OK)
examples
Running examples in ‘RTMB-Ex.R’ failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: OSA-residuals
> ### Title: Recursive quantile residuals
> ### Aliases: OSA-residuals oneStepPredict [.osa length.osa dim.osa
> ### is.array.osa is.matrix.osa
>
> ### ** Examples
>
> set.seed(1)
> rw <- cumsum(.5*rnorm(20))
> obs <- rpois(20, lambda=exp(rw))
> func <- function(p) {
+ obs <- OBS(obs) ## Mark 'obs' for OSA calculation on request
+ ans <- 0
+ jump <- c(p$rw[1], diff(p$rw))
+ ans <- ans - sum(dnorm(jump, sd=p$sd, log=TRUE))
+ ans <- ans - sum(dpois(obs, lambda=exp(p$rw), log=TRUE))
+ ans
+ }
> obj <- MakeADFun(func,
+ parameters=list(rw=rep(0,20), sd=1),
+ random="rw")
Error in advector(e2) :
Invalid argument to 'advector' (lost class attribute?)
Calls: MakeADFun ... diff.advector -> diff_patch -> Ops.advector -> Arith2 -> advector
Execution halted
re-building of vignette outputs
Error(s) in re-building vignettes:
...
--- re-building ‘RTMB-advanced.rmd’ using rmarkdown
Quitting from RTMB-advanced.rmd:236-239 [unnamed-chunk-21]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `advector()`:
! Invalid argument to 'advector' (lost class attribute?)
---
Backtrace:
▆
1. └─RTMB::MakeTape(diff, numeric(5))
2. └─RTMB:::.MakeTape(f, x)
3. ├─base (local) f(x)
4. └─RTMB::diff.advector(x)
5. └─RTMB:::diff_patch(x, lag = lag, differences = differences, ...)
6. └─RTMB::Ops.advector(...)
7. ├─RTMB:::Arith2(advector(e1), advector(e2), .Generic)
8. └─RTMB::advector(e2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'RTMB-advanced.rmd' failed with diagnostics:
Invalid argument to 'advector' (lost class attribute?)
--- failed re-building ‘RTMB-advanced.rmd’
--- re-building ‘RTMB-introduction.rmd’ using rmarkdown
[WARNING] Deprecated: --highlight-style. Use --syntax-highlighting instead.
--- finished re-building ‘RTMB-introduction.rmd’
SUMMARY: processing the following file failed:
‘RTMB-advanced.rmd’
Error: Vignette re-building failed.
Execution halted
examples
Running examples in ‘RTMB-Ex.R’ failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: OSA-residuals
> ### Title: Recursive quantile residuals
> ### Aliases: OSA-residuals oneStepPredict [.osa length.osa dim.osa
> ### is.array.osa is.matrix.osa
>
> ### ** Examples
>
> set.seed(1)
> rw <- cumsum(.5*rnorm(20))
> obs <- rpois(20, lambda=exp(rw))
> func <- function(p) {
+ obs <- OBS(obs) ## Mark 'obs' for OSA calculation on request
+ ans <- 0
+ jump <- c(p$rw[1], diff(p$rw))
+ ans <- ans - sum(dnorm(jump, sd=p$sd, log=TRUE))
+ ans <- ans - sum(dpois(obs, lambda=exp(p$rw), log=TRUE))
+ ans
+ }
> obj <- MakeADFun(func,
+ parameters=list(rw=rep(0,20), sd=1),
+ random="rw")
Error in advector(e2) :
Invalid argument to 'advector' (lost class attribute?)
Calls: MakeADFun ... diff.advector -> diff_patch -> Ops.advector -> Arith2 -> advector
Execution halted
re-building of vignette outputs
Error(s) in re-building vignettes:
...
--- re-building ‘RTMB-advanced.rmd’ using rmarkdown
Quitting from RTMB-advanced.rmd:236-239 [unnamed-chunk-21]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `advector()`:
! Invalid argument to 'advector' (lost class attribute?)
---
Backtrace:
▆
1. └─RTMB::MakeTape(diff, numeric(5))
2. └─RTMB:::.MakeTape(f, x)
3. ├─base (local) f(x)
4. └─RTMB::diff.advector(x)
5. └─RTMB:::diff_patch(x, lag = lag, differences = differences, ...)
6. └─RTMB::Ops.advector(...)
7. ├─RTMB:::Arith2(advector(e1), advector(e2), .Generic)
8. └─RTMB::advector(e2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'RTMB-advanced.rmd' failed with diagnostics:
Invalid argument to 'advector' (lost class attribute?)
--- failed re-building ‘RTMB-advanced.rmd’
--- re-building ‘RTMB-introduction.rmd’ using rmarkdown
[WARNING] Deprecated: --highlight-style. Use --syntax-highlighting instead.
--- finished re-building ‘RTMB-introduction.rmd’
SUMMARY: processing the following file failed:
‘RTMB-advanced.rmd’
Error: Vignette re-building failed.
Execution halted
examples
Running examples in ‘RTMB-Ex.R’ failed
The error most likely occurred in:
> ### Name: OSA-residuals
> ### Title: Recursive quantile residuals
> ### Aliases: OSA-residuals oneStepPredict [.osa length.osa dim.osa
> ### is.array.osa is.matrix.osa
>
> ### ** Examples
>
> set.seed(1)
> rw <- cumsum(.5*rnorm(20))
> obs <- rpois(20, lambda=exp(rw))
> func <- function(p) {
+ obs <- OBS(obs) ## Mark 'obs' for OSA calculation on request
+ ans <- 0
+ jump <- c(p$rw[1], diff(p$rw))
+ ans <- ans - sum(dnorm(jump, sd=p$sd, log=TRUE))
+ ans <- ans - sum(dpois(obs, lambda=exp(p$rw), log=TRUE))
+ ans
+ }
> obj <- MakeADFun(func,
+ parameters=list(rw=rep(0,20), sd=1),
+ random="rw")
Error in advector(e2) :
Invalid argument to 'advector' (lost class attribute?)
Calls: MakeADFun ... diff.advector -> diff_patch -> Ops.advector -> Arith2 -> advector
Execution halted
re-building of vignette outputs
Error(s) in re-building vignettes:
--- re-building ‘RTMB-advanced.rmd’ using rmarkdown
Quitting from RTMB-advanced.rmd:236-239 [unnamed-chunk-21]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `advector()`:
! Invalid argument to 'advector' (lost class attribute?)
---
Backtrace:
▆
1. └─RTMB::MakeTape(diff, numeric(5))
2. └─RTMB:::.MakeTape(f, x)
3. ├─base (local) f(x)
4. └─RTMB::diff.advector(x)
5. └─RTMB:::diff_patch(x, lag = lag, differences = differences, ...)
6. └─RTMB::Ops.advector(...)
7. ├─RTMB:::Arith2(advector(e1), advector(e2), .Generic)
8. └─RTMB::advector(e2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'RTMB-advanced.rmd' failed with diagnostics:
Invalid argument to 'advector' (lost class attribute?)
--- failed re-building ‘RTMB-advanced.rmd’
--- re-building ‘RTMB-introduction.rmd’ using rmarkdown
[WARNING] Deprecated: --highlight-style. Use --syntax-highlighting instead.
--- finished re-building ‘RTMB-introduction.rmd’
SUMMARY: processing the following file failed:
‘RTMB-advanced.rmd’
Error: Vignette re-building failed.
Execution halted
examples
Running examples in ‘RTMB-Ex.R’ failed
The error most likely occurred in:
> ### Name: OSA-residuals
> ### Title: Recursive quantile residuals
> ### Aliases: OSA-residuals oneStepPredict [.osa length.osa dim.osa
> ### is.array.osa is.matrix.osa
>
> ### ** Examples
>
> set.seed(1)
> rw <- cumsum(.5*rnorm(20))
> obs <- rpois(20, lambda=exp(rw))
> func <- function(p) {
+ obs <- OBS(obs) ## Mark 'obs' for OSA calculation on request
+ ans <- 0
+ jump <- c(p$rw[1], diff(p$rw))
+ ans <- ans - sum(dnorm(jump, sd=p$sd, log=TRUE))
+ ans <- ans - sum(dpois(obs, lambda=exp(p$rw), log=TRUE))
+ ans
+ }
> obj <- MakeADFun(func,
+ parameters=list(rw=rep(0,20), sd=1),
+ random="rw")
Error in advector(e2) :
Invalid argument to 'advector' (lost class attribute?)
Calls: MakeADFun ... diff.advector -> diff_patch -> Ops.advector -> Arith2 -> advector
Execution halted
re-building of vignette outputs
Error(s) in re-building vignettes:
--- re-building ‘RTMB-advanced.rmd’ using rmarkdown
Quitting from RTMB-advanced.rmd:236-239 [unnamed-chunk-21]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `advector()`:
! Invalid argument to 'advector' (lost class attribute?)
---
Backtrace:
▆
1. └─RTMB::MakeTape(diff, numeric(5))
2. └─RTMB:::.MakeTape(f, x)
3. ├─base (local) f(x)
4. └─RTMB::diff.advector(x)
5. └─RTMB:::diff_patch(x, lag = lag, differences = differences, ...)
6. └─RTMB::Ops.advector(...)
7. ├─RTMB:::Arith2(advector(e1), advector(e2), .Generic)
8. └─RTMB::advector(e2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'RTMB-advanced.rmd' failed with diagnostics:
Invalid argument to 'advector' (lost class attribute?)
--- failed re-building ‘RTMB-advanced.rmd’
--- re-building ‘RTMB-introduction.rmd’ using rmarkdown
[WARNING] Deprecated: --highlight-style. Use --syntax-highlighting instead.
--- finished re-building ‘RTMB-introduction.rmd’
SUMMARY: processing the following file failed:
‘RTMB-advanced.rmd’
Error: Vignette re-building failed.
Execution halted
tests
Running ‘tinytest.R’ [0s/1s]
Running the tests in ‘tests/tinytest.R’ failed.
Complete output:
> if (requireNamespace("tinytest", quietly=TRUE)) {
+ tinytest::test_package("RTMB", ncpu=getOption("Ncpus", 1))
+ }
starting worker pid=56958 on localhost:11773 at 15:02:07.770
test-advector.R............... 9 tests [0;32mOK[0m [0;36m23ms[0m
test-bessel.R................. 6 tests [0;32mOK[0m [0;36m7ms[0m
test-distributions.R.......... 18 tests [0;32mOK[0m [0;34m0.5s[0m
*** caught segfault ***
address 0x1, cause 'invalid permissions'
Traceback:
1: eigen(x, symmetric = TRUE)
2: eigen(x, symmetric = TRUE)
3: matlog(x + (1 - diag(5)) * AD(0+1i) + diag(5) * 2)
4: f(x)
5: mode(current)
6: attr.all.equal(target, current, tolerance = tolerance, scale = scale, ...)
7: all.equal.numeric(target, current, tolerance = tolerance, ...)
8: all.equal(target, current, tolerance = tolerance, ...)
9: fun(...)
10: expect_equal(f(x), F(x), info = "symmetric complex eigen")
11: eval(expr, envir = e)
12: eval(expr, envir = e)
13: FUN(X[[i]], ...)
14: (function (X, FUN, ...) { FUN <- match.fun(FUN) if (!is.vector(X) || is.object(X)) X <- as.list(X) .Internal(lapply(X, FUN))})(base::quote(c("/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-advector.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-bessel.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-distributions.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-factorize.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-model-spatial.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-model-spde.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-sparse.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-spline.R", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/RTMB.Rcheck/RTMB/tinytest/test-tape.R")), FUN = base::quote(function (file, at_home = TRUE, verbose = getOption("tt.verbose", 2), color = getOption("tt.pr.color", TRUE), remove_side_effects = TRUE, side_effects = FALSE, set_env = list(), encoding = "unknown", ...) { if (!file_test("-f", file)) { stop(sprintf("'%s' does not exist or is a directory", file), call. = FALSE) } t0 <- Sys.time() if (length(set_env) > 0) { old_env_var <- sapply(names(set_env), Sys.getenv, unset = NA_character_, USE.NAMES = TRUE) do.call(Sys.setenv, set_env) } oldwd <- getwd() set_call_wd(oldwd) grDevices::pdf(file = nullfile()) envvar <- new.env() oldop <- new.env() locale <- Sys.getlocale() on.exit({ setwd(oldwd) set_call_wd("") Sys.unsetenv("TT_AT_HOME") if (remove_side_effects) { unset_envvar(envvar) reset_options(oldop) reset_locale(locale) } grDevices::dev.off() if (exists("old_env_var")) { unset <- is.na(old_env_var) Sys.unsetenv(names(old_env_var)[unset]) if (any(!unset)) do.call(Sys.setenv, as.list(old_env_var)[!unset]) } }) setwd(dirname(file)) file <- basename(file) if (at_home) Sys.setenv(TT_AT_HOME = TRUE) o <- output() e <- new.env(parent = globalenv()) add_locally_masked_functions(envir = e, output = o) e$Sys.setenv <- capture_envvar(Sys.setenv, envvar) e$options <- capture_options(options, oldop) options(useFancyQuotes = FALSE) Sys.setenv(R_TESTS = "") sidefx <- new.env() e$report_side_effects <- capture_se(report_side_effects, sidefx) do.call(e$report_side_effects, as.list(side_effects)) local_report_envvar <- capture(report_envvar, o) local_report_cwd <- capture(report_cwd, o) local_report_files <- capture(report_files, o) local_report_locale <- capture(report_locale, o) check_double_colon(filename = file) parsed <- parse(file = file, keep.source = TRUE, encoding = encoding) src <- attr(parsed, "srcref") o$file <- file prfile <- basename(file) if (nchar(prfile) > 30) { prfile <- paste0("..", substr(prfile, nchar(prfile) - 27, nchar(prfile))) } prfile <- gsub(" ", ".", sprintf("%-30s", basename(file))) for (i in seq_along(parsed)) { expr <- parsed[[i]] o$fst <- src[[i]][1] o$lst <- src[[i]][3] o$call <- expr if (!o$exit) eval(expr, envir = e) else break local_report_envvar(sidefx) local_report_cwd(sidefx) local_report_files(sidefx) local_report_locale(sidefx) if (verbose == 2) print_status(prfile, o, color, print = TRUE) } td <- abs(Sys.time() - t0) tx <- humanize(td, color = color) if (verbose == 1) { str <- print_status(prfile, o, color, print = FALSE) if (o$exit) catf("%s %s %s\n", str, tx, o$exit_msg()) else catf("%s %s\n", str, tx) } if (verbose >= 2) { str <- if (o$exit) catf("%s %s\n", tx, o$exit_msg()) else catf("%s\n", tx) } test_output <- o$gimme() structure(test_output, class = "tinytests", duration = td)}), at_home = base::quote(FALSE), verbose = base::quote(1), color = base::quote(TRUE), remove_side_effects = base::quote(TRUE))
15: do.call(msg$data$fun, msg$data$args, quote = TRUE)
16: doTryCatch(return(expr), name, parentenv, handler)
17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
18: tryCatchList(expr, classes, parentenv, handlers)
19: tryCatch(do.call(msg$data$fun, msg$data$args, quote = TRUE), error = handler)
20: doTryCatch(return(expr), name, parentenv, handler)
21: tryCatchOne(expr, names, parentenv, handlers[[1L]])
22: tryCatchList(expr, classes, parentenv, handlers)
23: tryCatch({ msg <- recvData(master) if (msg$type == "DONE") { closeNode(master) FALSE } else if (msg$type == "EXEC") { success <- TRUE handler <- function(e) { success <<- FALSE structure(conditionMessage(e), class = c("snow-try-error", "try-error")) } t1 <- proc.time() value <- tryCatch(do.call(msg$data$fun, msg$data$args, quote = TRUE), error = handler) t2 <- proc.time() value <- list(type = "VALUE", value = value, success = success, time = t2 - t1, tag = msg$data$tag) msg <- NULL sendData(master, value) value <- NULL TRUE } else { TRUE }}, interrupt = function(e) TRUE)
24: workCommand(master)
25: workLoop(makeSOCKmaster(master, port, setup_timeout, timeout, useXDR, setup_strategy))
26: tryCatch(parallel:::.workRSOCK, error = function(e) parallel:::.slaveRSOCK)()
An irrecoverable exception occurred. R is aborting now ...
Error in unserialize(node$con) : error reading from connection
Calls: <Anonymous> ... FUN -> recvData -> recvData.SOCKnode -> unserialize
Execution halted
examples
Running examples in 'RTMB-Ex.R' failed
The error most likely occurred in:
> ### Name: OSA-residuals
> ### Title: Recursive quantile residuals
> ### Aliases: OSA-residuals oneStepPredict [.osa length.osa dim.osa
> ### is.array.osa is.matrix.osa
>
> ### ** Examples
>
> set.seed(1)
> rw <- cumsum(.5*rnorm(20))
> obs <- rpois(20, lambda=exp(rw))
> func <- function(p) {
+ obs <- OBS(obs) ## Mark 'obs' for OSA calculation on request
+ ans <- 0
+ jump <- c(p$rw[1], diff(p$rw))
+ ans <- ans - sum(dnorm(jump, sd=p$sd, log=TRUE))
+ ans <- ans - sum(dpois(obs, lambda=exp(p$rw), log=TRUE))
+ ans
+ }
> obj <- MakeADFun(func,
+ parameters=list(rw=rep(0,20), sd=1),
+ random="rw")
Error in advector(e2) :
Invalid argument to 'advector' (lost class attribute?)
Calls: MakeADFun ... diff.advector -> diff_patch -> Ops.advector -> Arith2 -> advector
Execution halted
re-building of vignette outputs
Error(s) in re-building vignettes:
--- re-building 'RTMB-advanced.rmd' using rmarkdown
Quitting from RTMB-advanced.rmd:236-239 [unnamed-chunk-21]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `advector()`:
! Invalid argument to 'advector' (lost class attribute?)
---
Backtrace:
▆
1. └─RTMB::MakeTape(diff, numeric(5))
2. └─RTMB:::.MakeTape(f, x)
3. ├─base (local) f(x)
4. └─RTMB::diff.advector(x)
5. └─RTMB:::diff_patch(x, lag = lag, differences = differences, ...)
6. └─RTMB::Ops.advector(...)
7. ├─RTMB:::Arith2(advector(e1), advector(e2), .Generic)
8. └─RTMB::advector(e2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'RTMB-advanced.rmd' failed with diagnostics:
Invalid argument to 'advector' (lost class attribute?)
--- failed re-building 'RTMB-advanced.rmd'
--- re-building 'RTMB-introduction.rmd' using rmarkdown
--- finished re-building 'RTMB-introduction.rmd'
SUMMARY: processing the following file failed:
'RTMB-advanced.rmd'
Error: Vignette re-building failed.
Execution halted
installed package size
installed size is 128.2Mb
sub-directories of 1Mb or more:
R 2.0Mb
libs 125.3Mb
installed package size
installed size is 129.0Mb
sub-directories of 1Mb or more:
R 2.0Mb
libs 126.1Mb
installed package size
installed size is 10.3Mb
sub-directories of 1Mb or more:
R 1.1Mb
libs 8.3Mb
*
*
*
*
*