由于引入了dplyr
库,我最近遇到了现有R代码崩溃的情况。具体而言,stats包中的lag
函数正由dplyr::lag
替换。该问题先前已记录here,但未提供解决方法。对R名称空间和环境的研究导致了两种可能的解决方案,在我看来并不是非常强大:
package:stats
路径中首先显示search()
,以便lag
解析为统计信息包中的功能。lag
的所有引用更改为stats::lag
我的问题是这些其他解决方案是否可行:
dplyr
包,强制它位于“私有”命名空间中,只能通过::
运算符访问其对象。lag
解析为stats::lag
。这可以通过删除dplyr::lag
或覆盖搜索路径来完成(类似于C ++ using namespace :: function 指令。)答案 0 :(得分:1)
您应该考虑library(conflicted)
,因为它正是针对此问题而设计的。
https://cran.r-project.org/web/packages/conflicted/index.html
在加载软件包后放入conflicted::conflict_prefer(name = "lag", winner = "stats")
可以确保在脚本中每次调用函数lag()
时,默认情况下都会使用stats函数。