gpt4 book ai didi

r - 检查现有 CRAN 包中是否使用了函数名称

转载 作者:行者123 更新时间:2023-12-04 11:54:18 25 4
gpt4 key购买 nike

我正在创建一个我计划提交给 CRAN 的 R 包。如何检查我的任何函数名称是否与 CRAN 上已有的包中的函数名称冲突?在我的包公开之前,更改函数名称仍然很容易,我希望做一个好公民,并尽可能避免冲突。

例如,the packages MASS and dplyr both have functions called "select" .我想避免这种碰撞。

最佳答案

有很多包(目前为 9008,2016 年 8 月),因此几乎可以肯定,只查看要避免冲突的子集会更好。另外,再次强调评论中的一些好的建议(仅供记录,以防评论被删除或隐藏):

  • 与其他包共享函数名并不是什么大问题,也不值得避免,也许避免与最有可能同时加载的常见包发生冲突(感谢@Nicola 和@Joran)
  • 不必要地避免重复使用名称“会导致错误的函数名称,因为好的函数名称被占用”(@Konrad Rudolph)

  • 但是,如果您 真的想查 全部 包,也许至少要知道哪些包使用与您的名称相同的名称,您可以通过以下方式获得包名称的向量
    crans <- available.packages()[, "Package"]
    # A3 abbyyR abc ABCanalysis abc.data abcdeFBA
    # "A3" "abbyyR" "abc" "ABCanalysis" "abc.data" "abcdeFBA"
    length(crans)
    # [1] 9008

    然后,您可以使用批量安装它们
    N = 4 # only using the 1st 4 packages here - 
    # doing it for the whole lot will take a lot of time and disk space!!!
    install.packages(crans[1:N])

    然后你可以得到这些包中的函数名称列表
    existing_functions = sapply(1:N, function(i)  ls(getNamespace(crans[i])))

    关于r - 检查现有 CRAN 包中是否使用了函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083275/

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