我最近遇到了一个情况,由于引入了 dplyr
库。 具体来说, lag
函数取代了统计包中的 dplyr::lag
. 这个问题以前就有记载 此处但没有提供任何解决方法。 对R命名空间和环境的研究导致了2种可能的解决方案,在我看来都不是很稳健。
package:stats
先出现在 search()
径,以便 lag
解析为 stats 包中的函数。lag
在我的代码中,以 stats::lag
我的问题是,这些其他的解决方案是否可以。
dplyr
包的方式来强制它进入一个 "私有 "的命名空间,在这个空间里,它的对象只能通过 ::
操作员。lag
以此作为 stats::lag
. 这可以通过删除 dplyr::lag
或覆盖搜索路径(类似于C++的 使用namespace::function 指令)。)你应该考虑 library(conflicted)
因为它正是为这个问题而设计的。https:/cran.r-project.orgwebpackagesconflictedindex.html。
把 conflicted::conflict_prefer(name = "lag", winner = "stats")
加载软件包后,确保在任何时候只要函数 lag()
在你的脚本中调用,它将默认使用stats函数。