gpt4 book ai didi

R:如何防止(或至少预测)基本 R 函数内部的代码与稍后安装的包中的函数之间的名称冲突?

转载 作者:行者123 更新时间:2023-12-04 16:57:10 24 4
gpt4 key购买 nike

我加载了一个包( tidyverse ),它重命名了一个基本的 R 函数( filter )。

我正在运行一个基本的 R 函数( arima.sim ),它调用 filter函数并从 dplyr::filter.ts 返回错误.

我可以从 arima.sim 复制代码并创建 arima.sim2 , 替换 filterstats::filter ,这就解决了问题。但:

  • dplyr功能dplyr::filter.ts有益地阅读:

    dplyr::filter.ts
    函数 (.data, ...)
    {
    bad_args(".data", "必须是数据源,不是ts对象,要stats::filter()吗?")
    }

  • 除了加载 tidyverse 时的警告之外,还有什么应该提醒我注意这个冲突的吗? ?因为当我收到这些警告时,我不知道我会运行 filter ,当时还没有阅读 stats::arima.sim的代码.
  • 为什么没有stats::arima.sim查找 filterstats namespace在查看之前 dplyr namespace ?包命名空间不是应该防止这种事情吗?
  • 缺少使用 :: 重新创建基本 R 函数的方法如上所述,有什么我可以或应该做的事情来确保基本 R 函数可以找到在其定义中使用的其他基本 R 函数,而不是使用稍后安装的包中的同名函数?
  • 最佳答案

    您可以尝试使用新的 conflicted包裹。它旨在通过强制用户在出现任何歧义时明确表达来避免此类问题。不确定它是否对您的具体情况有帮助,我无法重现您描述的行为。

    关于R:如何防止(或至少预测)基本 R 函数内部的代码与稍后安装的包中的函数之间的名称冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53127581/

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