gpt4 book ai didi

r - 避免 R 中的函数名冲突

转载 作者:行者123 更新时间:2023-12-03 13:40:23 30 4
gpt4 key购买 nike

我最近遇到了由于 dplyr 的引入而导致现有 R 代码中断的情况。图书馆。具体来说,lag stats 包中的函数,正在被 dplyr::lag 替换.该问题先前已记录 here ,但是没有提供解决方法。对 R 命名空间和环境的研究导致了 2 种可能的解决方案,在我看来都不是很强大:

  • 确保 package:stats最先出现在 search()路径,以便 lag解析为 stats 包中的函数。
  • 更改 lag 的所有引用在我的代码中 stats::lag

  • 我的问题是这些其他解决方案是否可行:
  • 加载 dplyr以某种方式强制它位于“私有(private)”命名空间中,在该命名空间中,它的对象只能通过 :: 访问。运算符(operator)。
  • 库加载时的指令以强制 lag解析为 stats::lag .这可以通过删除 dplyr::lag 来完成。或覆盖搜索路径(类似于 C++ using namespace::function 指令。)
  • 最佳答案

    你应该考虑library(conflicted)因为它正是针对这个问题而设计的。
    https://cran.r-project.org/web/packages/conflicted/index.html

    conflicted::conflict_prefer(name = "lag", winner = "stats")在你加载你的包之后确保任何时候函数lag()在您的脚本中调用,默认情况下它将使用 stats 函数。

    关于r - 避免 R 中的函数名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34403294/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com