我正在创建一个我计划提交给CRAN的R包。如何检查我的任何函数名称是否与CRAN上已有的函数名称冲突?在我的软件包上市之前,更改函数名称仍然很容易,我希望成为一个好公民,尽可能避免冲突。
例如,the packages MASS and dplyr both have functions called "select"。我想避免那种碰撞。
答案 0 :(得分:6)
有很多软件包(目前为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
然后您可以使用
批量安装它们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])))