小编use*_*177的帖子

从R包中删除/注销特定功能

我在这里使用的术语可能不正确,请原谅我...

我遇到一种情况,一个程序包“覆盖”另一个程序包加载的同名函数,从而改变了函数的行为(中断)。

具体情况:

X <- data.frame ( y = rnorm(100), x1 = rnorm(100), x2 = rnorm(100) )

library(CausalImpact)
a <- CausalImpact::CausalImpact( X, c(1,75), c(76, 100) ) # works

library(bfast) # imports quantmod which loads crappy version of as.zoo.data.frame

b <- CausalImpact::CausalImpact( X, c(1,75), c(76, 100) ) # Error

Run Code Online (Sandbox Code Playgroud)

我知道该错误来自该函数的两个版本as.zoo.data.frame。有问题的版本是由bfast从“ quantmod”包导入的(请参阅https://github.com/joshuaulrich/quantmod/issues/168)。不幸的是,他们的修补程序无法防止出现此错误。超级烦人。

我可以解决这个特定的问题,但是我想知道是否有一种通用方法可以从搜索路径中“注销”此功能变量。既不detach也不unloadNamespace删除有问题的函数(后相同的行为)。这里这里都讨论了一个解释和类似的问题,但是我找不到一个通用的解决方案。例如,我宁愿只是删除此函数,而不是克隆并重新编写CausalImpact以处理此行为。

environment r package

3
推荐指数
1
解决办法
52
查看次数

标签 统计

environment ×1

package ×1

r ×1