【问题标题】:Are there known compatibility issues with R package mgcv? Are there general rules for compatibility?R 包 mgcv 是否存在已知的兼容性问题?是否有通用的兼容性规则?
【发布时间】:2013-02-15 17:38:03
【问题描述】:

我使用 R 版本 2.15.1 (2012-06-22) 和 mgcv 版本 1.7-22

我在 R 中加载了以下一组包:

library(sqldf) library(timeDate) library(forecast) library(xts) library(tseries) library(MASS) library(mgcv)

碰巧我不能运行一个简单的模型(我省略了代码)。甚至从帮助页面中获取的示例代码:

dat = gamSim(1,n=400,dist="normal",scale=2) b = gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)

给出一个错误:

Error in qr.qty(qrc, sm$S[[l]]) : NA/NaN/Inf in foreign function call (arg 5) In addition: Warning message: In smoothCon(split$smooth.spec[[i]], data, knots, absorb.cons, scale.penalty = scale.penalty, : number of items to replace is not a multiple of replacement length

请注意,如果我只是加载包 mgcv 然后立即使用示例代码,一切正常。如果我只是加载所有包并运行示例代码,它也可以工作。如果我这样做是行不通的

  1. 加载所有包
  2. 做一些文件读取、sqldf 语句、ts 操作和一些来自包预测的模型。
  3. 如果我再应用 GAM,它就不再起作用了。

显然一般环境中的变量定义搞乱了包的功能。

是否有任何已知问题?如果我加载各种包,是否有必须遵守的一般规则?我可以编写“扰乱”包 mgcv 的代码吗?

【问题讨论】:

  • 您的步骤(2)有点模糊。您可能需要将范围缩小到触发问题的更具体的内容。
  • 当我无意中使用 mgcv 加载另一个 gam 包时,我曾经收到类似的错误消息。确保它们没有同时加载
  • @Meso:你指的还有哪个 GAM 包?
  • @joran 我使用了很多命令。现在我试着不加载 tseries 和 MASS 并且到目前为止它可以工作......它只是让我害怕如果我加载错误的包或调用错误的函数它可能会崩溃。

标签: r mgcv


【解决方案1】:

@Richard 有 2 个与 GAM 相关的软件包:gam 和 mgcv。同时加载两个库通常会导致冲突。

【讨论】:

  • 作为起点,在此处查看“反向依赖”:cran.r-project.org/web/packages/gam/index.html 以查看将自动加载gam 的包:ares、bandit、CausalGAM、ddepn、GAMens、LSC、MapGAM、 mtsdi、ProDenICA、pscl、RPPanalyzer、xpose4、xpose4specific
  • @Ben Bolker 我承认我错了。从未听说过列表中的任何内容。我从事环境流行病学工作,GAM 和 mgcv 是最常用的。谢谢你
  • 这并不意味着你错了——链中可能有多个链接,即这些包中的一个可能由 OP 直接加载的其他包之一加载.. .
  • 嗨,我已经排除了我肯定不需要的软件包。该列表简化为 library(mgcv) library(sqldf) library(timeDate) library(forecast) library(xts) 我将通过这些。很遗憾,因为我使用 R 已经有一段时间了,而且我从来没有遇到过兼容性问题。
【解决方案2】:

将 mgcv 作为第一个包加载解决了我的问题……奇怪但真实。

【讨论】:

  • 这是一个通用规则吗,必须首先加载其函数在查找函数名时排名较高的包?
猜你喜欢
  • 2012-04-10
  • 2012-04-07
  • 2015-05-15
  • 1970-01-01
  • 2015-05-05
  • 2022-11-25
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多