【问题标题】:Cannot load forecast or RcppArmadillo packages from Script无法从脚本加载预测或 RcppArmadillo 包
【发布时间】:2012-03-28 04:52:37
【问题描述】:

当我运行命令库(预测)和库(RcppArmadillo)时,没有错误。但是,当我尝试从脚本运行这些命令时,我的脚本无法执行。

这个案例有一些细微差别。首先,我只在 R 版本 > 2.14 的机器上遇到此错误。我在 R 2.13.0 上成功运行了这个脚本,在 R 版本 2.14.1 和 2.14.2 的机器上遇到了错误。

此外,命令 find.package("forecast") 和类似的 find.package("RcppArmadillo") 不会从脚本内部返回错误,这意味着脚本可以找到包但无法加载它们。

我已成功运行脚本替换库(预测)与以下 6 个其他包:Rcpp、tseries、fracdiff、qcc、quadprog、zoo 和并行。

有谁知道为什么我无法从脚本中加载这两个包,即使我可以在 R 控制台中加载它们,以及为什么这个错误只发生在 R 版本 > 2.14 上?我最初的想法是,这可能与这些包依赖于 R>=2.14 的事实有关。

非常感谢。

【问题讨论】:

  • 脚本是否提供任何错误消息?您将其描述为“无法执行”,但具体的行为/消息是什么?
  • Brian,我们正在使用嵌入式 R 通过 C++ 运行脚本,特别是 R_tryEval 函数。如果遇到错误,此函数返回 1,如果没有遇到错误,则返回 0。然后,如果 R_tryEval 返回 0,我的脚本将返回输出;如果 R_tryEval 返回 1,则返回执行错误。因此,我无法确定确切的错误行为或检索错误消息。我所知道的是,当我添加行库(预测)或库(RcppArmadillo)时,我的脚本会返回执行错误。当我的脚本不包含该函数调用时,我的脚本运行成功。
  • 好的,感谢您的跟进。我从来没有使用过嵌入式 R,所以我已经超出了我的深度,所以希望其他人可以帮助你。
  • @StewartDoberman C++ 链接的 R 版本是什么?我假设您正在尝试运行一个 R 代码。可以发个样品吗?
  • Karlson,我的 C++ 与 R 2.14.2 相关联。以下是一些说明问题的陈述。 ts_output 是我的输出向量。如果我运行 ts_output

标签: r package


【解决方案1】:

我们发现问题在于 RcppArmadillo 依赖于 Rlapack.dll 文件,在加载库时脚本无法找到该文件。解决方案是将 Rlapack.dll 文件复制到 library/RcppArmadillo/libs/i386 子文件夹。进行此更改后,我们能够成功执行我们的脚本。

关于这个问题我们有两个问题。

1) 为什么在通过 R 控制台执行时,我们能够找到 Rlapack.dll 文件,而在脚本执行期间,我们无法找到依赖文件?

2) 为什么这个问题只出现在 R > 2.14 中?这是更新 RcppArmadillo 或预测包的结果吗?

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 2022-01-07
    • 2013-06-21
    • 2020-07-20
    • 2018-07-11
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多