Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不卸载包的情况下更改search()位置_R - Fatal编程技术网

在不卸载包的情况下更改search()位置

在不卸载包的情况下更改search()位置,r,R,我使用的代码依赖于两个冲突的包。我只想在短时间内优先考虑一个问题,我的计划是把它放到搜索的最前面()。然而,我不能只是卸载和重新加载。我试过了,但它会导致其他问题,在已经加载的包上运行library不起作用 下面是一个示例(实际用例涉及非CRAN包): 现在如何在不拆离/卸载ggplot2的情况下将package:ggplot2移动到package:MASS之前 编辑 在我需要调用的函数中,比如说function1,有一个表达式可以进行进一步的调用。我无法编辑这些调用以追加: e、 g 但我不能

我使用的代码依赖于两个冲突的包。我只想在短时间内优先考虑一个问题,我的计划是把它放到搜索的最前面()。然而,我不能只是卸载和重新加载。我试过了,但它会导致其他问题,在已经加载的包上运行
library
不起作用

下面是一个示例(实际用例涉及非CRAN包):

现在如何在不拆离/卸载ggplot2的情况下将package:ggplot2移动到package:MASS之前

编辑

在我需要调用的函数中,比如说
function1
,有一个表达式可以进行进一步的调用。我无法编辑这些调用以追加

e、 g

但我不能具体说明

mainFun::unchangeable
通过操纵公式对象,确实可以编辑不可更改的
。但这并不理想,对于其他类型的对象,我需要一个更通用的解决方案

编辑2:

下面是一个例子,它显示了一个类似的问题

library(mgcv)
library(gam)

y <- rnorm(100)
x <- rnorm(100)

thisformula <- y ~ s(x)

gamgam <- gam(thisformula)
# s <- mgcv::s
mgcvgam <- mgcv::gam(thisformula)

取消注释行
s可以使用
引用特定包中的函数。例如,
ggplot2::labs
将始终引用
ggplot2
下的该函数,即使它被稍后加载的某个包屏蔽

感谢您的响应。我应该说得更清楚些。在我需要调用的函数中,有一个表达式可以进行进一步的调用。我无法编辑这些调用以追加
。我会编辑。这很奇怪:为什么你不能编辑一个函数?如果所有其他操作都失败,请复制函数源并修改本地版本。能否重新定义该函数,使其现在处于全局环境中?也就是说,在加载一个在
ggplot2
之后有
labs
的包之后,您可以重新定义函数以指向
ggplot2
版本:
labs@CarlWitthoft,因为函数随包而来。请参见示例。@ilir在本例中有效,但在我正在处理的更一般的情况下无效,并且似乎无法将其最小化为mwe。我宁愿避免重新定义。那么为什么不
mainFun(mainFun::unchangeable)
?我认为你需要发布实际的代码和屏蔽函数来得到一个合适的答案。谢谢你的想法。不幸的是,我不能把它简化为一个最小的例子,代码中包含了一位教授的代码,他觉得自己的代码在网上并不舒服(尽管我做了尝试)。我仍然对是否可以更改搜索顺序的一般问题感兴趣。
mainFun(unchangeable)
mainFun::unchangeable
library(mgcv)
library(gam)

y <- rnorm(100)
x <- rnorm(100)

thisformula <- y ~ s(x)

gamgam <- gam(thisformula)
# s <- mgcv::s
mgcvgam <- mgcv::gam(thisformula)
Error: $ operator is invalid for atomic vectors