【问题标题】:How to prevent R from trying to load mgcv如何防止 R 尝试加载 mgcv
【发布时间】:2015-10-15 13:05:11
【问题描述】:

我需要在 R 中运行 2 个不同的脚本而不重新启动会话。第一个我使用包mgcv,第二个我需要gam。我编写了一个脚本,它分离和删除包mgcv 并安装和加载gam。 但是在我想运行 gam() 函数之后,我收到一个错误,告诉我找不到 mgcv。我将其解释为 R 正在寻找用于安装它的 mgcv 包...

这是一个 MWE:

    install.packages(paste(path.pkgs,'mgcv_1.8-7.zip',sep=''),repos=NULL)
    require(mgcv)
    ## FIRST SCRIPT ##

    detach(package:mgcv)
    remove.packages('mgcv')
    unloadNamespace('mgcv')

    require(gam)
    ## SECOND SCRIPT ##
    gam(as.formula(t.thr.fm),data=data)

返回错误:

   Error in get(method, envir = home) : 
   cannot open file 'H:/data/Documents/R/R-3.1.3/library/mgcv/R/mgcv.rdb': No such file or directory

有什么想法可以代替重启会话?

编辑:

不幸的是,Floo0 使用 package::function 建议的解决方案不是一个选项。

【问题讨论】:

    标签: r gam mgcv


    【解决方案1】:

    您可以通过以下语法告诉 R 从特定包中获取函数:

    package::function
    

    所以在你的情况下(不要分离mgtv)并使用

    mgcv::gam(...)
    gam::gam(...)
    

    如果函数没有在函数的命名空间中导出,你也可以试试package:::function 和 3 :

    【讨论】:

    • 谢谢。问题是,有几个不同的脚本在不同版本中使用该函数。我真的不想更改所有版本中的整个代码。但是,如果没有其他选择,我将不得不这样做:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 2010-09-16
    • 2014-06-19
    • 2012-07-24
    相关资源
    最近更新 更多