问题标签 [tmb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
83 浏览

r - MakeADFun 中的错误(... 'data' 必须是调用 `TMB::sdreport()` 后的列表?

调用该sdreport函数后,出现意外错误:Error in MakeADFun(obj$env$data, obj$env$parameters, type = "ADFun", ADreport = TRUE, : 'data' must be a list这很奇怪,因为我将数据作为列表传递:

simplex_reg_full.cpp:

与数据集链接

代码

  1. 如何修复中的错误sdreport
  2. 额外的问题:PARAMETER_VECTOR(Beta)更容易编码,但是,MakeADFun每个协变量的重复 Beta 的输出。有没有办法通知程序使用变量的名称来代替?
0 投票
1 回答
163 浏览

c++ - 如何进行矩阵*向量乘法并将此结果传递给 R 中 TMB 中的向量?

我需要做一个矩阵*向量乘法,它只生成一个数字,并将它传递给一个向量(但它在下面的注释代码中不起作用)。到目前为止,我所拥有的是:

cpp代码

R代码

有什么帮助吗?

我已经将此问题发布到TMB 用户组。如果解决方案首先出现在那里,我会在这里发布。

0 投票
0 回答
108 浏览

c++ - 在新的 R 包中连接 C、C++ 代码

0 投票
1 回答
79 浏览

rcpp - 错误:“glmmTMB”的包或命名空间加载失败

我正在尝试使用包 glmmTMB。当我调用 library(glmmTMB) 时,这是错误消息:

">library(glmmTMB) 错误:inDL(x, as.logical(local), as.logical(now), ...) 中的 'glmmTMB' 的包或命名空间加载失败:包 ' 未提供函数 'Rcpp_precious_remove' Rcpp' 另外:警告消息:1:包'glmmTMB'是在 R 版本 4.0.5 下构建的 2:在 checkMatrixPackageVersion() 中:检测到包版本不一致。TMB 是使用 Matrix 版本 1.3.4 构建的当前 Matrix 版本是 1.2.18请使用 install.packages('TMB', type = 'source') 从源代码重新安装“TMB”,或向 CRAN 索要与 CRAN 的“Matrix”包匹配的“TMB”二进制版本

我试过使用 install.packages('TMB', type = 'source') 没有运气。有任何想法吗?

0 投票
0 回答
10 浏览

c++ - 在 Shinyapp io 上部署的应用程序中的模板模型生成器和 DLL

我对 R 闪亮的应用程序开发相当陌生。我当前的应用程序允许用户通过最大似然加载数据并拟合鱼标签返回模型。我使用包 TMB 来

  1. 编译 C++ .cpp 文件(在 TMB 中编译函数)
  2. 使用 dyn.load(dynlib("DLLName")) 加载 .DLL
  3. 使用 TMB MakeADFun 函数创建必要的梯度信息(fitmodel<-MakeADFun(datar,parameters,DLL="IRCR",silent=T))
  4. 使用 nlminb 拟合模型 (fit<-try(nlminb(fitmodel$par,fitmodel$fn,fitmodel$gr,control=list(eval.max=100000,iter.max=mit), lower=c(rep(log( flow1),length(Fyr)),rep(log(mlow1),length(Myr)),rep(log(falow1),length(FAyr))),upper=c(rep(log(fupper1),length(Fyr) )),rep(log(mupper1),length(Myr)),rep(log(faupper1),length(FAyr)))),silent=T))

在本地一切正常。

当我将应用程序部署到 Shinyappio 时,我想我可以将 .DLL 包含在“/www”文件夹中,并在需要时使用 dyn.load 访问它,这样就不必每次都编译 .cpp。但是,当我运行模型时,我的应用程序不断崩溃。我检查了日志,错误提示找不到“.so”文件。我相信“.so”文件是 Linux 操作系统的 DLL 等效文件。有谁知道是否有办法在部署之前或期间使用 TMB 函数创建“.so”,这样 .cpp 只需编译一次?

或者,如果我很遥远,有人可以启发我吗?任何帮助将不胜感激。

提前致谢。