我正在创建一个我计划提交给CRAN的R包.如何检查我的任何函数名称是否与CRAN上已有的函数名称冲突?在我的软件包上市之前,更改函数名称仍然很容易,我希望成为一个好公民,尽可能避免冲突.
例如,包MASS和dplyr都具有称为"选择"的功能.我想避免那种碰撞.
有很多软件包(目前为9008,2016年8月),所以几乎可以肯定只看一个你想要避免冲突的子集.此外,重新强调评论中的一些好建议(仅在记录被删除或隐藏的情况下记录):
但是,如果你真的想检查所有包,或许至少知道哪些包使用与你的相同的名称,你可以得到包名的向量
crans <- available.packages()[, "Package"]
# A3 abbyyR abc ABCanalysis abc.data abcdeFBA
# "A3" "abbyyR" "abc" "ABCanalysis" "abc.data" "abcdeFBA"
length(crans)
# [1] 9008
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用批量安装它们
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])
Run Code Online (Sandbox Code Playgroud)
然后,您可以获得这些包中的函数名称列表
existing_functions = sapply(1:N, function(i) ls(getNamespace(crans[i])))
Run Code Online (Sandbox Code Playgroud)