我需要在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建议的解决方案不是一个选项。
答案 0 :(得分:1)
您可以通过以下语法告诉R从特定包中获取函数:
package::function
所以在你的情况下(不要分离mgtv
)并使用
mgcv::gam(...)
gam::gam(...)
如果未在函数的命名空间中导出该函数,您还可以尝试package:::function
3 :